Problem
Metrics, logs, and traces each have powerful query languages — but incidents span all three, and engineers pay the integration tax during every outage.
Current Practice
PromQL, LogQL, and TraceQL are mastered separately. Investigation stitches results together manually across tabs, time pickers, and label conventions.
Why It Breaks Down
Query silos optimize storage and retrieval per signal type, not investigation workflow. Label mismatches and time skew between systems produce false correlations.
Architecture
Use query languages at the evidence retrieval layer. Build investigation UX on unified identity, aligned time windows, and cross-signal evidence objects — not concatenated query results.
01
PromQL
Metrics retrieval
02
LogQL
Log retrieval
03
TraceQL
Trace retrieval
04
Unify
Shared identity + window
05
Investigate
Cross-signal evidence
Tradeoffs
Unified investigation simplifies engineer workflow but does not replace signal-specific stores. Federated queries must respect each backend's strengths and limits.
Implementation
Normalize labels and resource identity across backends, define cross-signal investigation primitives, and expose query languages where power users need them — not as the default incident path.
Further Reading
- Prometheus PromQL documentation
- Grafana Loki LogQL documentation
- OpenTelemetry TraceQL specification