中文文档:https://songjiayang.gitbooks.io/prometheus/content/introduction/
端口:9090
监控模式:
pull 主动拉取的形式 --->exporters,通过各种exporters组件
push被动推送的形式 --> pushgateway
metrics:
gauges: 瞬时状态,随机变化
例如:衡量一个待处理队列中任务的个数
磁盘的容量或内存的使用量
counters:计数器
histograms:比例型
统计数据分布情况:最小值,最大值,中间值,中位数
cpu使用率
(1- (sum(increase(node_cpu{mode="idle"}[1m])) /sum(increase(node_cpu{}[1m])))) * 100
prometheus安装
容器安装:
docker run -d --name prom -p 9090:9090 -v /opt/srv/prom/etc/:/etc/prometheus -v /opt/srv/prom/promdata:/prometheus prom/prometheus --storage.tsdb.retention.time=365d --web.enable-lifecycle --web.external-url=http://xxx:9090 --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus
alermanager安装
docker run -d --name alert -p 9093:9093 -v /opt/srv/prom/etc/:/etc/alertmanager -v /opt/srv/prom/alertdata:/prometheus prom/alertmanager
grafana安装
docker run -d --name grafana -p 80:3000 -v /opt/srv/grafana/etc:/etc/grafana -v /opt/srv/grafana/data:/var/lib/grafana -v /opt/srv/grafana/log:/var/log/grafana -v /opt/srv/grafana/plugins:/var/lib/grafana/plugins grafana/grafana
动态加载配置
curl -XPOST http://xx:9093/-/reload
curl -XPOST http://xx:9090/-/reload
hot reload 功能是默认关闭的,如需开启,需要在启动 Prometheus 的时候,添加 --web.enable-lifecycle
参数。
prometheus常见配置
PromQL
常用的函数
rate() 函数
计算范围向量中时间序列的每秒平均增长率
专门搭配counter类型使用的函数,取counter这个时间段中的平均每秒中的增量
irate(http_requests_total{job="api-server"}[5m])
irate()
计算范围向量中时间序列的每秒即时增长率
irate(http_requests_total{job="api-server"}[5m])
increase() 计算范围向量中时间序列的增加。
取一段时间增量的总量
示例:increase(http_requests_total{job="api-server"}[5m])
聚合运算
sum()
min()
max()
avg()
by()
topk() 支持 gauge, counter类型
count())
altermanager告警
级别:
warning
critical
告警策略: