Yar*_*dan 5 kubernetes prometheus
我正在寻找一个普罗米修斯指标,它可以让我监控吊舱在terminating消失之前在该状态中花费的时间。
我尝试过尝试,kube_pod_container_status_terminated但它似乎只在 pod 完成终止过程后才注册,但不能帮助我了解终止 pod 需要多长时间。
我也看过kube_pod_status_phase我不久前在这个频道中发现的内容,但它似乎也缺乏这种洞察力。
我目前正在使用 cAdvisor、kube-state-metrics 和 prometheus node-exporter 收集 k8s 工作负载的指标,但如果它们包含所需的数据,我很乐意考虑其他收集器。
非普罗米修斯的解决方案也很棒。
有任何想法吗?谢谢!
根据pod-metrics文档:
对于某些情况(例如“正在终止”和“未知”)获取 Pod 状态并不简单,因为它没有存储在 Pod.Status 中的字段后面。
因此,为了模仿命令行使用的逻辑
kubectl,您将需要组合多个指标。[...]
- 对于处于终止状态的 Pod:
count(kube_pod_deletion_timestamp) by (namespace, pod) * count(kube_pod_status_reason{reason="NodeLost"} == 0) by (namespace, pod)
以下是 Prometheus 规则的示例,该规则可用于对处于该
Terminated状态超过 的Pod 发出警报5m。
groups:
- name: Pod state
rules:
- alert: PodsBlockInTerminatingState
expr: count(kube_pod_deletion_timestamp) by (namespace, pod) * count(kube_pod_status_reason{reason="NodeLost"} == 0) by (namespace, pod) > 0
for: 5m
labels:
severity: page
annotations:
summary: Pod {{$labels.namespace}}/{{$labels.pod}} block in Terminating state.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6734 次 |
| 最近记录: |