删除或重命名 scrape_config 标签
Drop or rename scrape_config label
我想重命名或删除指标中 /metrics
端点的标签。指标本身来自 kube-state-metrics
应用程序,所以没什么特别的。指标如下所示:
kube_pod_container_resource_requests{container="alertmanager", instance="10.10.10.10:8080", funday_monday="blubb", job="some-kube-state-metrics", name="kube-state-metrics", namespace="monitoring", node="some-host-in-azure-1234", pod="alertmanager-main-1", resource="memory", uid="12345678-1234-1234-1234-123456789012", unit="byte"} 209715200
我想替换的标签是 instance
,因为它指的是运行 kube-state-metrics
应用程序的主机,我不关心它。我想在 instance
中获得 node
的值,我已经尝试了几个小时,但找不到方法 - 我想知道这是否根本不可能!?
我抓取 /metrics
端点的方式是通过 scrape-config 的方式,如下所示:
- job_name: some-kube-state-metrics
scrape_interval: 30s
scrape_timeout: 10s
metrics_path: /metrics
kubernetes_sd_configs:
- api_server: null
role: pod
scheme: http
relabel_configs:
- source_labels: [__meta_kubernetes_pod_labelpresent_kubeStateMetrics]
regex: true
action: keep
- source_labels: [__meta_kubernetes_pod_label_name]
regex: (.*)
replacement:
target_label: name
action: replace
- source_labels: [__meta_kubernetes_pod_container_port_name]
separator: ;
regex: http
replacement:
action: keep
- source_labels: [node]
regex: (.*)
replacement: blubb
target_label: funday_monday
action: replace
- action: labeldrop
regex: "unit=(.*)"
- source_labels: [ __name__ ]
regex: 'kube\_pod\_container\_resource\_requests'
action: drop
如您所知,我也一直在尝试删除标签,即 unit
-标签(仅用于测试目的),并且我还尝试一起删除指标。
funday_monday
是一个更改的示例,因为我想知道是否可以进行静态重新标记(有效!) - 在它看起来像这样之前:
- source_labels: [node]
regex: (.*)
replacement:
target_label: funday_monday
action: replace
感谢帮助。
问题是您在错误的时间执行这些操作。 relabel_configs happens before metrics are actually gathered, so, at this time, you can only manipulate the labels that you got from service discovery.
node
标签来自出口商。因此,您需要在 metric_relabel_configs:
下执行此重新标记操作
metric_relabel_configs:
- source_labels: [node]
target_label: instance
删除指标也是如此。如果您想了解更多信息,我在这里回答了类似的问题:
我想重命名或删除指标中 /metrics
端点的标签。指标本身来自 kube-state-metrics
应用程序,所以没什么特别的。指标如下所示:
kube_pod_container_resource_requests{container="alertmanager", instance="10.10.10.10:8080", funday_monday="blubb", job="some-kube-state-metrics", name="kube-state-metrics", namespace="monitoring", node="some-host-in-azure-1234", pod="alertmanager-main-1", resource="memory", uid="12345678-1234-1234-1234-123456789012", unit="byte"} 209715200
我想替换的标签是 instance
,因为它指的是运行 kube-state-metrics
应用程序的主机,我不关心它。我想在 instance
中获得 node
的值,我已经尝试了几个小时,但找不到方法 - 我想知道这是否根本不可能!?
我抓取 /metrics
端点的方式是通过 scrape-config 的方式,如下所示:
- job_name: some-kube-state-metrics
scrape_interval: 30s
scrape_timeout: 10s
metrics_path: /metrics
kubernetes_sd_configs:
- api_server: null
role: pod
scheme: http
relabel_configs:
- source_labels: [__meta_kubernetes_pod_labelpresent_kubeStateMetrics]
regex: true
action: keep
- source_labels: [__meta_kubernetes_pod_label_name]
regex: (.*)
replacement:
target_label: name
action: replace
- source_labels: [__meta_kubernetes_pod_container_port_name]
separator: ;
regex: http
replacement:
action: keep
- source_labels: [node]
regex: (.*)
replacement: blubb
target_label: funday_monday
action: replace
- action: labeldrop
regex: "unit=(.*)"
- source_labels: [ __name__ ]
regex: 'kube\_pod\_container\_resource\_requests'
action: drop
如您所知,我也一直在尝试删除标签,即 unit
-标签(仅用于测试目的),并且我还尝试一起删除指标。
funday_monday
是一个更改的示例,因为我想知道是否可以进行静态重新标记(有效!) - 在它看起来像这样之前:
- source_labels: [node]
regex: (.*)
replacement:
target_label: funday_monday
action: replace
感谢帮助。
问题是您在错误的时间执行这些操作。 relabel_configs happens before metrics are actually gathered, so, at this time, you can only manipulate the labels that you got from service discovery.
node
标签来自出口商。因此,您需要在 metric_relabel_configs:
metric_relabel_configs:
- source_labels: [node]
target_label: instance
删除指标也是如此。如果您想了解更多信息,我在这里回答了类似的问题: