将 Grafana 指标与不匹配的标签相结合
Posted
技术标签:
【中文标题】将 Grafana 指标与不匹配的标签相结合【英文标题】:Combine Grafana metrics with mismatched labels 【发布时间】:2019-04-27 22:46:57 【问题描述】:我有两个指标(与我的 Kubernetes pod 中的内存使用相关)定义如下:
-
kube_pod_container_resource_limits_memory_bytesapp="kube-state-metrics",container="foo",instance="10.244.0.7:8080",job="kubernetes-endpoints",kubernetes_name="kube -state-metrics",kubernetes_namespace="monitoring",namespace="test",node="aks-nodepool1-25518080-0",pod="foo-cb9bc5fb5-2bghz"
container_memory_working_set_bytesagentpool="nodepool1",beta_kubernetes_io_arch="amd64",beta_kubernetes_io_instance_type="Standard_A2",beta_kubernetes_io_os="linux",container_name="foo",failure_domain_beta_kubernetes_io_region="beta_kubernetes_io_region="westeurope_"_io_ubernetes “1”,ID = “/ kubepods /爆裂/ pod5b0099a9-连翘醇提物-11e8-884b-ca2011a99774 / eeb183b21e2b3226a32de41dd85d7a2e9fc8715cf31ea7109bfbb2cae7c00c44”,图像= “@ SHA256:6d6003ba86a0b7f74f512b08768093b4c098e825bd7850db66d11f66bc384870”,例如= “AKS-nodepool1-25518080-0”,作业=“kubernetes -cadvisor",kubernetes_azure_com_cluster="MC_test.planned.bthbygg.se_bthbygg-test_westeurope",kubernetes_io_hostname="aks-nodepool1-25518080-0",kubernetes_io_role="agent",name="k8s_foo_foo-cb9bc5fb5-2bghz_test_5b0099a9-eeff-18-84 -ca2011a99774_0",namespace="test",pod_name="foo-cb9bc5fb5-2bghz",storageprofile="managed",storagetier="Standard_LRS"
我想将这两个组合成一个百分比,通过做类似的事情
container_memory_working_set_bytesnamespace="test"
/ kube_pod_container_resource_limits_memory_bytesnamespace="test"
但这没有给我任何数据,大概是因为没有匹配的标签来加入数据集。如您所见,我确实有匹配的标签 values,但标签 names 不匹配。
我是否可以通过某种方式制定我的查询以加入这些查询,例如pod == pod_name
,无需更改另一端的指标(导出的位置)?
【问题讨论】:
【参考方案1】:您可以使用 PromQL label_replace 函数从原始标签创建新的匹配标签。
例如,您可以使用以下表达式将container_name="foo"
标签添加到可用于连接的第一个指标:
label_replace(
kube_pod_container_resource_limits_memory_bytes,
"container_name", "$1", "container", "(.*)")
您可以使用上述模式创建可用于匹配的新标签。
【讨论】:
以上是关于将 Grafana 指标与不匹配的标签相结合的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Prometheus/Grafana 中不指定标签的情况下通过唯一标签计算指标数量?