OpenTelemetry Collector: Debugging, Operations, and Scaling
Demo OTel Collector Extensions
Guide to enabling and configuring OpenTelemetry Collector extensions such as health_check pprof and zpages with example configurations endpoints and security recommendations
This guide shows how to enable and configure extensions in the OpenTelemetry Collector. Extensions provide additional HTTP endpoints and runtime diagnostics (health, debug pages, pprof, etc.). You declare extensions in the top-level extensions section and activate them by listing them in service.extensions. Below we cover the minimal configuration, a more complete example with TLS/debug settings, example responses, and how to access each extension.
tls.insecure: true is useful for local testing. Do NOT use it in production—configure TLS properly for production deployments.
Extensions must be both declared under extensions and enabled by listing them in service.extensions. Declaring them alone does not activate them.
After updating the Collector configuration, restart the Collector process (or redeploy your Collector pod/container) so the configuration changes take effect.
The zPages extension exposes several debug pages. Use the Collector host/IP and the configured zPages port, then append the debug path. Examples:
Service info: http://collector-host:55679/debug/servicez
Traces: http://collector-host:55679/debug/tracez
The servicez page includes build/runtime information (start time, Go version, OS/arch, command used to run the Collector) and visualizes the configured/built pipelines.
The servicez view also shows built pipelines with details such as full name, input type, whether the pipeline mutates data, receivers, ordered processors, and exporters.
There is also a featurez section that lists feature gates and their current state. Example entries you might see:
To view a live trace/span overview, open:http://collector-host:55679/debug/traceztracez shows incoming and sampled spans grouped by span name and request path. You can inspect span counts, latency buckets, error samples, and drill into sampled trace IDs and span IDs. Sampled traces are commonly highlighted (for example, in blue).
If you enable pprof (for example on port 1777), the pprof index is available at:http://collector-host:1777/debug/pprof/The index lists profiles such as allocs, heap, block, mutex, cpu (profiling for a duration), and goroutine (stack traces). Clicking a profile endpoint (for example a 30-second CPU profile) downloads a pprof file that you can analyze locally with the pprof tool or upload to web viewers like Speedscope.
Typical pprof visualizations:
Graph view: call graph showing relationships between functions during the profiling window.
Flame graph: highlights hot paths; width corresponds to CPU time consumed by the call stack.
pprof helps diagnose CPU hotspots, contention, blocking, and memory allocation patterns—useful for advanced debugging and performance tuning.
This page focused on enabling and accessing the Collector extensions. For production use, ensure you secure debug endpoints, configure TLS correctly, and restrict access to diagnostic endpoints.