A microservices architecture comes with many benefits, including increased team autonomy and increased flexibility in scaling and deployment. On the downside, the more services in a system (and a microservices app can have dozens or even hundreds), the more difficult it becomes to maintain a clear picture of the overall operation of the system.Observability tooling gives us the power to build that picture across numerous services and supporting infrastructure. By Vijay Kanade.
Telemetry – The act of gathering metrics, traces, and logs and transferring them from their point of origin to another system for storage and analysis. Also, the data itself.
In this tutorial, we highlight one very important type of observability for microservices apps: tracing. The article further covers:
- Tutorial architecture and telemetry goals
- Architecture and user flow
- Set up basic OpenTelemetry instrumentation
- Set up OpenTelemetry instrumentation and trace visualization for all services
- Configure OpenTelemetry instrumentation of NGINX
- Learn to read OpenTelemetry traces
- Optimize instrumentation based on trace readings
In a production environment, you might want to add things like custom spans for each database query and additional metadata on all spans describing runtime details such as each service’s container ID. You could also implement the other two types of OTel data (metrics and logging) to give you a complete picture of the health of your system. Nice one!
[Read More]