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:
...
input:
istio:
enabled: trueWith 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:
...
input:
istio:
enabled: true
envoyMetrics:
enabled: trueCollect 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:
...
input:
<istio | prometheus>:
enabled: true
diagnosticMetrics:
enabled: trueWhen enabled, the metric agent generates metrics about its own scrape jobs, such as the following:
up: The scraping was successfulscrape_duration_seconds: Duration of the scrapescrape_samples_scraped: The number of samples the target exposedscrape_samples_post_metric_relabeling: The number of samples remaining after metric relabeling was appliedscrape_series_added: The approximate number of new series in this scrape