Repo to explore the use of gRPC/protocol buffers and OpenTelemetry. The repo consists of a simple gRPC server (Node.js app) and client (Python app). These are both instrumented with OpenTelemetry to generate traces, metrics, and logs that are received by the OpenTelemetry collector which published them to Jaeger, Prometheus, and Loki, respectively. All of this, plus Grafana, runs in Docker via docker compose
to demonstrate OpenTelemetry's capabilities from end-to-end.
To run this demo, in the root of the repo run
docker compose up
This start Jaeger, Prometheus, Loki, Grafana, the OpenTelemetry Collector, and the dummy gRPC server and clients.
To view the traces, metrics, and logs, you will need to add the data sources to Grafana. Grafana is available at localhost:3000
. The endpoints for the Jaeger, Prometheus, and Loki when setting up the data sources are:
- Jaeger:
http://jaeger:16686
- Prometheus:
http://prometheus:9090
- Loki:
http://loki:3100
- What is OpenTelemetry - Lightstep
- gRPC Python basics
- gRPC Node.js basics
- OpenTelemetry Python getting started
- OpenTelemetry Node.js getting started
- Logz.io Node auto-instrumentation tutorial
- Jaeger getting started
- Loki exporter
- OTLP exporter options
- Python logging exporter setup
- Deeper dive into understanding of auto instrumentation. What is in scope?
- Node.js auto instrumentation. How to instrument auto for all required libraries. e.g. SQL, HTTP, Redis, Kafka, etc.