Add metrics for all Milo resources and conditions#571
Conversation
Enables metrics collection for every resource across all core Milo services — IAM, identity, infrastructure, resource manager, and quota — using ResourceMetricsPolicy CRDs. Each resource exposes an info series with identity and creation time, plus a status condition series for every condition automatically, so new condition types appear in dashboards without any config changes. Metrics are organized per service under config/services/<service>/telemetry/metrics/ rather than bundled together, making it easier to deploy and manage coverage for each service independently. The old ConfigMap-based metrics approach has been removed in favour of the policy-based approach. Also restores userinvitations/finalizers and patch verb to the core control plane RBAC role, which were accidentally omitted. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
698bffb to
a784e5c
Compare
The ResourceMetricsPolicy CRD is provided by milo-os/resource-metrics and must be present in the Milo API server before config/services/ is applied, since IAM, identity, infrastructure, resource manager, and quota services now include ResourceMetricsPolicy resources. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
## ✨ Autofixed 1 outdated doc(s) This pull was automatically generated by Joggr to fix 1 outdated doc(s) due to code changes in pull #571 ### Fixed docs The following docs were fixed: - `config/services/quota/README.md`: References to the old metrics configuration path and deployment model became outdated because metrics are now defined in `policy.yaml` under the `telemetry/metrics/` directory and collected as ResourceMetricsPolicy resources, not via ConfigMaps in the deprecated path. The remainder of the documentation about exported metrics and labels remains accurate. ### How to fix To fix the docs, you can either: 1. Merge this pull request into your pull request to fix the docs 2. Wait for your pull request to be merged and then merge this pull request into your base branch --- Powered by [Joggr](https://joggr.ai?utm_source=gh&utm_medium=gh&utm_campaign=ghapr&utm_id=ghapr) - The documentation assistant for your codebase.
🤖 Automatically added newlines to 1 file(s) Co-Authored-By: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
|
|
|
🤖 I automatically added missing newlines at the end of 1 file(s) in this PR. All files should now end with a newline character as per coding standards. |
|
I'm trying to understand the net change here. We weren't reporting on things like creation time and status conditions before? |
|
@drewr creation time / status conditions were available in the control plane. This configures the resource-metrics service to surface this data as time series data so we can understand how this data changes over time. Only the quota resources had their resource info surfaced as telemetry data. We're moving to the resource-metrics service because a single deployment can collect metrics across all projects instead of deploying an instance of kube-state-metrics per project like we are today. |
|
Got it. This is enabling the pivot from kube-state-metrics. Thanks! |
Enables metrics collection for every resource across all core Milo services — IAM, identity, infrastructure, resource manager, and quota.
Each resource now exposes:
Metrics are organized per service rather than bundled together, making it easier to deploy and manage coverage for each service independently.
Test plan
Ready) show up as separate series per resource