我正在寻找可以被监控的EKS集群的磁盘空间使用指标。我遇到了三种不同的公制警报:
1.
k8s-high-filesystem-usage:
name: "(k8s) High Filesystem Usage Detected"
type: metric alert
query: |
avg(last_10m):avg:kubernetes.filesystem.usage_pct{*} by {cluster_name} > 90
message: |
{{#is_warning}}
{{cluster_name.name}} filesystem usage greater than 80% for 10 minutes
{{/is_warning}}
{{#is_alert}}
{{cluster_name.name}} filesystem usage greater than 90% for 10 minutes
{{/is_alert}}k8s-high-disk-usage:
name: "(k8s) High Disk Usage Detected"
type: metric alert
query: |
min(last_5m):min:kubelet.volume.stats.used_bytes{*} by {cluster_name} / avg:kubernetes.kubelet.volume.stats.capacity_bytes{*} by {cluster_name} * 100 > 90
message: |
({{cluster_name.name}} High disk usage detectedk8s-high-disk-usage:
name: "(k8s) High Disk Usage Detected"
type: metric alert
query: |
min(last_5m):min:system.disk.used{*} by {host,cluster_name} / avg:system.disk.total{*} by {host,cluster_name} * 100 > 90
message: |
({{cluster_name.name}} High disk usage detected on {{host.name}}这三个指标意味着什么?我什么时候可以用这些?
发布于 2022-09-30 20:09:05
这是一个令人困惑的领域,而且没有得到很好的记录。我很高兴你问了这个问题。
首先,介绍一下每个度量的背景。
system.disk.used
这个度量是最直接的:在k8s主机上使用磁盘分区(以字节为单位)的磁盘空间。这是由Datadog代理收集的核心检查。在corechecks/system/disk/disk.go中查找此度量的源。检查将报告主机上每个卷的磁盘使用情况。
kubernetes.filesystem.usage_pct
此度量报告用于k8s集群中每个节点的磁盘空间。这些数据是从/stats/summary下的kubelet发布的指标中提取的。您可以使用kubectl直接查询数据。
kubectl get --raw /api/v1/nodes/<node name>/proxy/stats/summary可以通过跟踪集群协调器和库贝列特文件中的调用来找到代码。此指标还按pod、设备和其他可能有用的标记报告磁盘使用率。
kubernetes.kubelet.volume.stats.used_bytes
此度量报告关于pods持久性卷索赔的数据。您可以了解每个pvc所使用的字节数。此指标只适用于具有持久卷声明的荚。这也在簇/排码库中。
所以,考虑到这个背景,你什么时候会使用每一种度量?
使用system.disk.used在节点级别跟踪磁盘使用情况。如果要监视主机的磁盘使用情况,请查看此值。您应该监视device标记--您将最感兴趣的是物理磁盘分区和Docker卷。您可能会忽略shm和tmpfs卷(虚拟内存)。请注意,由于这是一个核心检查,因此对于安装了datadog代理的任何主机都报告了此度量,而不仅仅是k8s主机。
使用kubernetes.filesystem.usage_pct跟踪k8s主机的磁盘使用情况。使用cluster_name和host进行监视和使用max值可能是有意义的,例如将查询更新到:
avg(last_10m):max:kubernetes.filesystem.usage_pct{*} by {cluster_name,host}如果您想要使用荚级,也可以将pod_name添加到查询中。
最后,使用kubernetes.kubelet.volume.stats.used_bytes来监视持久卷声明的磁盘空间。您需要将persistentvolumeclaim标记添加到查询中,以便知道您正在查看的是哪个声明。
https://stackoverflow.com/questions/73905758
复制相似问题