问题描述
我们需要监控在 AWS MSK 集群中运行的 Kafka broker 的磁盘空间使用情况。
Kafka 发出了几个指标,可用于监控各个方面。但是我找不到任何监控每个代理的“磁盘使用情况”的特定指标。
虽然,这取决于消息和日志保留策略以及各种主题中新事件的发生率,但我们如何预测我们的代理是否会在接下来的 1 天内耗尽磁盘(或我们希望作为安全阈值的任何持续时间) ).
如果我们可以监控每分钟(或每小时)的事件负载和事件的平均大小,它可以帮助进行此计算。我指的是可用指标的 Apache Kafka 文档,但我也找不到。
avg(rate(kafka_server_brokerTopicmetrics_FifteenMinuterate{ name="BytesInPerSec"}[1h]))/avg(rate(kafka_server_brokerTopicmetrics_FifteenMinuterate{ name="BytesOutPerSec"}[1h]))
在 PQL 上尝试过。如果有人可以建议 ByteIn/ByteOut 的健康范围,则可以放心使用。
非常感谢所有指针。
解决方法
节点文件系统的可用指标可以直接使用。 Kafka 不会为此目的公开任何特定的指标。所以我重新使用了以下用于 eks 集群的指标:
node_filesystem_free_bytes / node_filesystem_size_bytes < 0.2
我们对 EKS 集群节点文件系统监控使用了类似的指标。这具有相同的目的,并提供了 MSK 集群中任何 kafka 代理上的可用磁盘空间的概念(只需在每个指标中添加过滤器)
,MSK 使用两种方式公开指标。
- CloudWatch - https://docs.aws.amazon.com/msk/latest/developerguide/metrics-details.html
- 普罗米修斯 - https://docs.aws.amazon.com/msk/latest/developerguide/open-monitoring.html
两者都支持您正在寻找的指标。