介绍
1、组件
- exporters:用于暴露现有应用程序或服务
- prometheus:周期性的在exporter或application指标数据的采集,负责产生报警
- Alertmanager:负责从prometeus上接收报警信息再通过不同方式发送报警
- push gateway:接收短期作业主动推送过来的指标数据,并支持由prometeus拉取
2、形式
prometeus仅用于以“键值”形式存储时序式的聚合数据,不支持存储文本信息
- 其中农的“键”称为指标(metric),通常意味着cpu速率、内存使用率等
- 同意指标可能会适配到多个目标或设备,因而使用“标签”作为元数据,
- 标签可以通过过滤器进行筛选
3、单元
- 同类型的监控,比如mysql应用,nginx应用等,称为一个job
- 每个监控点称为instance
4、图形
counter: 监控单调递增型数据,不能为负,可置0,如访问数alert.test.com
gauge:监控百分比数据,如cpu使用率等
histogram:监控内容的平均值,方差等
summary:histogram的升级版
PromQL
1、 瞬时向量:包含改时间序列中最新的一个样本值
- 例:搜索语句加上
-
offset 1h:1小时前的瞬时值
2、区间向量:一段时间范围内的数据
- 例:在瞬时向量搜索语句后面加上
-
[5m]:5分钟内
-
offset 30m:30分钟前的
1)标签匹配符号
符号 | 含义 |
---|---|
= | 属于绝对比配 |
=~ | 支持正则匹配 |
!= | 不包含搜索内容,绝对匹配 |
!~ | 不包含搜索内容,支持正则 |
prometheus_http_request_duration_seconds_count{handler="/api/v1/targets"}
prometheus_http_request_duration_seconds_count{handler=~"/api.*"}
prometheus_http_request_duration_seconds_count{handler=~"/graph|/metrics"}
2)数据运算符号
符号 | 含义 |
---|---|
+、-、*、/ | 加减乘除 |
or | 或 |
and | 和 |
unless | 非 |
sum | 求和 |
min/max | 最小、最大 |
avg | 平均值 |
count | 计数 |
irate | 变化速率 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
node_memory_Active_bytes/1024/1024/1024
node_memory_Active_bytes/1024/1024/1024 < 1
sum(node_cpu_seconds_total{ instance="192.168.112.51:9100",job="new_node"})
# 统计该实例 系统cpu5分钟内的变化速率平均值
avg(irate(node_cpu_seconds_total{ instance="192.168.112.51:9100",job="new_node"}[5m]))
# 统计该实例cpu数量
count(node_cpu_seconds_total{ instance="192.168.112.51:9100", job="new_node",mode="system"})
prometheus_http_requests_total > 15 and prometheus_http_requests_total < 100