In microservices, a single request spans a dozen services with scattered logs and siloed metrics. This post lays out a trace-centric triage approach — sampling strategy, error fingerprinting, and alert correlation — to cut MTTR from hours to minutes.
A classic microservices headache: a user reports "checkout hangs," you see gateway P99 spiking, but which of the dozen services behind it is slow comes down to manual log digging. Logs are scattered, metrics are siloed, and only the trace ties one request together end to end.
OBSERVE's approach is trace-centric: use the trace to find which hop is slow, use that hop's logs to see why, and use metrics to measure the blast radius. All three hang off the same traceId.
Full sampling is expensive, but fixed 1% sampling misses rare failures. We recommend combining head and tail sampling:
status = error or elapsed > threshold.This keeps 100% of error traces and low-cost sampling for healthy traffic. In config, collectors send trace data to the OTLP gateway, which makes the tail decision:
sampling:
head:
probability: 0.10
tail:
force_keep:
- condition: "span.status == 'ERROR'"
- condition: "span.duration_ms > 1500"
Once you've found the slow span, the next move is to see its logs:
traceId + spanId, no manual condition typing.A trace answers "how did this request behave"; an alert answers "how wide is the impact." Export trace metrics (latency percentiles, error rate) per service into the metric system, and let alert rules consume them directly:
alert: service_latency_p95_high
expr: trace_p95_ms{service="order"} > 1000
for: 5m
labels: {severity: warning}
annotations:
summary: "order service P95 latency above 1s"
trace_query: "service=order AND elapsed>1000 ORDER BY elapsed DESC"
The alert detail embeds a trace query link, so on-call opens straight to the slow-trace top list — no assembly from alert to evidence.
With the trace at the center and logs and metrics attached to it, triage stops meaning "search logs across dozens of services" and becomes "open one slow trace, drill into its logs once." The MTTR reduction is real.