【问题标题】:Collecting app-level metrics from Kubernetes containers从 Kubernetes 容器收集应用级指标
【发布时间】:2016-03-15 08:59:33
【问题描述】:

根据Kubernetes Custom Metrics Proposal,容器可以以 Prometheus 格式公开其应用级指标,以供 Heapster 收集。

谁能详细说明一下,如果 Heapster 提取指标,这意味着在容器终止后最后一个间隔的指标丢失了吗?应用是否可以将指标推送到 Heapster?

或者,是否有推荐的方法来从运行在 Kubernetes 中的中等短期容器收集指标?

【问题讨论】:

    标签: kubernetes google-kubernetes-engine heapster


    【解决方案1】:

    不代表原作者的意图,但我认为该提案主要关注您希望用于集群内调度和自动缩放等事情的自定义指标,而不是用于通用监控(正如您提到的,推送指标有时很关键)。

    对于如何处理自定义指标,没有单一的推荐模式。如果您的环境有首选的监控堆栈或供应商,一种常见的方法是在每个 pod 中运行第二个容器(“sidecar”容器),以将有关主容器的相关指标推送到您的监控后端。

    【讨论】:

      【解决方案2】:

      您可能希望通过将工作中的指标直接发送到 Prometheus pushgateway 来处理此问题。这是它创建的精确用例:

      Prometheus Pushgateway 的存在是为了允许临时和批处理作业向 Prometheus 公开其指标。由于这些类型的工作可能存在的时间不够长而无法被抓取,因此他们可以将指标推送到 Pushgateway。然后 Pushgateway 将这些指标公开给 Prometheus。

      【讨论】:

      • 普罗米修斯开发者在这里。 pushgateway 用于在批处理作业终止后保留指标,不适用于一般应用程序或基础架构监控。
      • @brian-brazil 可能是我误解了他的问题的意图,但在我看来,他的容器寿命很短(可能是 k8s 乔布斯),并且担心在拉动时,他会错过最后一次拉取和容器拆解之间的指标。翻转他的模型以从容器中推送指标将解决这个问题。
      【解决方案3】:

      普罗米修斯开发者在这里。如果要监控 Kubernetes 上运行的应用程序的指标,方法是让 Prometheus 直接抓取应用程序。 Prometheus 可以自动发现 Kubernetes 应用,见http://prometheus.io/docs/operating/configuration/#<kubernetes_sd_config>

      如果您使用 Prometheus,则没有必要让 Heapster 参与进来,因为 Prometheus 可以更直接地完成它所做的一切。

      【讨论】:

      • 谢谢,但恐怕这种方法不适用于来来去去的 pod。这个问题是关于 Kubernetes Jobs 的。
      • 这是通过服务发现支持的,目前它只是一个服务,但正在开发中。汇总后,只要单个容器的生命周期适中,它们的生命周期就无关紧要。
      • 我还是不明白。假设容器终止前的那一刻,它有一个新的指标。不会有被收集的机会吧?
      • 是的,那将被错过。处理计数器的 Prometheus 函数允许这样做,所以只要这些是服务而不是批处理作业就可以了。
      猜你喜欢
      • 1970-01-01
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多