虽然每个应用程序都不同,但是对应该返回多少指标有个大致的概念将会是有用的。
当开始在应用程序中集成prometheus监控代码时,经常会遇到个问题:这些指标和时间序列是否会太少或者太多?我将给出一些经验法则来帮助判断应用的指标量是否合适。
对于那些只有少量逻辑只做一件事的非常简单的应用程序,我预估使用100个时间序列。缓存是通常属于这一类别的系统的一个例子,而在普罗米修斯世界中,Pushgateway是另一个列子。除了您使用的客户端库和任何其他依赖项提供的各种指标之外,您通常只会添加少量指标。例如,Pushgateway有大约120个时间序列。
对于有大量组件的复杂应用,预估大约1000个时间序列是比较好的。例如,Prometheus服务器本身目前暴露大约700个时间序列(具体取决于您使用的版本和功能)。这是开箱即用的时间序列,以及为各种子系统添加的所有指标。
当一个应用程序暴露出更多指标,例如向10,000个时间序列靠近,这表明你可能有一个基数问题并且可能想要稍微减少标签。然而,对于诸如反向代理之类的情况,这种情况是不可避免的,其中有许多后端服务,或者数据库中有许多表并且您需要每个表的信息。要注意超过10000这种情况,Prometheus被设计用于抓取少量数据,而不是大量数据。
尽管如此,上述内容并不意味着您应该添加新指标以达到上述数字。这只是我个人对各种类型的服务暴露指标的合适数量的经验,因此,多一些或者少一些指标并不代表有问题。这是一个参考,而不是目标。
网友评论