obj*_*ion 2 monitoring kubernetes prometheus
我从掌舵安装了稳定/普罗米修斯。默认情况下,job_namekubernetes-service-endpoints
包含node-exporter
和kube-state-metrics
作为组件标签。我在 prometheus.yml 中添加了以下配置以包含命名空间、pod 和节点标签。
- source_labels: [__meta_kubernetes_namespace]
separator: ;
regex: (.*)
target_label: namespace
replacement: $1
action: replace
- source_labels: [__meta_kubernetes_pod_name]
separator: ;
regex: (.*)
target_label: pod
replacement: $1
action: replace
- source_labels: [__meta_kubernetes_pod_node_name]
separator: ;
regex: (.*)
target_label: node
replacement: $1
action: replace
Run Code Online (Sandbox Code Playgroud)
kube_pod_info{component="kube-state-metrics"}
已经有了命名空间、pod 和节点标签,因此生成了导出的标签。并且该指标node_cpu_seconds_total{component="node-exporter"}
现在正确地具有标签命名空间、pod 和节点。
要正确使用这些标签,我需要在上述两个指标名称中都包含这 3 个标签。为了实现这一点,我可以覆盖exported_labels 的值。我尝试添加以下配置但无济于事。
- source_labels: [__name__, exported_pod]
regex: "kube_pod_info;(.+)"
target_label: pod
- source_labels: [__name__, exported_namespace]
regex: "kube_pod_info;(.+)"
target_label: namespace
- source_labels: [__name__, exported_node]
regex: "kube_pod_info;(.+)"
target_label: node
Run Code Online (Sandbox Code Playgroud)
这里提到了类似的方法。我看不到我的一段代码的问题。任何解决方向都会非常有帮助。
更新 - (添加完整的工作)
- job_name: kubernetes-service-endpoints
kubernetes_sd_configs:
- role: endpoints
metric_relabel_configs:
- source_labels: [__name__, exported_pod]
regex: "kube_pod_info;(.+)"
target_label: pod
- source_labels: [__name__, exported_namespace]
regex: "kube_pod_info;(.+)"
target_label: namespace
- source_labels: [__name__, exported_node]
regex: "kube_pod_info;(.+)"
target_label: node
relabel_configs:
- action: keep
regex: true
source_labels:
- __meta_kubernetes_service_annotation_prometheus_io_scrape
- action: replace
regex: (https?)
source_labels:
- __meta_kubernetes_service_annotation_prometheus_io_scheme
target_label: __scheme__
- action: replace
regex: (.+)
source_labels:
- __meta_kubernetes_service_annotation_prometheus_io_path
target_label: __metrics_path__
- action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
source_labels:
- __address__
- __meta_kubernetes_service_annotation_prometheus_io_port
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
- action: replace
source_labels:
- __meta_kubernetes_namespace
target_label: namespace
- action: replace
regex: (.*)
replacement: $1
separator: ;
source_labels:
- __meta_kubernetes_pod_name
target_label: pod
- action: replace
source_labels:
- __meta_kubernetes_pod_node_name
target_label: node
Run Code Online (Sandbox Code Playgroud)
promql 的结果
所以,你的目标是重新命名的度量标准标签exported_pod
来pod
等,为kube_pod_info
指标?
在这种情况下,您需要在从目标中获取指标时进行指标重新标记:
- job_name: 'kubernetes-service-endpoints'
kubernetes_sd_configs:
- role: endpoints
metric_relabel_configs:
- source_labels: [__name__, exported_pod]
regex: "kube_pod_info;(.+)"
target_label: pod
- source_labels: [__name__, exported_namespace]
regex: "kube_pod_info;(.+)"
target_label: namespace
- source_labels: [__name__, exported_node]
regex: "kube_pod_info;(.+)"
target_label: node
relabel_configs:
# Insert the same what you have so far
Run Code Online (Sandbox Code Playgroud)
背景:
正常重新标记( relabel_configs
) 在服务发现时应用于服务发现过程自动发现的目标标签。它定义了明确的目标标签。在抓取时,目标标签会添加到来自目标的所有指标的指标标签中。正常的重新标记只能用于在服务发现后处理目标的标签,这些标签通常是以 开头的元标签__
。
指标重新标记( metric_relabel_configs
)在抓取时应用于指标标签。因此,这可用于重命名由公开指标本身的应用程序定义的标签。
归档时间: |
|
查看次数: |
3948 次 |
最近记录: |