Monitoring with Prometheus读书笔记
原书见:
https://www.safaribooksonline.com/library/view/monitoring-with-prometheus/9780988820289/
监控需要监控技术环境和监控业务情况
监控基本原则
监控需要在开发业务前就进行考虑,结合业务情况和环境,考虑要监控的metric.
监控设计要从业务逻辑出发 再下沉到应用的监控和操作系统的监控
但这不是说通用的系统监控不需要 只是他们不能用来汇报业务价值
监控服务的正确性 例如不是单单看health接口是否返回了200 而要确认里面的值
不要只使用静态的阈值 阈值应该是根据窗口数据等方式计算获取
保存足够多的历史监控数据(用于之后的分析)
监控需要容易被设置/部署 需要自动化支持
监控机制
Probe :应用外
Introspection:应用内
推
拉
普罗米修斯基本上是基于pull的 但也有push的方式
监控数据的类型
Metrics:时间序列数据 记录应用的度量的状态
Logs:应用程序发出的文件事件 通常情况更有用 但这本书不怎么讲 https://www.logstashbook.com/
Metrics
metrics提供了动态的,实时的基础设施状态,帮助你管理环境和给做更好的决定.
Metrics are measures of properties of components of software or hardware
固定时间间隙收集 -> 颗粒性或者分辨率
Metrics类型
guage
counter
累计数据
Histograms
统计数据
其他统计字段:
Counter
Sum
Average
Median
Percentiles
Standard deviation
Rates of change
平均数的陷阱:
监控方法论
USE方法
For every resource, check utilization, saturation, and errors
对于每个资源 检查利用率 饱和度和错误
http://www.brendangregg.com/USEmethod/use-linux.html
Google Four golden signals
Latency
Traffic
Errors
Saturation
上下文相关 有用的警报和通知
Alert和notification是监控的主要输出
- 通知是需要可以指导行动 明确清晰的.
- 在通知上增加上下文信息.
- 只发送有意义的通知.
可视化
- 清晰地展示数据
- 引导观察者思考背后的实质 而不是专注于视觉效果
- 避免歪曲数据
- 清晰地展示大数据集
- 允许改变视图的粒度而不影响理解