活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | UTC 格式的采样或转换时间。 |
| cluster | Utf8 | 受控集群名称。 |
| namespace | Utf8 | Kubernetes 命名空间。 |
| workload | Utf8 | Deployment、StatefulSet 或作业所有者名称。 |
| pod | Utf8 | 用于限制向下钻取的 Pod 标识符。 |
| event_name | Utf8 | 受控采样或 container_restarted 事件。 |
| restart_count | Int64 | 观察到的累积容器重新启动计数。 |
| ready | Boolean | 样品舱是否已准备好。 |
| environment | Utf8 | 部署环境。 |
DataFusion SQL
复制查询
sql
SELECT
cluster,
namespace,
workload,
COUNT(*) AS observations,
SUM(CASE WHEN event_name = 'container_restarted' THEN 1 ELSE 0 END) AS restart_events,
MAX(restart_count) AS max_restart_count,
SUM(CASE WHEN ready THEN 0 ELSE 1 END) AS not_ready_observations,
100.0 * SUM(CASE WHEN ready THEN 0 ELSE 1 END)
/ NULLIF(COUNT(*), 0) AS not_ready_rate_pct
FROM kubernetes_workload_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY cluster, namespace, workload
ORDER BY restart_events DESC, not_ready_rate_pct DESC, workload;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
按工作负载划分的重启和就绪信号
与计费工作人员相比,结帐有更多的重新启动转换和未就绪的观察。
checkout-api
2
2
billing-worker
1
1
| cluster | namespace | workload | observations | restart_events | max_restart_count | not_ready_observations | not_ready_rate_pct |
|---|---|---|---|---|---|---|---|
| production-us | application | checkout-api | 5 | 2 | 4 | 2 | 40 |
| production-us | application | billing-worker | 4 | 1 | 2 | 1 | 25 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1工作负载所有权比 Pod 名称更稳定,并将结果映射到可部署单元。
- 2重新启动转换与累积计数器分开计数,以避免对仪表进行求和。
- 3准备情况观察将操作症状与潜在的服务影响放在一起。
需要决定的边缘情况
- rollout 自然会取代 pod;区分计划更换和重复容器重启。
- 重新创建 Pod 时计数器可能会重置,因此请使用转换事件来计算速率。
- 在将重新启动归因于代码更改之前,加入部署和应用程序发布上下文。
推荐仪表板
- 堆叠条:按工作负载划分的 restart_events 和 not_ready_observations
- 趋势:按集群和命名空间重新启动过渡
- 表:最新受影响的 Pod 及其发布和受控原因
让查询示例发挥作用
相关埋点和指南
定义源数据
此分析的事件模式
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。