Repository navigation
Conversation
Expose pool-level gauges (nodes total, updated, updating, degraded, rollout paused) and a node-level info metric for the booted OS image. The collector reads from the controller-runtime cache on each scrape. Configure the metrics server with HTTPS and authentication/authorization on port 8443, with flags for bind address and TLS cert directory. Assisted-by: AI Signed-off-by: Alice Frosi <afrosi@redhat.com>
Cover pool gauges, paused/not-paused rollout, node info metric, orphan nodes, missing booted status, multiple pools, and empty cache. Assisted-by: AI Signed-off-by: Alice Frosi <afrosi@redhat.com>
Add kustomize and Helm chart resources for the metrics endpoint: a Service targeting port 8443, an opt-in ServiceMonitor, RBAC for the operator SA to perform token/access reviews, and a metrics-reader ClusterRole for Prometheus scraping. Assisted-by: AI Signed-off-by: Alice Frosi <afrosi@redhat.com>
Extend the envtest suite to expose the manager cache and add two tests that create pools and nodes against the envtest API server, then verify the collector emits the expected metrics. Assisted-by: AI Signed-off-by: Alice Frosi <afrosi@redhat.com>
Create a ServiceAccount with the metrics-reader ClusterRole and run a curl pod to scrape the metrics endpoint from inside the cluster, the same way Prometheus would. Verify pool and node metrics are present after a pool reaches steady state. Assisted-by: AI Signed-off-by: Alice Frosi <afrosi@redhat.com>
Document how to configure the monitoring using Prometheus and Grafana. Assisted-by: AI Signed-off-by: Alice Frosi <afrosi@redhat.com>
The released operator binary does not support --metrics-bind-address, so deploying it with the current Helm chart crashes the operator. Gate the flag and metrics port in sync-helm.sh on metrics.enabled, and disable metrics when installing the released image in the upgrade test. Also filter --metrics-bind-address from controllerExtraArgs to prevent duplication. Assisted-by: AI Signed-off-by: Alice Frosi <afrosi@redhat.com>
The curl pod used to scrape the metrics endpoint was scheduled on worker nodes, where Calico CNI is not fully initialized. This caused FailedCreatePodSandBox errors and curl failures on K8s 1.36 and 1.37, while 1.35 passed only due to timing. Pin the curl pod to the control-plane node with a nodeSelector and toleration so it runs where networking is stable and the metrics service is reachable. Assisted-by: AI Signed-off-by: Alice Frosi <afrosi@redhat.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add prometheus metrics for better monitoring of bootc-operator operation. Added metrics:
Fixes: #102