-
Notifications
You must be signed in to change notification settings - Fork 41.6k
Add labels to PVCollector bound/unbound PVC metrics for VolumeAttributesClass Feature #126166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the The Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
Welcome @AndrewSirenko! |
|
Hi @AndrewSirenko. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
/ok-to-test |
d4d3772 to
8753bf2
Compare
|
BTW I think if this is a draft then the presubmit tests won't run |
| unboundPVKey = "unbound_pv_count" | ||
| boundPVCKey = "bound_pvc_count" | ||
| unboundPVCKey = "unbound_pvc_count" | ||
| boundPVCWithVACKey = "bound_pvc_experimental_count" // TODO Q: Is there better name? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a better name? bound_pvc_with_vac_count?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need "experimental" in the name? We'll have to remove it when it is no longer experimental and it becomes a new metric name.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add a new label to the existing metrics instead of new metrics?
Another question is why we need to add those metrics in k/k repo? Is it possible to add some changes for kube_persistentvolumeclaim_info in kuberentes/kube-state-metrics. I don't know the historical context.
- https://github.com/kubernetes/kube-state-metrics/blob/main/internal/store/persistentvolumeclaim.go#L90
- https://github.com/kubernetes/kube-state-metrics/blob/main/internal/store/persistentvolume.go#L227
Above metrics in kuberentes/kube-state-metrics repo is better than k/k.
/sig instrumentation
@mengjiao-liu Can you also take another look?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We'll have to remove it when it is no longer experimental and it becomes a new metric name.
Can we add a new label to the existing metrics instead of new metrics?
@jsafrane @gnufied and I were discussing add labels to existing metrics only once VAC is GA, to prevent new time-series being created every time VolumeAttributesClass feature gate is flipped (because adding/removing labels breaks downstream consumers of metric). pv_collector_bound_pvc_with_vac_count name works for me if we stick with metrics in k/k.
Another question is why we need to add those metrics in k/k repo? Is it possible to add some changes for kube_persistentvolumeclaim_info in kuberentes/kube-state-metrics.
I will look into kuberentes/kube-state-metrics metrics repo, thank you @carlory. Added metrics to k/k because it is where alpha KEP pointed, but this might be in kuberentes/kube-state-metrics instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Notes from July 22 SIG Implementation meeting on ^^:
@gnufied @jsafrane @AndrewSirenko @xing-yang @msau42 were all present and aligned on the following:
- We will add new label to existing PV collector metric. I will edit PR Today. All stakeholders agreed to this. @gnufied @jsafrane especially wanted some kind of metric on PV Collector.
- Metrics should also be added to
kuberentes/kube-state-metrics. We are not bound by code freeze 24th deadline for that PR. @msau42 especially thinks metric should exist in kube-state-metrics.
CC @carlory
| }) | ||
|
|
||
| // Test for pv controller metrics, concretely: bound/unbound pv/pvc count. | ||
| ginkgo.Describe("PVController", func() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Those e2e tests only run on some special cloud providers.
e2eskipper.SkipUnlessProviderIs("gce", "gke", "aws")@jsafrane @msau42 why the e2e tests depend on these provider? Is it possible to use kind cluster and hostpath-csi-driver instead?
And @AndrewSirenko which job can run the new e2e tests?
All the e2e tests in this file are skipped by pull-kubernetes-e2e-gce-csi-serial, pull-kubernetes-e2e-gce-storage-snapshot and pull-kubernetes-e2e-gce-storage-slow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can probably now. But for awhile IIRC - mainly it was because of dynamic provisioning and delayed binding etc.
|
/test pull-kubernetes-unit |
|
/test pull-kubernetes-e2e-gce |
|
We can fix e2e with test freeze deadline. the code changes look fine to me. |
|
LGTM label has been added. Git tree hash: e8aeb97bab6443bef5cb22a1ee17c0fc69d31940
|
|
/unhold New e2e tests passed on local EC2 kOps cluster. |
|
/approve |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: AndrewSirenko, msau42 The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/label tide/merge-method-squash |
|
/milestone v1.31 |
…tesClass Feature (kubernetes#126166) * Add labels to PVCollector bound/unbound PVC metrics * fixup! Add labels to PVCollector bound/unbound PVC metrics * wip: Fix 'Unknown Decorator' * fixup! Add labels to PVCollector bound/unbound PVC metrics
…tesClass Feature (kubernetes#126166) * Add labels to PVCollector bound/unbound PVC metrics * fixup! Add labels to PVCollector bound/unbound PVC metrics * wip: Fix 'Unknown Decorator' * fixup! Add labels to PVCollector bound/unbound PVC metrics
…tesClass Feature (kubernetes#126166) * Add labels to PVCollector bound/unbound PVC metrics * fixup! Add labels to PVCollector bound/unbound PVC metrics * wip: Fix 'Unknown Decorator' * fixup! Add labels to PVCollector bound/unbound PVC metrics
What type of PR is this?
/kind feature
What this PR does / why we need it:
Enhances observability of
VolumeAttributesClassFeature by adding additional PVCollector metrics bound/unbound PVCs with labels for namespace, storage_class, volume_attributes_class.With these additional labels, cluster operators can alarm on
pv_collector_bound_pvc_countto detect PVCs that are not able to bind. With the additional StorageClass and VolumeAttributesClass name labels, cluster operators can more easily check if a storage object misconfiguration is the cause of these binding issues.Which issue(s) this PR fixes:
Fixes #119302
Special notes for your reviewer:
Notes from July 22 SIG Implementation meeting:
@gnufied @jsafrane @AndrewSirenko @xing-yang @msau42 were all present and aligned on the following:
ALPHA.Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: