在普罗米修斯变化标签

时间:2017-03-12 17:28:41

标签: kubernetes prometheus

我用版本之类的东西注释我的Kubernetes对象,并在出现故障时与谁联系。如何知道这些注释值会经常变化,我将如何将此信息传递给普罗米修斯?我无法在Prometheus标签中捕获这些信息,因为它们是目标的主键(例如,如果版本发生变化,它完全是一个新目标,我不想要)。谢谢!

1 个答案:

答案 0 :(得分:3)

我刚写了一篇关于这个话题的博文! https://www.weave.works/aggregating-pod-resource-cpu-memory-usage-arbitrary-labels-prometheus/

技巧是Kubelet / cAdvisor没有直接公开它们,所以我运行了一个小的导出器,并将其与PromQL中的pod名称连接起来。出口商是:https://github.com/tomwilkie/kube-api-exporter

你可以像这样加入普罗米修斯:

sum by (namespace, name) (
      sum(rate(container_cpu_usage_seconds_total{image!=""}[5m])) by (pod_name, namespace)
    * on (pod_name) group_left(name)
      k8s_pod_labels{job="monitoring/kube-api-exporter"}
   )

这里我使用的是名为“name”的标签,但它可以是任何标签。

我们使用相同的技巧来获取版本的度量标准(例如错误率),然后我们使用它来驱动我们的持续部署系统。 kube-api-exporter向普罗米修斯输出了一堆关于Kubernetes对象的有用元信息。

希望这有帮助!