Skip to content

Troubleshoot telemetry ​

Serving remains independent

A telemetry outage should never stop DNS or HTTP. Bounded buffers eventually discard old events under a prolonged outage, so missing historical telemetry cannot always be recovered after the sink returns.

Analytics returns 503 ​

analytics_unavailable means the bounded ClickHouse request failed. Check ClickHouse health, credentials, URL/TLS, query timeout, and network. Serving traffic should remain healthy.

Events are missing ​

Check the relevant path:

  • OpenResty syslog or HTTP source → Vector safe_edge_events;
  • DNSdist dnstap → Vector decoded_dns_dnstap → safe_dns_events;
  • Vector sink → ClickHouse table.

Inspect Vector transform errors, discarded-event counters, disk-buffer bytes, delivery errors, and ClickHouse insert errors. Events dropped after the buffer fills cannot be reconstructed.

The edge request/billing sink has a 1 GiB disk cap, security events have a separate 256 MiB cap, and DNS telemetry has a 256 MiB cap. All use drop_newest when full. Security traffic therefore cannot be displaced by a flood of ordinary requests, and DNS has a smaller loss budget. A prolonged ClickHouse outage can still exhaust any cap; reconcile billing against other durable records before using incomplete intervals.

The administrator telemetry page aggregates labeled Vector Prometheus series: buffer bytes/events are current gauges, while discarded events and component errors are lifetime counters since Vector started. An available collector shows zero values explicitly instead of an empty panel.

DNS events have domain ID zero ​

The dnstap fallback does not map question names to Laravel domain IDs and stores zero by design. Zone/name analytics remain available; usage requiring exact domain mapping depends on enriched events.

Usage is stale ​

Confirm scheduler heartbeat, cdnf:usage:finalize, the bulk_maintenance lane, ClickHouse availability, and the latest finalized usage_rollups.interval_end. The component becomes degraded when no finalized interval exists or lag exceeds three hours.

The live 24-hour analytics range intentionally includes the newest finalization_delay_minutes window. The blue Live window included label is informational, not degraded health. Rows in Finalized usage are separate, stable PostgreSQL rollups and the page shows only the latest five finalized intervals.

Client address looks truncated ​

Normal views and exports intentionally apply the platform IPv4/IPv6 prefix mask. Raw storage retention is short and access remains policy scoped. Do not weaken masking to troubleshoot unrelated delivery.

Use the ClickHouse or Vector runbook.

CDNFoundry documentation