Skip to content

Commit d639ded

Browse files
committed
refactor: replace count-based with explicit rule-based pod affinity metrics
- Replace 4 count-based metrics with single kube_deployment_spec_affinity metric - Add granular labels: affinity, type, topology_key, label_selector - Enable individual rule visibility and flexible querying - Update tests and documentation for new metric structure
1 parent 9a17c65 commit d639ded

File tree

1 file changed

+35
-35
lines changed

1 file changed

+35
-35
lines changed

internal/store/deployment_test.go

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -42,41 +42,41 @@ func TestDeploymentStore(t *testing.T) {
4242
// Fixed metadata on type and help text. We prepend this to every expected
4343
// output so we only have to modify a single place when doing adjustments.
4444
const metadata = `
45-
# HELP kube_deployment_annotations Kubernetes annotations converted to Prometheus labels.
46-
# TYPE kube_deployment_annotations gauge
47-
# HELP kube_deployment_created [STABLE] Unix creation timestamp
48-
# TYPE kube_deployment_created gauge
49-
# HELP kube_deployment_metadata_generation [STABLE] Sequence number representing a specific generation of the desired state.
50-
# TYPE kube_deployment_metadata_generation gauge
51-
# HELP kube_deployment_spec_paused [STABLE] Whether the deployment is paused and will not be processed by the deployment controller.
52-
# TYPE kube_deployment_spec_paused gauge
53-
# HELP kube_deployment_spec_affinity Pod affinity and anti-affinity rules defined in the deployment's pod template specification.
54-
# TYPE kube_deployment_spec_affinity gauge
55-
# HELP kube_deployment_spec_replicas [STABLE] Number of desired pods for a deployment.
56-
# TYPE kube_deployment_spec_replicas gauge
57-
# HELP kube_deployment_status_replicas [STABLE] The number of replicas per deployment.
58-
# TYPE kube_deployment_status_replicas gauge
59-
# HELP kube_deployment_status_replicas_ready [STABLE] The number of ready replicas per deployment.
60-
# TYPE kube_deployment_status_replicas_ready gauge
61-
# HELP kube_deployment_status_replicas_available [STABLE] The number of available replicas per deployment.
62-
# TYPE kube_deployment_status_replicas_available gauge
63-
# HELP kube_deployment_status_replicas_unavailable [STABLE] The number of unavailable replicas per deployment.
64-
# TYPE kube_deployment_status_replicas_unavailable gauge
65-
# HELP kube_deployment_status_replicas_updated [STABLE] The number of updated replicas per deployment.
66-
# TYPE kube_deployment_status_replicas_updated gauge
67-
# HELP kube_deployment_status_observed_generation [STABLE] The generation observed by the deployment controller.
68-
# TYPE kube_deployment_status_observed_generation gauge
69-
# HELP kube_deployment_status_condition [STABLE] The current status conditions of a deployment.
70-
# TYPE kube_deployment_status_condition gauge
71-
# HELP kube_deployment_spec_strategy_rollingupdate_max_unavailable [STABLE] Maximum number of unavailable replicas during a rolling update of a deployment.
72-
# TYPE kube_deployment_spec_strategy_rollingupdate_max_unavailable gauge
73-
# HELP kube_deployment_spec_strategy_rollingupdate_max_surge [STABLE] Maximum number of replicas that can be scheduled above the desired number of replicas during a rolling update of a deployment.
74-
# TYPE kube_deployment_spec_strategy_rollingupdate_max_surge gauge
75-
# HELP kube_deployment_labels [STABLE] Kubernetes labels converted to Prometheus labels.
76-
# TYPE kube_deployment_labels gauge
77-
# HELP kube_deployment_deletion_timestamp Unix deletion timestamp
78-
# TYPE kube_deployment_deletion_timestamp gauge
79-
`
45+
# HELP kube_deployment_annotations Kubernetes annotations converted to Prometheus labels.
46+
# TYPE kube_deployment_annotations gauge
47+
# HELP kube_deployment_created [STABLE] Unix creation timestamp
48+
# TYPE kube_deployment_created gauge
49+
# HELP kube_deployment_metadata_generation [STABLE] Sequence number representing a specific generation of the desired state.
50+
# TYPE kube_deployment_metadata_generation gauge
51+
# HELP kube_deployment_spec_paused [STABLE] Whether the deployment is paused and will not be processed by the deployment controller.
52+
# TYPE kube_deployment_spec_paused gauge
53+
# HELP kube_deployment_spec_affinity Pod affinity and anti-affinity rules defined in the deployment's pod template specification.
54+
# TYPE kube_deployment_spec_affinity gauge
55+
# HELP kube_deployment_spec_replicas [STABLE] Number of desired pods for a deployment.
56+
# TYPE kube_deployment_spec_replicas gauge
57+
# HELP kube_deployment_status_replicas [STABLE] The number of replicas per deployment.
58+
# TYPE kube_deployment_status_replicas gauge
59+
# HELP kube_deployment_status_replicas_ready [STABLE] The number of ready replicas per deployment.
60+
# TYPE kube_deployment_status_replicas_ready gauge
61+
# HELP kube_deployment_status_replicas_available [STABLE] The number of available replicas per deployment.
62+
# TYPE kube_deployment_status_replicas_available gauge
63+
# HELP kube_deployment_status_replicas_unavailable [STABLE] The number of unavailable replicas per deployment.
64+
# TYPE kube_deployment_status_replicas_unavailable gauge
65+
# HELP kube_deployment_status_replicas_updated [STABLE] The number of updated replicas per deployment.
66+
# TYPE kube_deployment_status_replicas_updated gauge
67+
# HELP kube_deployment_status_observed_generation [STABLE] The generation observed by the deployment controller.
68+
# TYPE kube_deployment_status_observed_generation gauge
69+
# HELP kube_deployment_status_condition [STABLE] The current status conditions of a deployment.
70+
# TYPE kube_deployment_status_condition gauge
71+
# HELP kube_deployment_spec_strategy_rollingupdate_max_unavailable [STABLE] Maximum number of unavailable replicas during a rolling update of a deployment.
72+
# TYPE kube_deployment_spec_strategy_rollingupdate_max_unavailable gauge
73+
# HELP kube_deployment_spec_strategy_rollingupdate_max_surge [STABLE] Maximum number of replicas that can be scheduled above the desired number of replicas during a rolling update of a deployment.
74+
# TYPE kube_deployment_spec_strategy_rollingupdate_max_surge gauge
75+
# HELP kube_deployment_labels [STABLE] Kubernetes labels converted to Prometheus labels.
76+
# TYPE kube_deployment_labels gauge
77+
# HELP kube_deployment_deletion_timestamp Unix deletion timestamp
78+
# TYPE kube_deployment_deletion_timestamp gauge
79+
`
8080

8181
cases := []generateMetricsTestCase{
8282
{

0 commit comments

Comments
 (0)