pushgateway 使用
Pushgateway 的 job 和 instance 含义
1. job
- 作用:代表一类任务、服务或应用的名称。
- 类似于:Prometheus 抓取配置中的
job_name,用来区分不同的采集来源。 - 举例:
job=lock_alarm:表示这是“门锁告警”这类任务的指标。job=payment_service:表示这是支付服务相关的指标。
- 特点:
- 是必须的标识,Pushgateway 用它来归类指标数据。
- 一个 job 下可以包含多个 instance。
2. instance
- 作用:标识某个 job 下的具体实例或者来源。
- 类似于:代表具体的服务节点、主机或设备。
- 举例:
instance=lock-123:可能表示编号为 lock-123 的具体门锁设备。instance=server-01:表示服务的某个具体运行节点。
- 特点:
- 不是强制必须的,但强烈建议加上,方便区分同一 job 下不同来源的指标。
- 通过
instance可以实现更细粒度的指标区分和管理。
推送消息
curl -X POST http://192.168.0.10:9091/metrics/job/lock_alarm/instance/lock-123 -H "Content-Type: text/plain" --data-binary $'lock_open_alarm{lock_id="lock-123",org="factory-a"} 1\n'
删除消息
curl -X DELETE http://192.168.0.10:9091/metrics/job/lock_alarm/instance/lock-123
实践
需求: 统计每个门开门记录,如果3天没有开门记录就产生告警
推送cmd
将每个门的最近开门记录推送上去
curl -X POST http://192.168.0.10:9091/metrics/job/lock_alarm/instance/lock-123 ^
-H "Content-Type: text/plain" ^
--data-binary $'lock_last_open_timestamp{lock_id="lock-123",org="factory-a"} 1691913600\n'
普罗米修斯告警配置
groups:
- name: lock_alarm_rules
rules:
- alert: LockNotOpened3Days
expr: time() - lock_last_open_timestamp > 259200
for: 5m
labels:
severity: critical
annotations:
summary: "门 {{ $labels.lock_id }} 超过3天未开门"
description: "门 {{ $labels.lock_id }} 在 {{ $labels.org }} 超过3天未开门"

浙公网安备 33010602011771号