prometheus监控系统介绍
监控系统是整个运维环节,乃至整个产品周期中最重要的一环,是整个IT甚至整个公司的眼睛,事前及时预警,事后提供详细数据。
1.稳定,并且与被监控系统解耦
2.及时提供准确以及高质量的告警
3.易横向,纵向扩展,分散压力
4.及时数据采集,高效图标展示,满足用户的使用效率,并且易用
5.能够提供统一的标准的API接口,可以二次开发
开源监控系统,在记录纯数字时间序列方面表现非常好。它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。
是一系列以时间序列为顺序的数据
http_requests_total{job=“prometheus”,instance=“10.25.175.109:9090”,code=“200”,method=“post”}117376
•轻量,灵活,快速部署(divide);
•时序型数据库;
架构图
持久化
表达式类型
Ø即时向量(Instantvector)
包含每个时间序列的单个样本的一组时间序列,共享相同的时间戳
Ø范围向量(Rangevector)
包含每个时间序列随时间变化的数据点的一组时间序列
Ø标量(Scalar)
一个简单的数字浮点值
Ø字符串(String)
一个简单的字符串值
功能表达式
Ø即时向量选择器
http_requests_total{environment=~"fat|uat|prd",method!="GET"}
Ø范围向量选择器
http_requests_total{job="prometheus"}[5m]
Ø偏移修饰符
http_requests_total offset5m
Ø聚合函数
sum(container_memory_usage_bytes{name=~"^consul"})
二次开发
丰富的客户端
•Java,Scala,Python,Go等
机器学习的引入
•智能化告警
自定义服务
•根据不同场景,不同需求自定义监控