prometheus
一、Prometheus 定义
1、简介:
Prometheus是最初在SoundCiloud上构建的开源系统监视和警报工具包 。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。现在,它是一个独立的开源项目,并且独立于任何公司进行维护。为了强调这一点并阐明项目的治理结构,Prometheus在2016年加入了 Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。Prometheus 在开源社区也十分活跃,在GitHub上拥有两万多star,并且每隔一两周就会有一个小版本的更新。
2、 特征:
普罗米修斯的主要特点是:
- 一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据;
- PromQL,一种灵活的查询语言 ,可利用此维度 ;
- 不依赖分布式存储;单服务器节点是自治的;
- 时间序列收集通过HTTP上的拉模型进行;
- 通过中间网关支持推送时间序列;
- 通过服务发现或静态配置发现目标;
- 多种图形和仪表板支持模式;
- 易于维护,可以通过二进制文件直接启动,并且提供了容器化部署镜像;
- 支持数据的分区采样和联邦部署,支持大规模集群监控;
3、 组件:
Prometheus生态系统包含多个组件,其中许多是可选的:
- Prometheus主服务器,它会刮取并存储时间序列数据
- 客户端库,用于检测应用程序代码
- 一个支持短期工作的推送网关
- 诸如HAProxy,StatsD,Graphite等服务的专用出口商
- 一个alertmanager处理警报
- 各种支持工具
4、 架构:
Prometheus 的基本原则是通过HTTP周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口并且符合Prometheus 定义的数据格式,就可以接入Prometheus 监控;
Prometheus 整体架构图