普罗米修斯 relabel_config 删除操作无效
prometheus relabel_config drop action not working
我一直在尝试通过 relabel_configs
:
删除未使用的指标(在抓取之前)以减轻 Prometheus 集群上的负载
- job_name: nginx-ingress-controller-metrics
kubernetes_sd_configs:
- role: endpoints
namespaces:
names:
- <some-namespace>
relabel_configs:
# single
- source_labels: [__name__]
regex: nginx_ingress_controller_response_size_bucket
action: drop
# multiple
- source_labels: [__name__]
regex: nginx_ingress_controller_(request_size_bucket|response_duration_seconds_bucket|bytes_sent_bucket|bytes_sent_sum)
action: drop
但是,我没有看到这些指标中的任何一个被丢弃(在抓取之前)并且它们被抓取和摄取,因为我可以通过 PromQL
.
查询它们
我已经尝试过相同配置的多种变体(即引号、括号等)。知道为什么这些目标仍然是 scraped/ingested 吗?
您不能在抓取之前通过 __name__
删除(即在 relabel_configs
中),此标签尚不存在。 relabel_configs
发生在与导出器建立连接之前,此时 Prometheus 所知道的只是服务发现数据。因此,使用 relabel_configs
你只能操作 hosts.
规模的数据
__name__
在抓取后变得可用,并且在处理指标并将其保存到数据库之前还有时间。这是 metric_relabel_configs
发生的时候,如果你想按名称 keep/drop - 这是这样做的地方:
metric_relabel_configs:
- source_labels: [__name__]
regex: my_useless_metric.*
action: drop
我一直在尝试通过 relabel_configs
:
- job_name: nginx-ingress-controller-metrics
kubernetes_sd_configs:
- role: endpoints
namespaces:
names:
- <some-namespace>
relabel_configs:
# single
- source_labels: [__name__]
regex: nginx_ingress_controller_response_size_bucket
action: drop
# multiple
- source_labels: [__name__]
regex: nginx_ingress_controller_(request_size_bucket|response_duration_seconds_bucket|bytes_sent_bucket|bytes_sent_sum)
action: drop
但是,我没有看到这些指标中的任何一个被丢弃(在抓取之前)并且它们被抓取和摄取,因为我可以通过 PromQL
.
我已经尝试过相同配置的多种变体(即引号、括号等)。知道为什么这些目标仍然是 scraped/ingested 吗?
您不能在抓取之前通过 __name__
删除(即在 relabel_configs
中),此标签尚不存在。 relabel_configs
发生在与导出器建立连接之前,此时 Prometheus 所知道的只是服务发现数据。因此,使用 relabel_configs
你只能操作 hosts.
__name__
在抓取后变得可用,并且在处理指标并将其保存到数据库之前还有时间。这是 metric_relabel_configs
发生的时候,如果你想按名称 keep/drop - 这是这样做的地方:
metric_relabel_configs:
- source_labels: [__name__]
regex: my_useless_metric.*
action: drop