普罗米修斯如何知道豆荚何时坠毁?

时间:2018-07-18 20:08:58

标签: kubernetes prometheus kubernetes-pod prometheus-alertmanager

我了解通过Prometheus,我们可以设置警报规则,该规则可以在Pod崩溃时检测并发出警报。

我想了解Prometheus自己如何知道豆荚崩溃或处于挂起状态。

  • 当它尝试从pod的http终结点端口抓取指标时,它知道吗?

OR

  • Prometheus是否从Kubernetes获取吊舱状态信息?

之所以这样问,是因为我想设置Prometheus来监视已经部署的现有Pod。如果Pod持续崩溃或卡在挂起状态,我想得到警告。而且我想知道Prometheus是否可以在不对现有pod内的代码进行任何修改的情况下检测到这些警报。

3 个答案:

答案 0 :(得分:1)

普罗米修斯提取指标和健康状况的常用方法是使用抓取工具(通过http端点是最常见的方法)。由于Pod可以有多个容器,因此最好抓取正在运行的容器的http端点。

如果prometheus没有从此端点收到良好的响应,则可以确定容器已关闭。

Prometheus本身不会发出警报,您通常将其委托给警报管理器。

答案 1 :(得分:1)

使用sum(kube_pod_container_status_waiting_reason) by (reason)获取所有容器等待原因(如果有的话)

答案 2 :(得分:0)

kube-state-metricskube-apiserver收集有关kubernetes对象(例如pod,部署等)状态的信息。它包装在prometheus-operator中。要回答您的问题,您不需要将Pod放在能够抓取其状态指标的状态,而是可以直接从apiserver收集(通过对kube-state-metrics端点进行转义)。

要通过kube-state-metrics检查可用的Pod级别指标,请检查:https://github.com/kubernetes/kube-state-metrics/blob/master/docs/pod-metrics.md

根据以上答案,您可以使用kube_pod_container_status_waiting_reason指标,或者无论原因如何,只要您要阈值警报,就可以使用kube_pod_container_status_waiting

相关问题