Debugging Collector Pipelines: OTCA practice questions
When telemetry goes missing somewhere between an application and a backend, the useful question is where along the path it stopped. The Collector gives you several tools for answering that question at each hop, and they work best in a fixed order: check the configuration, confirm data is arriving, watch it leave, then look deeper only if needed.
By Ibrahim Yesilay · Published · Updated
Independent community practice, not affiliated with or endorsed by CNCF or The Linux Foundation.
What Debugging Collector Pipelines covers in OTCA
When telemetry goes missing somewhere between an application and a backend, the useful question is where along the path it stopped. The Collector gives you several tools for answering that question at each hop, and they work best in a fixed order: check the configuration, confirm data is arriving, watch it leave, then look deeper only if needed.
Configuration problems come first because they are cheap to rule out. The command otelcol validate with a --config flag checks a file without running pipelines, which makes it a good CI step. The otelcol components sub-command prints every receiver, processor, exporter, connector and extension compiled into the binary you are running, with a stability level per signal, so you can confirm that a vendor or custom build really contains the component you configured. A frequent mistake caught here is a receiver that is defined in the receivers section but never listed in any pipeline, which means it never starts receiving.
To see the data itself, add the debug exporter to a pipeline. With no settings it uses basic verbosity and logs one summary line per batch with record counts. Setting verbosity to normal prints roughly one line per record, and detailed prints every attribute, resource and scope field, including schema URLs. Because it writes through the Collector logger, its output appears wherever the Collector logs go, which is stderr by default.
The Collector's own logs are configured under service::telemetry::logs. The level field defaults to INFO and also accepts DEBUG, WARN and ERROR; encoding can be console or json. Raising the log level is different from raising debug exporter verbosity: one describes what Collector components are doing, the other prints the telemetry passing through.
Internal metrics tell you how far data got. Comparing counters such as otelcol_receiver_accepted_spans, otelcol_processor_incoming_items and otelcol_exporter_sent_spans hop by hop shows whether loss happens at ingestion, inside processing or at export. Refused counts at the receiver, enqueue failures at the exporter and send failures each point to a different stage. The verbosity of these metrics is set with service::telemetry::metrics::level, where normal is the default and none, basic and detailed are the alternatives.
Extensions cover live inspection. The health_check extension answers on localhost:13133 at path / and suits Kubernetes liveness and readiness probes. The zPages extension adds pages such as servicez, pipelinez, extensionz, featurez and tracez for in-process diagnostics without a backend. The pprof extension exposes Go profiling for performance investigations, which most users rarely need.
For multi-hop pipelines, the troubleshooting checklist asks the same things at every hop: are there errors in the logs, how is data ingested, how is it modified, how is it exported, what format is it in, how is the next hop configured, and is any network policy in the way.
Key points
- otelcol validate --config=<file> checks a configuration without running pipelines.
- otelcol components lists the components in the running distribution with their stability levels.
- The debug exporter defaults to basic verbosity; normal and detailed print progressively more of each record.
- Collector log level is set with service::telemetry::logs::level and defaults to INFO.
- The health_check extension listens on localhost:13133 at path / and can back Kubernetes probes.
Three sample questions
8 OTCA questions on Debugging Collector Pipelines, 8 with explanations. How practice works
Question 1
exporters:
debug:
What does the Collector print for each batch it receives?- A.Every span with all attributes and events, because detailed is the default verbosity
- B.Nothing, because the debug exporter only writes output when sampling_thereafter is above 1
- C.A one-line summary with record counts, because the default verbosity is basic
- D.About one line per span with its name and IDs, because normal is the default verbosity
Correct answer: C
Sources: Collector README: debug exporter, OpenTelemetry docs: Collector troubleshooting
Question 2
- A.The zPages extension at http://localhost:55679/debug/tracez
- B.The health_check extension at http://localhost:13133/debug/tracez
- C.The pprof extension at http://localhost:1777/debug/pprof
- D.The internal metrics endpoint at http://localhost:8888/metrics
Correct answer: A
Sources: OpenTelemetry docs: Collector troubleshooting, Collector README: zPages extension
Question 3
extensions:
health_check:
service:
extensions: [health_check]
Which port and path should the probe use, given default settings? (Remember the endpoint must also be reachable from the kubelet.)- A.Port 8888, path /metrics
- B.Port 55679, path /debug/servicez
- C.Port 1777, path /debug/health
- D.Port 13133, path /
Correct answer: D
Sources: Collector-contrib README: Health Check extension, OpenTelemetry docs: Collector troubleshooting
Practice this topic
Focus mode keeps every question on Debugging Collector Pipelines until you leave it. 10 free guest answers, then a free account; no credit card.
Or open OTCA practice across all topics.
Sources
The explanation above was checked against these official documents.
- OpenTelemetry docs: Collector troubleshooting (checked 2026-10-28)
- OpenTelemetry docs: Collector internal telemetry (checked 2026-10-28)
- OpenTelemetry docs: Collector configuration (checked 2026-10-28)
- Collector README: debug exporter (checked 2026-10-28)
- Collector README: zPages extension (checked 2026-10-28)
- Collector-contrib README: Health Check extension (checked 2026-10-28)
Frequently asked questions
My receiver is configured but receives nothing. What should I check first?
Confirm that the receiver is listed in a pipeline under service, because a receiver that is only defined is not enabled. Then check network and client configuration, the Collector logs and zPages.