canonical / istio-ingress-k8s-operator

https://charmhub.io/istio-ingress-k8s
Apache License 2.0
0 stars 0 forks source link

Add metrics integration to istio charms #14

Closed IbraAoad closed 1 month ago

IbraAoad commented 1 month ago

Issue

The Istio ingress exposes metrics through a separate workload it deploys:

The main issue with integrating via the ingress's FQDN is that Kubernetes will enforce load balancing when the beacon is scaled, resulting in Prometheus receiving inconsistent metrics.

Solution

This PR adds metrics integration through the prometheus_scrape interface, utilizing the newly created metrics-k8s-proxy to aggregate these metrics into Prometheus via a unified endpoint.

Testing Instructions

  1. juju deploy istio-ingress-k8s --trust
  2. juju deploy prometheus-k8s --trust
  3. juju relate istio-k8s istio-ingress-k8s
  4. Explore Prometheus to validate that the metrics are present. Additionally, check for the up metric for each the istio-ingress pod.
IbraAoad commented 1 month ago

Implementation is ready for review

TODO: Fix proxy image location + integration tests once https://github.com/canonical/metrics-k8s-proxy/pull/1 and https://github.com/canonical/metrics-proxy-rock/pull/1 are merged