SigNoz
Docs
PricingCustomers
Get Started - Free
Docs
IntroductionContributingMigrate from DatadogSigNoz API
OpenTelemetry
What is OpenTelemetryOpenTelemetry Collector GuideOpenTelemetry Demo
Community
Support
Slack
X
Launch Week
Changelog
Dashboard Templates
DevOps Wordle
Newsletter
KubeCon, Atlanta 2025
More
SigNoz vs DatadogSigNoz vs New RelicSigNoz vs GrafanaSigNoz vs Dynatrace
Careers
AboutTermsPrivacySecurity & Compliance
SigNoz Logo
SigNoz
All systems operational
HIPAASOC-2
SigNoz Cloud - This page applies to SigNoz Cloud editions.
Self-Host - This page applies to self-hosted SigNoz editions.

Send Istio Metrics to SigNoz using OpenTelemetry

Configure the OpenTelemetry Collector to scrape Istio's Prometheus endpoints and send metrics to SigNoz. This covers both the istiod control plane and Envoy sidecar data plane.

Most steps are identical. Update the endpoint and remove the ingestion key header as shown in Cloud → Self-Hosted.

Prerequisites

  • Istio installed in your Kubernetes cluster
  • OpenTelemetry Collector deployed in the same cluster. See OpenTelemetry Collector on Kubernetes to get started
  • An instance of SigNoz (either Cloud or Self-Hosted)

How Istio exposes metrics

Istio exposes Prometheus-format metrics on two sets of endpoints:

  • istiod (control plane): port 15014, scraped via Kubernetes endpoint discovery in the istio-system namespace
  • Envoy sidecars and gateways (data plane): port 15090, path /stats/prometheus, scraped via pod discovery using the port name .*-envoy-prom

For metric names and labels, see the official Istio standard metrics reference.

Send Metrics to SigNoz

Step 1. Configure the OpenTelemetry Collector

Merge the following into your existing Collector config. It adds two Prometheus scrape jobs (one for istiod, one for Envoy proxies) and an OTLP exporter pointing to SigNoz.

otel-collector-config.yaml
receivers:
  prometheus:
    config:
      scrape_configs:
        - job_name: 'istiod'
          kubernetes_sd_configs:
            - role: endpoints
              namespaces:
                names:
                  - istio-system
          relabel_configs:
            - source_labels:
                - __meta_kubernetes_service_name
                - __meta_kubernetes_endpoint_port_name
              action: keep
              regex: istiod;http-monitoring

        - job_name: 'envoy-stats'
          metrics_path: /stats/prometheus
          kubernetes_sd_configs:
            - role: pod
          relabel_configs:
            - source_labels: [__meta_kubernetes_pod_container_port_name]
              action: keep
              regex: '.*-envoy-prom'

exporters:
  otlphttp:
    endpoint: 'https://ingest.<region>.signoz.cloud:443'
    headers:
      signoz-ingestion-key: '<your-ingestion-key>'

service:
  pipelines:
    metrics:
      receivers: [prometheus]
      exporters: [otlphttp]

Verify these values:

  • <region>: Your SigNoz Cloud region
  • <your-ingestion-key>: Your ingestion key

The Collector needs ClusterRole permissions for Kubernetes pod and endpoint discovery. The OpenTelemetry Collector on Kubernetes guide covers the required RBAC setup.

Step 2. Restart the Collector

kubectl rollout restart deployment/otel-collector -n <collector-namespace>

Step 3. Validate

After the Collector restarts:

  1. In SigNoz, go to Metrics > Metrics Explorer.
  2. Search for istio_requests_total to verify data plane metrics are flowing.
  3. Search for pilot_xds to verify control plane metrics are flowing.

SigNoz shows metrics within the first scrape interval (default: 60 seconds).

Istio Metrics
Istio Metrics

Troubleshooting

No metrics appearing

Verify the Collector pod has RBAC permissions to discover Kubernetes endpoints and pods. Run:

kubectl logs deployment/otel-collector -n <collector-namespace>

Look for scrape errors or permission-denied messages.

Only istiod metrics, no sidecar metrics

Verify your pods have Istio injection enabled (istio-injection: enabled on the namespace) and that the sidecar container port is named with the -envoy-prom suffix.

Metrics delayed

The default Prometheus scrape interval is 60 seconds. Reduce it for faster feedback:

scrape_configs:
  - job_name: 'istiod'
    scrape_interval: 15s
    # ...

Next steps

  • Istio Metrics dashboard
  • Set up alerts on your metrics

Get Help

If you need help with the steps in this topic, please reach out to us on SigNoz Community Slack.

If you are a SigNoz Cloud user, please use in product chat support located at the bottom right corner of your SigNoz instance or contact us at cloud-support@signoz.io.

Last updated: May 17, 2026

Edit on GitHub

Was this page helpful?

Your response helps us improve this page.

Prev
Envoy Metrics
Next
NVIDIA GPU (DCGM)
On this page
Prerequisites
How Istio exposes metrics
Send Metrics to SigNoz
Step 1. Configure the OpenTelemetry Collector
Step 2. Restart the Collector
Step 3. Validate
Troubleshooting
No metrics appearing
Only istiod metrics, no sidecar metrics
Metrics delayed
Next steps
Get Help

Is this page helpful?

Your response helps us improve this page.