Skip to content

Commit 7237216

Browse files
committed
fix: recording rules missing postgres pod metrics for CNPG dashboard
CNPG dashboard was missing data because recording rule metrics only appeared for kube-state-metrics, not for PostgreSQL database pods. Fixed by setting honorLabels: true on kube-state-metrics and kubelet ServiceMonitors, which preserves the correct pod labels needed for the recording rule joins to succeed. Now all pods including pg-{region}-* appear in recording rule metrics.
1 parent da352df commit 7237216

File tree

3 files changed

+3
-1
lines changed

3 files changed

+3
-1
lines changed

monitoring/kube-state-metrics/deployment.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ spec:
8585
endpoints:
8686
- port: http-metrics
8787
interval: 30s
88+
honorLabels: true
8889
- port: telemetry
8990
interval: 30s
9091
selector:

monitoring/prometheus-instance/servicemonitor-kubelet.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ spec:
3636
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
3737
tlsConfig:
3838
insecureSkipVerify: true
39+
honorLabels: true
3940
relabelings:
4041
- targetLabel: metrics_path
4142
replacement: /metrics/cadvisor

test-1-setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ for region in eu us; do
139139
sleep 3
140140

141141
# Check if recording rule metrics exist
142-
RULE_METRICS=$(curl -s "http://localhost:${PORT}/api/v1/query?query=node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate" | jq -r '.data.result | length' || echo "0")
142+
RULE_METRICS=$(curl -s "http://localhost:${PORT}/api/v1/query" --data-urlencode "query=node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{pod=~\"pg-${region}-.*\",namespace=\"default\",node!=\"\"}" | jq -r '.data.result | length' || echo "0")
143143
[ "${RULE_METRICS}" -ge 1 ] && \
144144
pass "${region}: Recording rule metrics (${RULE_METRICS})" || fail "${region}: Recording rule metrics missing"
145145
done

0 commit comments

Comments
 (0)