本文内容为书籍《Prometheus监控实战》的读书笔记,书籍链接Prometheus监控实战 (豆瓣)
一 监控简介
1 监控的两个客户:
- 技术 了解技术状况,诊断技术问题
- 业务 支撑业务持续发展
2 监控是管理基础设施和业务的核心工具
- 全局视角,从最高层(业务)依次展开。
- 协助故障诊断。
- 作为基础设施、应用程序开发和业务人员的信息源。
- 内置于应用程序设计、开发和部署的生命周期中。
- 尽可能自动化,并提供自服务
3 监控方式
- 探针/黑盒:在应用程序的外部,它查询应用程序的外部特征:监听端口是否有响应并返回正确的数据或状态码。探针监控的一个例子是执行ICMP检查并确认可以收到响应。
- 内省/白盒:主要查看应用程序内部的内容。应用程序经过检测,并返回其状态、内部组件,或者事务和事件性能的度量
4 监控执行方式
- 拉取(pull)提取或检查远程应用程序——例如包含指标的端点,或是探针监控中使用ICMP进行的检查。
- 推送(push)应用程序发送事件给监控系统接收
Prometheus主要是一个基于拉取的系统,但它也支持接收推送到网关的事件
5 监控数据类型
- 指标:依赖指标来帮助了解系统的情况。指标存储为时间序列数据,用于记录应用程序度量的状态。
- 日志:日志是从应用程序发出的(通常是文本的)事件。同样用于故障的诊断。
6 指标
Prometheus中指标变成了监控工作流程中最重要的部分。颠覆了以故障检测为中心的模型。通过异常检测和模式分析,指标有可能在故障发生之前就有所察觉。
指标是软件或硬件组件属性的度量。为了使指标有价值,通常记录一段时间内的数据点。这些数据点称为观察点(observation),观察点通常包括值、时间戳,有时也涵盖描述观察点的一系列属性(如源或标签)。观察的集合称为时间序列。
通常以固定的时间间隔收集数据,该时间间隔被称为颗粒度(granularity)或分辨率
(resolution)
7 指标类型
测量型(gauge): 上下增减的数字,如CPU使用率
计数型(counter):随时间增加不会减少,如系统运行时间,收发包字节数,优势是可以计算变化率
直方图(histogram):是对观察点进行