什么是promethues
promethues 是一个开源的报警系统和监控工具包;从2012年成立以来,许多公司和组织都采用promethues,并且这个项目有着很活跃的社区和开发者;现在他是一个开源项目,可以独立于任何公司进行维护;为了注重其独立性,并且澄清其治理结构,2016年promethes成为继 Kubernetes 之后,第二个加入 Cloud Native Computing Foundation 的托管项目。
特性
prometheues 主要有一下特性:
由metric名称和K/V键值对标识的时间序列的多维数据模型
简单的查询语言 PromQL
不依赖分布式存储,单个服务节点自动治理
通过HTTP的PULL模型获取数据的时序集合
支持通过网关push 时序数据
通过服务发现或者静态配置发现目标
支持多种图表和仪表盘模式
组件
promethues 的生态系统包含多种可选的组件:
- Prometheus server ,获取时序数据
- 应用代码使用的类库
- 支持短生命周期的 push-gateway
- 针对不同服务出的专用 exporters
- 支持报警的报警组件 alertmanager
- 其他支持的工具
架构
下图说明了promethues 和他的生态系统组件
promethus 直接从仪表jobs(例如: 获取内存的使用等) 获取metrics ; 或者通过push-gateway 获取short-live jobs 的 metrics;并对本地已生成的数据进行汇总,记录,运算 生成新的时间序列或者发生警报;Grafana或其他API可用于可视化收集数据;
什么时候适合用promethues
Prometheus 适用于记录纯粹的时间序列; 它适用于以机器为中心或者高度动态面向服务的架构,在微服务世界中,支持多维数据的查询和收集是其特殊的优势
什么时候不适合用promethues
promethues 重视可靠性,即使在故障情况下,你也可以随时查看关于系统的可用统计信息;如果你需要100% 的准确性,比如按照每一次请求计费,promethues 不是一个好的选择,因为搜集的数据可能不够详细或者完整,在这种情况下,你最好选择其他的监控系统完成计费信息的收集和分析,promethues用来监控系统的其他情况;