prometheus-community / prometheus-community/stackdriver_exporter
Error if using in filters metadata.user_labels.
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 295
- Forks
- 117
- Avg merge
- 9d 14h
- Merged PRs (30d)
- 7
Description
Hello,
I want to collect GKE metrics from GCP Monitoring.
if i run:
stackdriver_exporter
--google.project-id=qa
--monitoring.metrics-type-prefixes "kubernetes.io/node/memory/used_bytes"
--monitoring.filters 'kubernetes.io/node/memory/used_bytes:resource.label."cluster_name"="cluster00"'
--log.level=debug
metrics collecting and all right
ts=2023-11-28T14:38:27.542Z caller=monitoring_collector.go:372 level=debug msg="listing Google Stackdriver Monitoring metric descriptors starting with" prefix=kubernetes.io/node/memory/used_bytes
ts=2023-11-28T14:38:28.314Z caller=monitoring_collector.go:274 level=debug msg="retrieving Google Stackdriver Monitoring metrics for descriptor" descriptor=kubernetes.io/node/memory/used_bytes
ts=2023-11-28T14:38:28.315Z caller=monitoring_collector.go:304 level=debug msg="retrieving Google Stackdriver Monitoring metrics with filter" filter="metric.type=\"kubernetes.io/node/memory/used_bytes\" AND (resource.label.\"cluster_name\"=\"cluster_name\")"
ts=2023-11-28T14:38:28.465Z caller=monitoring_collector.go:387 level=debug msg="Done reporting monitoring metrics"
but if add the additional filter from metadata.user_labels collection and run it:
stackdriver_exporter
--google.project-id=qa
--monitoring.metrics-type-prefixes "kubernetes.io/node/memory/used_bytes"
--monitoring.filters 'kubernetes.io/node/memory/used_bytes:resource.label."cluster_name"="cluster00" AND metadata.user_labels."beta.kubernetes.io/os"="windows"'
--log.level=debug
i receive the error:
ts=2023-11-28T14:44:19.693Z caller=monitoring_collector.go:274 level=debug msg="retrieving Google Stackdriver Monitoring metrics for descriptor" descriptor=kubernetes.io/node/memory/used_bytes
ts=2023-11-28T14:44:19.694Z caller=monitoring_collector.go:304 level=debug msg="retrieving Google Stackdriver Monitoring metrics with filter" filter="metric.type=\"kubernetes.io/node/memory/used_bytes\" AND (resource.label.\"cluster_name\"=\"cluster_name\" AND metadata.user_labels.\"beta.kubernetes.io/os\"=\"windows\")"
ts=2023-11-28T14:44:19.857Z caller=monitoring_collector.go:315 level=error msg="error retrieving Time Series metrics for descriptor" descriptor=kubernetes.io/node/memory/used_bytes err="googleapi: Error 400: Field filter had an invalid value of \"metric.type=\"kubernetes.io/node/memory/used_bytes\" AND (resource.label.\"cluster_name\"=\"cluster_name\" AND metadata.user_labels.\"beta.kubernetes.io/os\"=\"windows\")\": Resource metadata filters are only allowed on aligned metrics., badRequest"
ts=2023-11-28T14:44:19.857Z caller=monitoring_collector.go:387 level=debug msg="Done reporting monitoring metrics"
i try to use the command:
stackdriver_exporter
--google.project-id=qa
--monitoring.metrics-type-prefixes "kubernetes.io/node/memory/used_bytes"
--monitoring.filters 'kubernetes.io/node/memory/used_bytes:resource.label."cluster_name"="cluster00"'
--monitoring.filters 'kubernetes.io/node/memory/used_bytes:metadata.user_labels."beta.kubernetes.io/os"="windows"'
--log.level=debug
error:
ts=2023-11-28T14:47:13.104Z caller=monitoring_collector.go:315 level=error msg="error retrieving Time Series metrics for descriptor" descriptor=kubernetes.io/node/memory/used_bytes err="googleapi: Error 400: Field filter had an invalid value of \"metric.type=\"kubernetes.io/node/memory/used_bytes\" AND (resource.label.\"cluster_name\"=\"cluster_name\") AND (metadata.user_labels.\"beta.kubernetes.io/os\"=\"windows\")\": Resource metadata filters are only allowed on aligned metrics., badRequest"
ts=2023-11-28T14:47:13.104Z caller=monitoring_collector.go:228 level=error msg="Error while getting Google Stackdriver Monitoring metrics" err="googleapi: Error 400: Field filter had an invalid value of \"metric.type=\"kubernetes.io/node/memory/used_bytes\" AND (resource.label.\"cluster_name\"=\"cluster_name\") AND (metadata.user_labels.\"beta.kubernetes.io/os\"=\"windows\")\": Resource metadata filters are only allowed on aligned metrics., badRequest"
how i can select metrics with using metadata.user_labels. ?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in monitoring_collector.go, where the filter is constructed and the Google Monitoring request error is logged. Reproduce the two filter forms, then check the Google Cloud Monitoring filter requirements for metadata.user_labels on this metric. Done means the supported behavior is established and the exporter either handles it correctly or reports the limitation clearly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, google-cloud
- Domain
- observability
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100