Prometheus vs. Graphite
范围
Graphite专注于成为具有查询语言和图形功能的被动时间序列数据库。 其他任何问题都可以通过外部组件解决。
Prometheus是一个完整的监视和趋势分析系统,其中包括基于时间序列数据的内置和主动抓取,存储,查询,制图和警报。 它了解世界应该是什么样(应该存在哪些端点,什么时间序列模式意味着麻烦等),并积极尝试查找错误。
数据模型
Graphite存储命名时间序列的数值样本,就像Prometheus一样。 但是,Prometheus的元数据模型更加丰富:虽然Graphite度量标准名称由点分隔的组件组成,这些组件隐式地维度进行编码,但是Prometheus显式地将维度编码为键值对(称为标签),附加到度量标准名称。 这允许通过查询语言通过这些标签轻松进行过滤,分组和匹配。
此外,尤其是当将Graphite与StatsD结合使用时,通常只在所有受监视实例上存储聚合数据,而不是将实例保留为一个维度并能够深入分析单个有问题的实例。
例如,通常使用Graphite/StatsD在响应中使用响应代码500和对/tracks端点的POST方法存储对API服务器的HTTP请求数:
stats.api-server.tracks.post.500 -> 93
在Prometheus中,可以像这样编码相同的数据(假设三个api服务器实例):
api_server_http_requests_total{method=