The Uniform Telemetry Bonus
every proxy emits consistent metrics per request:
PER SERVICE-PAIR automatically:
□ envoy_requests_total by response-code
□ request duration histogram (p50/p90/p99...)
□ bytes sent/received
□ connection counts, TLS handshake stats
because EVERY hop passes a proxy:
- service-to-service latency MAP emerges without app changes
- success rates per edge (who breaks when?) instantly visible
- version-level splits (canary gates read these!)
[gateway]─99.9%─►[orders]─99.2%─►[payments]─100%─►[bank]
the graph of health, measured uniformly ✓
Tracing Through the Mesh
proxies propagate trace CONTEXT (b3/w3c headers) hop-to-hop
and emit spans:
[span: gateway]→[span: orders]→[span: payments]
what mesh tracing gives FREE:
- context propagation correctness across languages ✓
(the eternal manual-instrumentation pain)
- proxy-side spans showing MESH-ATTRIBUTED time
what it does NOT give free:
✗ application-internal spans (your DB queries, business steps)
✗ trace BACKENDS — mesh exports; you still run jaeger/
tempo-class storage + choose sampling strategy
complete tracing = mesh propagation + APP-level spans.
meshes start the firewood; apps add the flame.
What the Mesh Cannot See
honest blind spots:
□ INSIDE-process behavior: thread pools, GC pauses, queue
depths within services — app metrics remain mandatory
□ PAYLOAD semantics: which business operation failed?
(mesh sees /orders POST 500s; not WHICH order or why)
□ DATABASE/cache hops: app→db traffic bypasses mesh L7 view
unless db sidecars exist (rare) — instrument drivers
□ QUEUE/event flows: kafka-class traffic isn't HTTP;
separate monitoring discipline applies
rule: mesh telemetry = the INTER-SERVICE skeleton.
attach organ-level app metrics or you'll know WHERE the
body hurts but never WHY.
Building on Mesh Metrics
| Use | Mesh metric source |
|---|---|
| SLO dashboards per service | request-rate/error/duration series |
| Canary gate automation | per-subset delta comparisons |
| Dependency maps | service-pair edges auto-discovered |
| Capacity planning | per-edge RPS/bytes trends |
| Incident triage | ”which edge degraded FIRST?” timelines |
cardinality warning: per-route/per-version labels multiply
series fast. trim default label sets aggressively; keep
high-cardinality exploration in traces, not metric labels.
Interview Framing
“Prove observability improves after mesh adoption” scored shape: uniform-metrics-per-edge story with dependency-map payoff, tracing-propagation-vs-spans distinction stated precisely, blind-spot list volunteered (app internals/payload semantics/db), cardinality-trimming note. The graded skill is knowing exactly where mesh telemetry ENDS — overclaiming is the tell of non-operators.
Premium Content
Unlock Mesh Observability and all premium lessons with a subscription.
All premium lessons
Ad-free experience
Priority support
From ₹199.99/year — See plans