如何用Prometheus监控curl调用Zendesk API的bash命令执行结果
方案适配性评估
1. 容器内监控命令输出方案(侧车/独立Deployment部署)
该方案完全适配你的需求,是符合Prometheus生态设计的最优选择之一,实现逻辑如下:
- 可以将执行监控命令的脚本封装为独立容器,作为Sidecar和客服系统Pod部署在一起,也可以单独启一个Kubernetes Deployment运行该脚本,不需要和业务逻辑耦合
- 脚本定时执行你的原有查询命令:
curl -s "https://status.zendesk.com/api/components/support?domain=xyz.zendesk.com" | jq '.active_incidents | length',将返回的结果转换为Prometheus兼容的指标格式,暴露/metrics端口给Prometheus主动拉取即可 - 正常状态下指标
zendesk_active_incidents值为0,存在活跃事件时指标值等于事件数量,直接基于该指标配置告警规则即可
2. Pushgateway方案
该方案可以实现需求,但属于非最优选型,性价比偏低:
- Pushgateway原生设计是为了承接短时运行Job的指标上报,你的场景是持续性的定期监控任务,使用Pushgateway会额外引入组件运维成本,还需要处理指标过期、Pushgateway单点故障等额外问题
- 除非你司已经有成熟的Pushgateway运维体系,否则不推荐选择该方案
补充实现参考
如果不想自行开发脚本,也可以直接用官方的Blackbox Exporter配置HTTP探针,通过Prometheus的metric_relabel_configs直接解析接口返回的JSON内容,提取活跃事件数量作为指标,无需额外写代码。
内容的提问来源于stack exchange,提问作者vjwilson
相关产品推荐
相关产品推荐

