kubernetes - Azure Kubernetes 服务 (AKS) - Pod 重启警报

标签 kubernetes azure-aks azure-log-analytics azure-monitoring

我想在 Pod 重新启动时创建警报规则。即,如果 Pod 在 30 分钟内重新启动两次

我有以下日志分析查询:

KubePodInventory
| where ServiceName == "xxxx"
| project PodRestartCount, TimeGenerated, ServiceName
| summarize AggregatedValue = count(PodRestartCount) by ServiceName, bin(TimeGenerated, 30m) 

但是在这种情况下将警报阈值设置为 2 将不起作用,因为 PodRestartCount 未重置。任何帮助将不胜感激。也许我缺少更好的方法。

最佳答案

要重置 BIN() 之间的计数,您可以在序列化输出上使用 prev() 函数来计算差异

KubePodInventory
| where ServiceName == "<service name>" 
| where Namespace == "<namespace name>"
| summarize AggregatedPodRestarts = sum(PodRestartCount) by bin(TimeGenerated, 30m) 
| serialize
| extend prevPodRestarts = prev(AggregatedPodRestarts,1)
| extend diff = AggregatedPodRestarts - prevPodRestarts
| where diff >= 2

这将为您输出 BIN 期间的正确差异。

TimeGenerated [UTC]         prevPodRestarts diff        AggregatedPodRestarts
5/12/2020, 12:00:00.000 AM  1,368,477       191,364     1,559,841   
5/11/2020, 11:00:00.000 PM  1,552,614       3,594       1,556,208   
5/11/2020, 10:00:00.000 PM  182,217         1,370,397   1,552,614

引用: https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/serializeoperator

https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/prevfunction

关于kubernetes - Azure Kubernetes 服务 (AKS) - Pod 重启警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61738519/

相关文章:

performance - Kubernetes NFS 挂载选项

azure - 如何在 Azure Log Analytics 时间表查询中重命名轴

azure - AKS 配置的 Container Insights 确实捕获排除的命名空间

kubernetes - 使用kubernetes fluentd-elasticsearch插件时如何自定义fluentd配置

kubernetes - dns-controller Kubernetes 部署尚未更新 Kubernetes 集群的 - AWS

java - 调用K8s集群上运行的docker容器内的特定java主类

Azure Kubernetes 服务扩展和 HPA

azure - Aks pods 环境变量 keyvault

python - 在 Kubernetes 集群中使用 Python 设置 Prometheus

c# - 在 C# 程序中存储查询的正确方法是什么?