OpenTelemetry Instrumentations
OpenTelemetry aims to provide a consistent and unified way to instrument, generate, collect, and export telemetry data regardless of the underlying vendor or technology stack.
Instrumentations are plugins for popular frameworks and libraries that use OpenTelemetry API to record important operations, for example, HTTP requests, DB queries, logs, errors, and more.
OpenTelemetry supports multiple programming languages and frameworks, and it can integrate with various observability tools and vendors, including popular distributed tracing tools.
What to instrument?
You don't need to instrument all operations to get the most out of tracing. It can take a lot of time and usually is not needed. Consider prioritizing the following operations:
- Network calls, for example, HTTP requests or RPC calls.
- Disk operations, for example, reading/writing to files.
- Database queries which combine network and filesystem operations.
- Errors and logs, for example, using structured logging.
Instrumentations
You can find more OpenTelemetry instrumentations in the official registry.
Go
- otelhttp: OpenTelemetry net/http
- otelgrpc: OpenTelemetry Go gRPC
- otelgin: OpenTelemetry Gin
- otelbeego: OpenTelemetry Beego
- otelmux: OpenTelemetry Gorilla Mux
- otelecho: OpenTelemetry Labstack Echo
- otelgorm: OpenTelemetry GORM
- otelent: OpenTelemetry Ent
- otelsql: OpenTelemetry database/sql
- otelslog: OpenTelemetry Slog
- otelzap: OpenTelemetry Zap
- otellogrus: OpenTelemetry Logrus
- otelzero: OpenTelemetry Go Zero
- OpenTelemetry Go Lambda
Python
- OpenTelemetry Django
- OpenTelemetry Flask
- OpenTelemetry FastAPI
- OpenTelemetry Pyramid
- OpenTelemetry SQLAlchemy
- OpenTelemetry Falcon
Ruby
Node.js
Elixir
Java
PHP
Monitoring host metrics
To collect host-level metrics, you need to install and configure OpenTelemetry Host Metrics receiver that gathers various metrics about the host system, for example, CPU, RAM, disk metrics and other system-level metrics.