Bubbling Up Meaningful Information

Learn how to set up and configure Prometheus and Jaeger exporters for OpenTelemetry to capture telemetry data in a Kubernetes environment.

As we’ve seen, capturing both out-of-the-box and custom telemetry can be done with relatively little effort. The real effort is paring down that information to ensure there’s not too much noise and that relevant information on the health and performance of an application is what gets brought to the top. This will save not only the patience of those who monitor the application but can also result in a lowered cost in storage and processing by limiting the volume of information stored.

To help illustrate, we’ll be using two examples of exporters that are compatible with OpenTelemetry—Prometheus and Jaeger:

  • Prometheus is a popular time-series database commonly used with Kubernetes to capture both standard and custom telemetry for applications. Information is typically scraped (read from an endpoint) into the Prometheus database and retained for a finite period. This information can then be used in trend analysis to identify patterns around the health, performance, or stability of an application or platform. Visualization tools such as Grafana can use Prometheus as a data source to facilitate the creation of dashboards and monitors, depending on what needs to be seen for that application.

  • Jaeger is a distributed tracing framework that allows us to measure events across components (spans) and compose a view of those events in an end-to-end transaction flow (trace). This can be helpful, especially when troubleshooting a distributed application composed of many microservices. Span and trace data are usually stored in either Elasticsearch or Cassandra databases, although other sources can be used if we’re so inclined.

Note: Before starting the walkthroughs for the Prometheus and Jaeger exporters, be sure to either have a Kubernetes cluster set up in the cloud or locally using minikube, Docker Desktop, or another local distribution of your choice. Please also ensure you have set the appropriate context so any commands issued using kubectl will affect the right instance. Also, please be sure to have Helm installed because it simplifies the installation of both components.

Metric ingestion with the Prometheus exporter

Enabling and leveraging the metric ingestion using the Prometheus exporter for OpenTelemetry is not terribly complicated. To get things set up to use Helm, we add the community repository for Prometheus by running the following commands:

Get hands-on with 1400+ tech skills courses.