Metrics, traces, and logs might be the Three Pillars of Observability, as you’ve certainly already heard. This mantra helps us focus our mindset around observability, but it is not a religion. “There is so much more data that can help us have insight into our running systems,” said Frederic Branczyk at KubeCon last year.
These three kind of signals do have their specificities, but they also have common denominators that we can generalize. They could all appear on a virtual timeline and they all originate from a workload, so they are timed and sourced, which is a good start for enabling correlation. If there’s anything as important as knowing the signals that a system can emit, it’s knowing the relationships between those signals and being able to correlate one with another, even when they’re not strictly of the same nature. Ultimately, we can postulate that any sort of signal that is timed and sourced is a good candidate for correlation as well, even if we don’t have hard links between them.
Continue reading “Metrics and traces correlation in Kiali”
Developing distributed applications is complicated. You can wait to monitor for performance issues once you launch the application on your test or staging servers, or in production if you’re feeling lucky, but why not track performance as you develop? This allows you to identify improvement opportunities before rolling out changes to a test or production environment. This article demonstrates how two tools can work together to integrate performance monitoring into your development environment: Eclipse Che and Jaeger.
According to the Eclipse Che website:
“Che brings your Kubernetes application into your development environment and provides an in-browser IDE, allowing you to code, build, test, and run applications exactly as they run on production from any machine.”
In this article, we show how simple it is to add Jaeger to your Eclipse Che development workspace and observe how your Kubernetes application performs. We will use che.openshift.io as the hosting environment, although you could set up a local Che server if you prefer.
Continue reading “Tracing Kubernetes applications with Jaeger and Eclipse Che”
When you deploy Jaeger in a production configuration, it makes sense to keep an eye on your Jaeger instance to see if it is performing as expected. After all, an outage in Jaeger means that tracing data is being lost, making it challenging to understand possible problems happening within your production applications.
Continue reading Build a monitoring infrastructure for your Jaeger installation
This is the second of a series of three articles based on a session I held at Red Hat Tech Exchange in EMEA. In the first article, I presented the rationale and approach for leveraging Red Hat OpenShift or Kubernetes for automated performance testing, and I gave an overview of the setup.
In this article, we will look at building an observability stack. In production, the observability stack can help verify that the system is working correctly and performing well. It can also be leveraged during performance tests to provide insight into how the application performs under load.
An example of what is described in this article is available in my GitHub repository.
Continue reading “Building an observability stack for automated performance tests on Kubernetes and OpenShift (part 2)”
This is the first article in a series of three articles based on a session I hold at Red Hat Tech Exchange EMEA. In this first article, I present the rationale and approach for leveraging Red Hat OpenShift or Kubernetes for automated performance testing, give an overview of the setup, and discuss points that are worth considering when executing and analyzing performance tests. I will also say a few words about performance tuning.
In the second article, we will look at building an observability stack, which—beyond the support it provides in production—can be leveraged during performance tests. Open sources projects like Prometheus, Jaeger, Elasticsearch, and Grafana will be used for that purpose. The third article will present the details for building an environment for performance testing and automating the execution with JMeter and Jenkins.
Continue reading “Leveraging Kubernetes and OpenShift for automated performance tests (part 1)”
A significant challenge of moving from a traditional monolithic application design to a microservices-based architecture is the ability to monitor the business transaction flow of events throughout your entire distributed system. Join us for the next online DevNation Live on June 21st at 12pm EDT for Advanced Microservices Tracing with Jaeger, presented by Red Hat software engineers Pavol Loffay and Juraci Paixão Kröehling.
In this session, we’ll examine in detail the Cloud Native Computing Foundation (CNCF) OpenTracing API, a consistent, expressive, vendor-neutral API for distributed tracing and context propagation. We will also analyse Jaeger, an open source distributed tracing system inspired by Google Dapper and OpenZipkin.
Join us to gain an understanding of Jaeger’s open source distributed tracing system and how it can help you monitor and troubleshoot microservices-based distributed systems.
Watch the video of the recorded session:
Continue reading “Next DevNation Live: Advanced Microservices Tracing with Jaeger, June 21st, 12pm EDT”
[Cross posted from the OpenShift blog]
About a year ago Red Hat announced its participation as a launch partner of the Istio project, a service mesh technology that creates an application focused network that transparently protects the applications from abnormalities in environments. The main goals of Istio are enhancing overall application security and availability through many different capabilities such as intelligent routing, circuit breaking, mutual TLS, rating, and limiting among others. Ultimately Istio is about helping organizations develop and deploy resilient, secure applications and services using advanced design and deployment patterns that are baked into the platform.
As part of our investments in making the technology easily consumable to Kubernetes and OpenShift users, Red Hat has created a ton of content:
- learn.openshift.com: A web-based OpenShift and Kubernetes learning environment where users get to interact through the web browser with a real running instance of OpenShift and Istio service mesh with zero install time and no sign-up required.
- Istio tutorial: Want to try the web-based scenario yourself from scratch? This Git repo contains instructions on how to set up an environment for yourself.
- Introducing Istio Service Mesh for Microservices book by Christian Posta and Burr Sutter
- Blog posts on the OpenShift and Red Hat Developer blogs
Continue reading “Getting Started with Istio and Jaeger on Your Laptop”
Cloud-native application development is the new paradigm for building applications and although is it often mistaken for microservices, it is much more than that and encompasses not only the application architecture but also the process through which applications are built, deployed, and managed.
New apps are often seen as the focus of cloud-native applications; however, we believe existing and new applications are alike and can incorporate cloud-native practices if they have the four defining characteristics of cloud-native applications:
- Service-based: Build modular loosely coupled services (for example, microservices).
- API-driven: Expose services via lightweight technology-agnostic APIs.
- Containers: Package and deploy in containers as a portable unit of compute.
- DevOps: Adopt agile and DevOps principles.
The Getting Started with Cloud-Native Apps lab at Red Hat Summit 2018, which takes place in San Francisco on May 8–10, has a packed agenda that focuses on walking participants through the principles of building and operating cloud-native applications.
Continue reading “Red Hat Summit Spotlight: Getting Started with Cloud-Native Apps Lab”
This article will show how OpenTracing instrumentation can be used to collect Application Metrics, in addition to (but independent from) reported tracing data, from services deployed within Kubernetes. These Application Metrics can then be displayed in your monitoring dashboard and used to trigger alerts.
Continue reading “Using OpenTracing with Jaeger to collect Application Metrics in Kubernetes”