OTCA Study Plan¶
Five weeks at 5-7 hours per week. Weight your effort to the domain weights: API and SDK plus Collector are 72% of the exam.
Week 1: Signals and the data model¶
- Read the OpenTelemetry observability primer and concepts pages
- Traces: spans, span context, span kinds, attributes, events, links, status
- Metrics: the data model, data points, temporality
- Logs: the log data model and how it differs from a log line
- Resources and resource detection
- Semantic conventions: why standardized names matter, and the main namespaces
- Lab: run the Collector locally with an OTLP receiver and debug exporter, send a trace
- Review Notes:
notes/03-observability-fundamentals.md
Week 2: Instrumentation with the API and SDK¶
- API versus SDK: what each provides, and why an API call without an SDK is a no-op
- TracerProvider, Tracer, and span creation and nesting
- Span processors: simple versus batch, and their trade-offs
- Exporters: OTLP gRPC and HTTP, console, and vendor exporters
- Automatic (zero-code) instrumentation versus manual
- Instrumentation libraries for common frameworks
- Environment variable configuration (
OTEL_*) - Lab: manually instrument a small service, add attributes and an event to a span
- Review Notes:
notes/01-api-and-sdk.md
Week 3: Context, metrics instruments, and sampling¶
- Context propagation and the W3C Trace Context standard
-
traceparentandtracestateheader format - Propagators, and what happens when they are missing or mismatched
- Baggage: what it carries and why it is not a security boundary
- Metric instruments: counter, up-down counter, histogram, gauge
- Synchronous versus asynchronous (observable) instruments
- Aggregation, views, and temporality (delta versus cumulative)
- Sampling: always on, always off, trace ID ratio, parent-based, head versus tail
- Lab: instrument two services, confirm the trace joins, then break propagation and observe the result
Week 4: The Collector¶
- Architecture: receivers, processors, exporters, connectors, extensions
- Pipelines per signal, and how components are wired
- Deployment patterns: agent versus gateway, and when to use both
- Key receivers: OTLP, Prometheus, filelog, hostmetrics, kubeletstats
- Key processors: memory_limiter, batch, attributes, resource, filter, transform, tail_sampling, k8sattributes
- Processor ordering and why it matters
- Key exporters and queue and retry behavior
- Connectors, including spanmetrics
- Distributions: core, contrib, and building a custom one with ocb
- OpenTelemetry Operator and auto-instrumentation injection
- Lab: build a Collector config with a full pipeline, then add tail sampling
- Review Notes:
notes/02-collector.md
Week 5: Operations, debugging, and review¶
- Diagnosing missing telemetry, layer by layer
- Collector internal telemetry, health check and pprof extensions
- Memory limiter behavior and backpressure
- Cardinality control and cost management
- SLIs, SLOs, error budgets, golden signals, RED and USE
- Stability guarantees and signal maturity
- Review Notes:
notes/04-maintaining-and-debugging.md - Work every scenario in scenarios.md
- Two timed practice exams; review every wrong answer against the documentation
Readiness check¶
- Explain the API and SDK split and what happens without an SDK
- Choose the correct metric instrument for a described measurement
- Write out a
traceparentheader and name its fields - Explain why memory_limiter goes first and batch goes last
- Explain the difference between head and tail sampling and what each costs
- Name three causes of a broken trace across a service boundary
- Explain what drives metric cardinality and how to control it