Prometheus自定义导出器是业务监控逻辑的具象化表达,需明确指标类型(Gauge/Counter/Histogram)、解耦数据源、配套告警与可视化,并按部署场景选择Pushgateway/federation等适配方案。
Prometheus 自定义导出器(Exporter)不是“加功能”的插件,而是你业务监控逻辑的具象化表达。它不依赖目标系统是否原生支持指标暴露,关键在于:你能否把想看的数据,以 Prometheus 能理解的方式,通过 HTTP /metrics 端点稳定地提供出来。
业务场景不同,指标语义就不同,选错类型会导致查询和告警失效:
例如监控一个批处理队列积压量,用 Gauge;统计每分钟失败重试次数,用 Counter;记录每次数据库查询耗时,用 Histogram。
导出器本身应轻量、专注暴露,不承担复杂采集逻辑:
file_pending{dir="/data/in", type="xml"},而非硬编码多个指标名这样既便于调试(单独 curl 查看 /metrics),也利于横向扩展——同一份导出器代码,换配置就能监控不同环境。
导出器上线只是第一步,必须配套规则才能产生价值:
ALERT PendingTasksHigh<br> IF app_pending_tasks > 100<br> FOR 2m<br> LABELS { severity = "warning" }<br> ANNOTATIONS { summary = "待处理任务超阈值" }
app_pending_tasks 或聚合计算变化率:rate(app_pending_tasks[1h])
job="order-exporter"、env="prod",方便按环境、角色聚合筛选指标有了、告警写了、图表画了,才算真正把业务逻辑纳入监控体系。
有些业务运行在临时容器、离线设备或内网环境中,无法被 Prometheus 主动拉取:
这些不是“备选方案”,而是根据部署形态自然选择的技术路径。