我一直在尝试通过以下方式删除未使用的指标(在抓取之前)以减轻 Prometheus 集群上的负载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
Run Code Online (Sandbox Code Playgroud)
但是,我没有看到任何这些指标被删除(在抓取之前),并且它们被抓取和摄取,因为我可以通过PromQL.
我尝试了同一配置的许多变体(即引号、括号等)。知道为什么这些目标仍然被刮擦/摄取吗?
您声明的内容relabel_configs发生在 Prometheus 与导出器建立连接之前。没有连接意味着还没有指标和标签,因此此时您无法删除指标__name__。
您实际需要使用的是metric_relabel_configs. 此重新标记步骤发生在 Prometheus 从导出器检索数据之后、数据实际保存到数据库之前。这是一个例子:
metric_relabel_configs:
- source_labels: [__name__]
regex: my_useless_metric.*
action: drop
Run Code Online (Sandbox Code Playgroud)
如果您好奇“那么 relabel_configs 有什么意义?”,relabel_configs请在主机规模上操作指标。使用服务发现信息(此时可用),您可以使用重新标记来更改地址、端口或决定是否应该删除该实例。
| 归档时间: |
|
| 查看次数: |
3873 次 |
| 最近记录: |