我正在试图找出如何最好地从库伯内特斯集群中运行的一组基于Spring引导的服务中收集指标。查看各种文档,内部监控的选择似乎是在执行器或旁观者之间,指标被推送到外部收集存储,如Redis或StatsD,或者在Prometheus的情况下被拉取。
由于给定服务的实例数量会有所不同,我看不出Prometheus如何配置为轮询这些正在运行的服务,因为它缺乏对它们的了解。我还围绕Eureka服务注册表构建,因此不确定是否在此配置中首先轮询。
对这种方法的任何现实世界的见解都是受欢迎的。
您应该使用Prometheusjava客户端(https://www.robustperception.io/instrumenting-java-with-prometheus/)进行检测。应避免使用redis和statsd等方法,因为它们意味着在每个事件上攻击网络-大大限制了您可以监控的内容。
在Prometheus中使用file_sd服务发现,为它提供来自Eureka(https://www.robustperception.io/using-json-file-service-discovery-with-prometheus/)的目标列表,尽管如果您使用库伯内特斯,您的标签提示Prometheus在那里有直接集成。