Observability
Conduit exposes metrics, tracing, event export, and process logging so you can observe the dataplane without changing query behavior. Observation runs off the DNS query path: the export backlog or full observability queues drop data rather than delaying client responses.
For further information
| You need… | Page | Config block |
|---|---|---|
| Aggregate QPS, pool mix, forward errors, backend health gauges, or SLO dashboards | Metrics | metrics: |
| To tune which built-in series are recorded and exported | Metrics configurability | metrics: |
| Which categories a metric belongs to, and dimension vocabularies | Built-in metric registry | (same metrics:) |
| Names, labels, and PromQL examples for every built-in series | Built-in metrics | (same metrics:) |
| Per-query wire copies to a log analytics or tap collector | Event export | events: |
| Per-query pipeline phases (lookup, forward internals, retries) on selected queries | Tracing | tracing: |
| Process logs for startup, reload, control RPC access, or optional query summaries | Logging | logging: |
flowchart TD
Q[What do you need to see?]
Q -->|Volume and latency over time| M[Metrics]
Q -->|Full DNS wire per query| E[Event export / dnstap]
Q -->|Phase timing on one query| T[Tracing + GetTrace]
Q -->|Process and config events| L[Logging]
M --> BM[Built-in metrics catalog]
For a lab walkthrough that enables metrics and tracing together, see Metrics and tracing. For OTLP HTTP metrics push with conduit-otlp-metrics-tracer, see OTLP metrics push smoke. For dnstap export with conduit-dnstap-tracer, see Event export and dnstap. Config fields: Reference: metrics and tracing, Reference: events.
OTEL and tracing names
Conduit uses several words that sound similar but mean different things:
| Term | What it is | Config |
|---|---|---|
| OTLP metrics | Periodic push of built-in counters/gauges/histograms to a collector | metrics.otel |
| Pipeline trace | In-memory per-query phase timeline (GetTrace, conduitctl trace) |
tracing: |
| Process logging | Rust tracing subscriber to stderr/stdout |
logging: |
logging.level: trace |
Maximum log verbosity — not pipeline tracing | logging.level |
Not implemented today: OTLP distributed traces (/v1/traces) and OTLP logs (/v1/logs) export. See Metrics, Tracing, and Logging for what ships now.
Correlating per-query signals
When you debug a single query across tracing, logs, and dnstap, use the internal transaction id (txn_id):
| Signal | Where txn_id appears |
|---|---|
| Logging | query complete / query dropped lines at debug (txn_id=…) |
| Tracing | Argument to conduitctl trace and gRPC GetTrace |
| Event export | Optional extra_fields: txn_id on dnstap frames |
Enable logging.level: debug briefly to read txn_id from a completed query, then fetch the pipeline trace for that id. Traces expire after 5 minutes or when the store exceeds 1000 entries — see Tracing.
Built-in metrics never label series with qname, client IP, or txn_id. Use event export or tracing for per-name or per-transaction detail.
Changing observability config
Reload and restart rules differ by block. After editing the file, reload (SIGHUP or conduitctl reload) updates the stored config and snapshot where supported; some changes still need a process restart to take effect on running listeners or export tasks.
| Block | Overlay allowed? | Reload updates snapshot? | Restart required for… |
|---|---|---|---|
metrics: |
Yes (deep merge) | Yes | Rare cold cases only — plan knobs and Prometheus/OTLP bind apply live; see Metrics configurability — Overlay |
tracing: |
No | Yes (stored config) | Enabling tracing, activation rules, log_json |
events: |
Yes | Yes | Adding/removing sinks, destinations, queue_depth (filter/emit/extra_fields on existing sinks reload) |
logging: |
Yes | Yes (stored config) | level or output (subscriber binds at process start) |
Details: Configuration model — What takes effect when, Reload and export.
Topic pages
- Metrics — enable export,
minimalvsfullprofiles, Prometheus scrape and OTEL push - Built-in metrics — series catalog, profiles comparison, PromQL examples
- Tracing — per-query pipeline traces
- Event export — dnstap sinks
- Logging — process log level, stderr/stdout, lab smoke test
Lab guides: Metrics and tracing · Operator metrics bases · Metrics beyond bases · OTLP metrics push smoke · Event export and dnstap
Symptom-oriented help: Troubleshooting.