gpt4 book ai didi

azure-aks - 如何在 AKS 中查询每个容器的 CPU 和内存使用情况?

转载 作者:行者123 更新时间:2023-12-04 14:08:40 29 4
gpt4 key购买 nike

AKS Insights
因此,我可以在 AKS 的见解选项卡中清楚地看到每个容器的统计信息。这些必须来自某个地方,但我只能在查询日志/指标时找到每个节点的统计信息。我如何查询这个(为了构建一个工作簿)。

最佳答案

该数据位于 LogManagement 部分的 Perf 表中:
screenshot of log analytics query showing raw performance data
How to query logs from Azure Monitor for containers 上的文档页面您可以从以下示例查询开始:
screenshot of documentation page showing sample query
查询这些数据需要一些解析,因为 Computer字段始终显示从中收集数据的节点的名称,而不是 pod。为了获得特定于 pod/container 的数据,您必须使用 ObjectName == 'K8SContainer' 查看记录。并解析 InstanceName字段,其中包含您需要的数据。 InstanceName 是这样构建的:/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.ContainerService/managedClusters/CLUSTERNAME/PODUID/CONTAINERNAME .鉴于这些数据,我们可以解析出 PodUid并加入 KubePodInventory 以获取该 Pod 的识别信息.
这是一个示例查询:

Perf
| where ObjectName == 'K8SContainer' and TimeGenerated > ago(1m)
| extend PodUid = tostring(split(InstanceName, '/', 9)[0]), Container = tostring(split(InstanceName, '/', 10)[0])
| join kind=leftouter (KubePodInventory | summarize arg_max(TimeGenerated, *) by PodUid) on PodUid
| project TimeGenerated, ClusterName, Namespace, Pod = Name, Container, PodIp, Node = Computer, CounterName, CounterValue
此查询产生如下结果,其中应包含您需要的数据:
performance query results table
作为旁注 - Computer字段始终显示节点名称,因为这是 OMS 代理运行的地方。它在节点级别收集统计信息,但这些统计信息包括每个 cgroup 的内存和 CPU 使用率。 ,这是一般容器背后的支持 CPU/内存隔离和限制技术,就像命名空间如何用于分离网络、文件系统和进程 ID 一样。

关于azure-aks - 如何在 AKS 中查询每个容器的 CPU 和内存使用情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66294242/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com