You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求指导:在Dynatrace中创建特定Namespace下Workload Pod数为0的告警

Dynatrace告警规则:指定Namespace下Workload Pod数为0的指标查询指导

需求说明

需要创建告警规则,当指定Kubernetes命名空间内,任意非Job/CronJob类型的Workload(比如Deployment、StatefulSet等)的活跃状态Pod数量为0时触发告警。活跃状态指Pod阶段既非Failed(失败)也非Succeeded(成功)。

参考查询语句解析(中文翻译)

你提供的参考查询语句用于计算指定维度下的Ready状态Pod数量,拆解后逻辑如下:

# 第一部分:统计活跃状态(非失败/成功)、非Job/CronJob类型的Pod总数
内置Kubernetes Pod指标:过滤(与(不等于(Pod阶段,失败),不等于(Pod阶段,成功),不等于(Workload类型,Job),不等于(Workload类型,CronJob))):按(命名空间名称,Workload类型,Workload名称)拆分:求和

-

# 第二部分:统计活跃状态、非Job/CronJob类型且非Ready状态的Pod总数
内置Kubernetes Pod指标:过滤(与(不等于(Pod阶段,失败),不等于(Pod阶段,成功),不等于(Workload类型,Job),不等于(Workload类型,CronJob),不等于(Pod状态,就绪))):按(命名空间名称,Workload类型,Workload名称)拆分:求和:默认值(0.0)

整体计算逻辑:用活跃Pod总数减去非Ready的活跃Pod数,最终得到各Workload的Ready状态Pod数量。

适配需求的简化查询语句

如果你的核心需求是监控“活跃Pod数量为0”(即Workload下没有任何运行中/待调度的Pod),可以直接使用以下查询,无需做减法:

builtin:kubernetes.pods:filter(and(ne(pod_phase,Failed),ne(pod_phase,Succeeded),ne(k8s.workload.kind,job),ne(k8s.workload.kind,cronjob),eq(k8s.namespace.name,"你的目标命名空间"))):splitBy(k8s.workload.kind,k8s.workload.name):sum:default(0.0)

语句说明

  • 新增eq(k8s.namespace.name,"你的目标命名空间")直接过滤指定命名空间
  • 最终统计的是该命名空间下,非Job/CronJob类型Workload的活跃Pod总数,无数据时默认返回0

告警配置要点

  1. 设置阈值:在告警规则的“静态阈值”中,将条件设为等于0,并根据业务需求设置持续触发时间(比如5分钟,避免临时重启导致误告警)
  2. 维度拆分:保留k8s.workload.kind和k8s.workload.name的拆分维度,这样告警能精准定位到具体Workload
  3. 排除例外:如果有特定Workload不需要监控,可在filter中添加ne(k8s.workload.name,"例外Workload名称")

内容的提问来源于stack exchange,提问作者nayak_babu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:53:10