Cloudprober 指标导出(Surfacers)完整指南:Prometheus、OpenTelemetry 与更多后端

📅 发布时间:2026/8/21 14:15:17
Cloudprober 指标导出(Surfacers)完整指南:Prometheus、OpenTelemetry 与更多后端
Cloudprober 指标导出Surfacers完整指南Prometheus、OpenTelemetry 与更多后端【免费下载链接】cloudproberAn active monitoring software to detect failures before your customers do.项目地址: https://gitcode.com/gh_mirrors/clo/cloudproberCloudprober 指标导出Surfacers是这套主动监控工具最强大的能力之一它能通过一份简单的配置把探针产生的指标同时推送到多个监控后端从 Prometheus 到 OpenTelemetry、AWS CloudWatch、Google Cloud Monitoring甚至 PostgreSQL 和 BigQuery。无论你是刚开始接触主动监控的新手还是正在规划统一可观测性平台的老手这篇文章都会带你一步步搞懂 Cloudprober 指标导出的完整原理与配置方法。什么是 SurfacerCloudprober 指标导出的核心机制在 Cloudprober 中Surfacer指标导出器是负责把探针指标写到外部监控系统的组件。它的定位很像指标后端适配器每种 Surfacer 类型实现对应监控系统的写入接口例如 CloudWatch Surfacer 负责把数据发布到 AWSStackdriver Surfacer 负责发布到 Google Cloud Monitoring。你可以在同一份配置里同时启用多个 Surfacer让指标一鱼多吃如果什么都不配Cloudprober 会自动启用Prometheus和File两个默认 Surfacer其中 Prometheus 在:9313/metrics端口提供标准抓取端点File 则把指标以行格式写到标准输出。目前支持的后端一览Surfacer 类型目标后端说明Prometheus自建 Prometheus / Grafana默认启用提供/metrics抓取端点OpenTelemetry (OTEL)OTLP 兼容的可观测性平台v0.13.2 起新增StackdriverGoogle Cloud MonitoringGCP 上零配置可用CloudWatchAWS 云监控走 AWS 默认凭证链Pub/SubGoogle Pub/Sub 消息队列适合事件流下游PostgresPostgreSQL 数据库直接把指标落库File本地文件 / stdout默认启用适合调试快速上手5 分钟配置 Prometheus 指标导出Prometheus 是 Cloudprober 指标导出最常用的后端也是新手入门的第一站。如果你没有配置任何 Surfacer直接访问http://localhost:9313/metrics就能看到类似下面的输出total{probecloudprober_website,dstcloudprober.org} 120 success{probecloudprober_website,dstcloudprober.org} 120 latency{probecloudprober_website,dstcloudprober.org} 2489734一键添加 Prometheus Surfacer在配置文件中加入以下片段即可显式启用 Prometheus 指标导出并给指标加上cloudprober_前缀surfacer { type: PROMETHEUS prometheus_surfacer { metrics_prefix: cloudprober_ } }把 Cloudprober 加入 Prometheus 抓取任务在 Prometheus 的prometheus.yml中把 Cloudprober 注册为抓取目标最简单的方法如下scrape_configs: - job_name: cloudprober static_configs: - targets: [localhost:9313]之后就能在 Grafana 里用 PromQL 计算成功率与平均延迟success_ratio rate(success[5m]) / rate(total[5m]) avg_latency rate(latency[5m]) / rate(success[5m])一次配置、多端同步同时导出到多个后端Cloudprober 指标导出的杀手锏是能在同一份配置里叠加多个 Surfacer。例如同时启用 Prometheus 与 Stackdriver# 供 Prometheus 抓取 surfacer { type: PROMETHEUS prometheus_surfacer { metrics_prefix: cloudprober_ } } # 推送到 Google Cloud MonitoringGCP 上运行无需额外配置 surfacer { type: STACKDRIVER }运行在 GCP 之外时只需在 Stackdriver Surfacer 中指定 GCP 项目并配置好应用默认凭证即可。默认情况下Stackdriver 指标会以custom.googleapis.com/cloudprober/探针类型/探针名为前缀导出例如custom.googleapis.com/cloudprober/http/google_com/total custom.googleapis.com/cloudprober/http/google_com/success custom.googleapis.com/cloudprober/http/google_com/latency配置 AWS CloudWatch 指标导出认证与命名空间对于 AWS 用户Cloudprober 原生支持把指标发布到 CloudWatch。它使用 AWS Go SDK 的默认凭证链环境变量 → 共享凭证文件 → ECS/EC2 IAM 角色权限上只需要cloudwatch:PutMetricData并对cloudprober命名空间放行。surfacer { type: CLOUDWATCH cloudwatch_surfacer { namespace: /cloudprober/website/probes } }由于 Cloudprober 导出的是累积型计数器在 CloudWatch 中可以用 Metric Maths 的RATE(m1) * PERIOD(m1)得到区间增量值。拥抱 OpenTelemetry面向未来的可观测性标准如果你正在向 OpenTelemetry 标准迁移Cloudprober 在 v0.13.2 起新增了 OTEL Surfacer可以直接把探针指标通过 OTLP 协议推送到兼容的后端如 Grafana Tempo、Jaeger 生态或其他 OTLP Collector。这让 Cloudprober 指标导出能无缝融入你现有的 OpenTelemetry 管道无需额外转换层。指标过滤只导出你真正需要的监控数据按标签过滤可以大幅节省云厂商的指标费用。例如忽略所有系统变量指标surfacer { type: PROMETHEUS ignore_metrics_with_label { key: probe value: sysvars } }只保留 HTTP 探针的指标surfacer { type: PROMETHEUS allow_metrics_with_label { key: ptype value: http } }按指标名过滤则使用ignore_metrics_with_name或allow_metrics_with_name例如过滤掉所有validation_failure指标surfacer { type: PROMETHEUS ignore_metrics_with_name: validation_failure }小贴士ignore_*的优先级高于allow_*两者同时存在时以忽略规则为准。指标改造让数据更贴合你的监控需求除了过滤Surfacer 还支持在导出前修改指标add_failure_metric额外导出失败次数failure计数目前除 FILE 和 PUBSUB 外默认已开启。export_as_gauge把累积型指标改为瞬时型Gauge计算平均值更直观例如直接用latency / success求平均延迟但会丢失历史累积信息。surfacer { type: ... export_as_gauge: true }想自定义后端实现一个 Surfacer 接口即可如果你有自研监控系统扩展 Cloudprober 指标导出也很简单任何新的 Surfacer 只需实现Surfacer接口——一个接收metrics.EventMetrics的Write()方法然后通过New()注册即可完全不需要理解 Cloudprober 内部机制。相关代码可参考 surfacers/surfacers.go 中的接口定义。官方资料导航完整的 Surfacer 说明文档docs/content/docs/surfacers/overview.mdStackdriverGoogle Cloud导出细节docs/content/docs/surfacers/stackdriver.mdCloudWatchAWS导出细节docs/content/docs/surfacers/cloudwatch.md指标与 Surfacer 常见问题docs/content/docs/faq/metrics-and-surfacers.mdSurfacer 配置选项源码surfacers/options/options.go指标变换过滤/前缀实现surfacers/surfacers.go总结把 Cloudprober 指标导出接入你的监控体系从零配置的 Prometheus 抓取端点到同时推送 OpenTelemetry、CloudWatch、Stackdriver 等多个后端Cloudprober 指标导出Surfacers让探针采集 多端分发变得前所未有地简单。你可以先用默认的 Prometheus 与 File Surfacer 快速验证探针效果再按需叠加云端后端并通过标签/指标名过滤控制成本。现在就动手配置一个 Surfacer让你的监控数据流起来吧【免费下载链接】cloudproberAn active monitoring software to detect failures before your customers do.项目地址: https://gitcode.com/gh_mirrors/clo/cloudprober创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考