03 – OpenTelemetry Ecosystem & Instrumentation
Learning Objectives
- Understand OTel SDKs, auto vs manual instrumentation.
- Build a Collector pipeline: receivers → processors → exporters.
- Position Tempo within the pipeline.
Lecture Summary
- SDKs generate spans inside your app; agents/auto-instrumentation hook into common frameworks.
- The Collector decouples app code from backends and centralizes sampling, batching, transforms.
- Exporters send processed data to Tempo (OTLP), vendors, or queues.
Collector Pipeline Diagram
Example: Minimal Collector Config
Create otel-collector-config.yaml:
receivers:
otlp:
protocols:
grpc:
http:
processors:
batch:
memory_limiter:
check_interval: 2s
limit_mib: 400
exporters:
otlp:
endpoint: tempo:4317
tls:
insecure: true
service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [otlp]
Hands-on Lab
- Start the Collector with the config above (Docker in Section 5 provides the container).
- Verify it listens on 4317/4318.
- Point a sample app’s OTLP exporter to
http://collector:4318(HTTP) orcollector:4317(gRPC).
Deliverables
- A running Collector accepting OTLP.
Quiz (Self-check)
- Name three common Collector processors and their purpose.
- Which signal(s) can OTel send besides traces?
Resources
- OpenTelemetry Collector Contrib
- OTel Auto-Instrumentation for Node.js, Python, Go, and Java