Skip to main content

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

  1. Start the Collector with the config above (Docker in Section 5 provides the container).
  2. Verify it listens on 4317/4318.
  3. Point a sample app’s OTLP exporter to http://collector:4318 (HTTP) or collector: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