【问题标题】:Varying labels in PrometheusPrometheus 中的不同标签
【发布时间】:2017-03-12 17:28:41
【问题描述】:

我用诸如版本和出现故障时联系谁等内容来注释我的 Kubernetes 对象。知道这些注释值会经常更改,我如何将这些信息传递给 Prometheus?我无法在 Prometheus 标签中捕获此信息,因为它们充当目标的主键(例如,如果版本更改,它完全是一个新目标,我不想要)。谢谢!

【问题讨论】:

    标签: kubernetes prometheus


    【解决方案1】:

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

    诀窍是 Kubelet/cAdvisor 不会直接公开它们,所以我运行了一个小型导出器,它会使用 PromQL 中的 pod 名称加入它。出口商是:https://github.com/tomwilkie/kube-api-exporter

    你可以像这样在 Prometheus 中加入:

    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"}
       )
    

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

    我们使用相同的技巧按版本获取指标(例如错误率),然后我们用它来驱动我们的持续部署系统。 kube-api-exporter 将一堆关于 Kubernetes 对象的有用元信息导出到 Prometheus。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2020-01-02
      • 2020-05-13
      • 2020-06-07
      • 1970-01-01
      • 2019-12-21
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多