Skip to content

Collect Istio Metrics ​

To monitor the health and performance of your service mesh, enable the istio input in your MetricPipeline. This scrapes metrics directly from Istio proxies (sidecars) and the control plane. You can enable Envoy and diagnostic metrics, and control from which namespaces metrics are collected.

Prerequisites ​

  • The Istio module is added in your cluster. See Quick Install.
  • You have access to Kyma dashboard. Alternatively, if you prefer CLI, you need kubectl.

NOTE

This configuration collects metrics generated by the Istio proxies themselves. To collect custom metrics exposed by your own applications running in the service mesh, you must configure your application accordingly. For details, see Scrape Metrics from Istio-enabled Workloads.

Activate Istio Metrics ​

By default, the istio input is disabled. If you are using Istio, enable the collection of Istio metrics:

yaml
  ...
  input:
    istio:
      enabled: true

With this, the metric agent starts collecting all Istio metrics from Istio sidecars from all namespaces (including system namespaces).

TIP

To validate or debug your configuration, use diagnostic metrics (see Collect Diagnostic Metrics). To select metrics from specific namespaces, see Filter Metrics.

Collect Envoy Metrics ​

By default, the metric agent collects only Istio metrics (prefixed with istio_) and ignores Envoy metrics (prefixed with envoy_).

Envoy metrics help you understand the performance and behavior of your Envoy proxy, providing details like request rates, latencies, and error counts. For details, see Envoy metrics and server metrics.

To use Envoy metrics to observe and troubleshoot service mesh traffic, enable the envoyMetrics section under the istio input:

yaml
  ...
    input:
      istio:
        enabled: true
        envoyMetrics:
          enabled: true

Collect Diagnostic Metrics ​

To validate or debug your scraping configuration for the prometheus and istio input, you can use diagnostic metrics. By default, they are disabled.

NOTE

Unlike the prometheus and istio inputs, the runtime input gathers data directly from Kubernetes APIs instead of using a scraping process, so it does not generate scrape-specific diagnostic metrics.

To use diagnostic metrics, enable the diagnosticMetrics for the input in your MetricPipeline:

yaml
  ...
  input:
    <istio | prometheus>:
    enabled: true
    diagnosticMetrics:
        enabled: true

When enabled, the metric agent generates metrics about its own scrape jobs, such as the following:

  • up: The scraping was successful
  • scrape_duration_seconds: Duration of the scrape
  • scrape_samples_scraped: The number of samples the target exposed
  • scrape_samples_post_metric_relabeling: The number of samples remaining after metric relabeling was applied
  • scrape_series_added: The approximate number of new series in this scrape