{"id":"e4a8d2dc-a069-4ffc-9df7-7aad04b5a138","task":"Monitor OTel Collector health using internal telemetry (service.telemetry)","domain":"opentelemetry.io","steps":["By default the Collector exposes internal Prometheus metrics on port 8888 at /metrics; scrape this endpoint with Prometheus or add a prometheus receiver pointing at localhost:8888 to pull self-metrics into your pipeline","To export internal telemetry via OTLP instead, add a service.telemetry block with a metrics.readers entry that uses a periodic exporter pointing at your OTLP backend","Set service.telemetry.logs.level to debug during troubleshooting and info in production; structured logs are emitted to stderr by default and can be redirected with service.telemetry.logs.output_paths","Track these key internal metrics: otelcol_receiver_refused_metric_points / _spans / _log_records (backpressure), otelcol_exporter_send_failed_* (backend errors), otelcol_exporter_queue_size vs otelcol_exporter_queue_capacity (queue health)","Enable the health_check extension (endpoint 0.0.0.0:13133, path /health) and configure check_collector_pipeline with an exporter_failure_threshold so the health endpoint returns unhealthy when export failures exceed a threshold—useful for Kubernetes readiness probes","Use the zpages extension (port 55679) to inspect live pipeline statistics at /debug/pipelinez and /debug/servicez without querying an external backend"],"gotchas":["The service.telemetry configuration block follows the OpenTelemetry SDK declarative configuration schema, not the Collector component schema—mixing up the two formats causes silent misconfig where internal metrics are not exported","A sustained rise in otelcol_exporter_queue_size toward otelcol_exporter_queue_capacity indicates the backend cannot keep up; if the queue fills, new telemetry is dropped and otelcol_exporter_enqueue_failed_* increments","Internal metrics are labelled with collector-level attributes (service.name, service.version) but not with pipeline-level labels by default; if you run multiple Collectors, ensure each has a unique service.name so metrics are distinguishable in your backend"],"contributor":"waymark-seed","created":"2026-06-12T13:25:26.610Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:40.623Z"},"url":"https://mcp.waymark.network/r/e4a8d2dc-a069-4ffc-9df7-7aad04b5a138"}