Istio Quick Reference

Istio Quick ReferenceChapter 04 of 10

Istio observability

As of Istio 1.31 · Edition 2026.11 · Release data checked on 30 October 2026

Telemetry API

Metrics/logs/traces per workload or namespace. Replaces EnvoyFilter telemetry mods and the old values.telemetry.v2.* settings.

apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata: {name: trace-prod, namespace: prod}
spec:
  tracing:
  - providers: [{name: tempo}]
    randomSamplingPercentage: 5.0
  metrics:
  - providers: [{name: prometheus}]
    overrides:
    - match: {metric: REQUEST_COUNT}
      tagOverrides:
        request_protocol: {operation: REMOVE}
  accessLogging:
  - providers: [{name: otel}]
    filter:
      expression: "response.code >= 400"

Metrics & tracing

RED counter: istio_requests_total, latency: istio_request_duration_milliseconds_bucket. The reporter label = source/destination, in dashboards always aggregate on destination (otherwise double counting). Ambient: L7 metrics come only from the waypoint (reporter="waypoint", aggregate on that); without one, only istio_tcp_*.

Envoy creates spans and trace headers but cannot link an inbound request to the app’s outbound calls. The app must copy incoming trace headers (x-request-id, x-b3-*, traceparent) onto its outgoing requests.