:如何把任意脚本变成监控探针)
Cloudprober 外部探针External Probe如何把任意脚本变成监控探针【免费下载链接】cloudproberAn active monitoring software to detect failures before your customers do.项目地址: https://gitcode.com/gh_mirrors/clo/cloudproberCloudprober 外部探针External Probe是 Cloudprober 中最灵活的一种探针类型它允许你把任意脚本、命令行程序甚至编译好的二进制文件直接变成监控探针无需修改 Cloudprober 源码。无论是检查 Redis 读写延迟、验证复杂的业务 API还是复用你已有的运维脚本外部探针都能在几分钟内帮你实现主动监控、故障早发现。为什么你需要一个外部探针Cloudprober 内置了 HTTP、Ping、DNS、TCP 等探针但它们只能覆盖标准协议。真实世界往往更复杂你的检查需要多步骤业务逻辑登录 → 下单 → 查库存你希望监控特定服务的自定义指标如 Redis 的 set/get 延迟你已有大量成熟的监控脚本不想推倒重来。这时外部探针就是你的万能钥匙。它的核心思想非常简单用外部程序的退出码判断成功与否用运行耗时统计延迟而程序打印到标准输出stdout的每一行都会被解析成一条新指标。外部探针的工作原理一条命令就是一个探针外部探针默认工作在ONCE 模式每个探测周期Cloudprober 都会启动一次你的外部程序等待它退出然后记录成功/失败与耗时。以官方示例的 Redis 探针为例源码见 examples/external/redis_probe.go它向本机 Redis 写入一个 key 再读出来并把两次操作耗时打印到 stdoutop_latency_ms{opset} 0.636 op_latency_ms{opget} 0.994Cloudprober 会自动把这些行变成op_latency_ms{opset}、op_latency_ms{opget}两条可观测指标。想要记录日志用 stderr 即可不会干扰指标解析。一键配置把脚本变成监控探针的完整步骤首先克隆项目并进入示例目录git clone https://gitcode.com/gh_mirrors/clo/cloudprober cd cloudprober/examples/external然后写一个极简配置文件 cloudprober.cfgprobe { name: redis_probe type: EXTERNAL targets { dummy_targets {} } external_probe { mode: ONCE command: ./redis_probe } }启动 Cloudprobercloudprober --config_filecloudprober.cfg打开http://localhost:9313/metrics你就能看到 Prometheus 格式的探针指标了。整个流程不需要写一行 Cloudprober 代码这就是外部探针最大的魅力。进阶技巧一把目标信息传给脚本面对多个目标时外部探针支持label占位符自动把目标信息注入命令行例如external_probe { command: ./my_check -hostaddress -portport }支持的占位符包括target、address、port、probe以及形如target.label.fqdn的目标标签。这样一份探针配置就能批量监控成百上千个目标。进阶技巧二用直方图统计延迟分布只看到平均延迟远远不够尾延迟Tail Latency才是用户体验的真相。在配置中开启聚合并定义分桶即可output_metrics_options { aggregate_in_cloudprober: true dist_metric { key: op_latency_ms value: { explicit_buckets: 0.1,0.2,0.4,0.6,0.8,1.0,2.0 } } }配置后Cloudprober 会为op_latency_ms构建累积分布你在 Grafana 中可以直接画出 P50、P99 延迟曲线快速定位偶发超时的根源。进阶技巧三Server 模式告别频繁 fork如果你的探针程序很大比如 Java 二进制每次探测都重新 fork 一个进程开销巨大如果你想跨探测周期保持状态如复用 HTTP/2 连接ONCE 模式也无能为力。这时请使用Server 模式外部程序常驻后台通过 stdin/stdout 与 Cloudprober 用 protobuf 消息通信协议定义见 probes/external/proto/config.proto。官方提供的serverutils包见 probes/external/serverutils/serverutils.go让 Go 开发者几分钟就能把探针改造成守护进程而且进程意外退出时 Cloudprober 会自动重启它可靠性拉满。总结什么时候该用外部探针场景推荐做法标准协议检查HTTP/Ping/DNS使用内置探针性能更好复杂业务逻辑 / 复用现有脚本外部探针 ONCE 模式快速接入高频探测 / 需要保持状态外部探针 Server 模式避免频繁启动开销外部探针把监控能力的边界彻底打开只要你能写脚本就能把它变成 Cloudprober 的监控探针。完整的官方说明与更多示例可以参考文档 docs/content/docs/how-to/external-probe/index.md 以及examples/external/目录下的多个配置样例动手试一试你的第一支外部探针很快就能跑起来【免费下载链接】cloudproberAn active monitoring software to detect failures before your customers do.项目地址: https://gitcode.com/gh_mirrors/clo/cloudprober创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考