9 Observability

 

This chapter covers

  • Understanding observability concepts, such as traces, metrics, and logs
  • Adding OpenTelemetry instrumentation libraries to ship metrics to a metrics collector
  • Setting up a performance monitoring dashboard for microservices using Jaeger and Prometheus
  • Installing an observability stack that includes Jaeger, Prometheus, Fluent Bit, Elasticsearch, and Kibana

Due to the nature of microservice architecture, you may end up with many services to meet product needs. Having good visibility of this system becomes important for being proactive about spotting problems and taking quick action to fix them. Services talk to other services, databases, queues, and third-party services, which produces insights about internal operations. In this chapter, we learn how to collect those insights and generate meaningful reports to understand situations in a cloud-native microservices environment.

9.1 Observability

9.1.1 Traces

9.1.2 Metrics

9.1.3 Logs

9.2 OpenTelemetry

9.2.1 Instrumentation locations

9.2.2 Instrumentation

9.2.3 Metric backend

9.2.4 Service performance monitoring

9.3 Observability in Kubernetes

9.3.1 Jaeger All in One

9.3.2 OpenTelemetry Collector

9.3.3 Prometheus

9.3.4 Jaeger installation

9.3.5 OpenTelemetry interceptor for the Order service