Cloudflare 可观测性平台八项更新:从日志、追踪到统一查询与遥测导出

2026-10-02 34 预计阅读时间: 1 分钟
来源: blog.cloudflare.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:10 分钟

Cloudflare 正在把日志、分布式追踪、分析、告警、仪表盘、查询和遥测导出收拢到同一个可观测性平台,并尝试用更简单、可预测的方式计费。真正值得关注的并不是菜单里多了几个入口,而是故障排查链路可能从“跨多个系统拼证据”变成“围绕一次请求连续下钻”。

来源摘要没有列出八项更新各自的产品名称、API 参数或可用区域,因此下面重点分析这些能力组合后会怎样影响工程实践;配置示例采用标准 OpenTelemetry 组件,接入时需要根据 Cloudflare 最新文档替换端点和认证信息。

八项变化可以看成一条完整的排障链路

按摘要中的能力划分,这轮更新覆盖了八个相互关联的方向:

方向 解决的问题 团队应关注的指标
日志 查看请求、边缘服务和应用产生的离散事件 每日摄入量、保留期、索引成本
追踪 还原请求跨服务、跨网络节点的调用路径 采样率、Trace ID 贯通率、尾延迟
分析 从聚合数据中识别流量、错误和性能趋势 聚合维度、数据延迟、基数限制
告警 在用户集中报障前发现异常 误报率、通知延迟、告警归属人
仪表盘 让运维、开发和安全团队共享同一视图 模板复用、权限、刷新频率
查询 对日志、追踪和分析数据进行交互式调查 查询时延、扫描量、字段一致性
遥测导出 将数据送往现有 SIEM、数据湖或其他观测后端 开放格式、出口成本、重试机制
平台与计费简化 降低多套工具带来的预算和管理复杂度 单位成本、预算上限、超额行为

这些能力的组合比单项功能更重要。例如,告警发现某个接口的 P99 延迟升高后,值班人员应当能够进入对应仪表盘,按区域或状态码切分,再打开相关 Trace,最后用 Trace ID 查询日志。若每一步都需要切换平台、转换时间范围或手工复制字段,平均修复时间仍然不会明显下降。

统一平台的关键是上下文,而不只是数据集中存放

日志、追踪和分析数据放在同一个供应商处,并不自动等于统一可观测性。团队还需要统一上下文字段,至少包括:

  • service.name:服务名称,避免同一个服务出现多种拼写。
  • deployment.environment:区分生产、预发布和开发环境。
  • service.version:把异常与具体发布版本关联起来。
  • trace_id 与 span_id:让日志能够跳转到追踪数据。
  • cloud.region 或等价区域字段:识别区域性故障。
  • HTTP 路由模板:使用 /users/{id},不要把真实用户 ID 当成指标标签。

最后一点尤其重要。把用户 ID、订单号或完整 URL 放入指标标签,会制造高基数数据,既拖慢查询,也可能迅速放大费用。敏感字段还会带来隐私和合规风险。统一平台减少了工具数量,但不会替团队自动完成数据治理。

可以这样实践:用 OpenTelemetry Collector 做可回退的接入层

如果现有系统已经使用 OpenTelemetry,可以先让应用把遥测数据发送到本地 Collector,再由 Collector 转发到目标平台。这样做的好处是应用代码不必直接绑定某个后端,还可以在迁移期同时保留旧平台。

下面是一个可直接改造的 otel-collector.yaml。假设目标平台提供兼容 OTLP/HTTP 的遥测入口;实际地址、请求头和信号支持范围需要以当前 Cloudflare 文档为准。

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

processors:
  memory_limiter:
    check_interval: 1s
    limit_mib: 256
  batch:
    timeout: 5s
    send_batch_size: 512
  resource:
    attributes:
      - key: deployment.environment
        value: production
        action: upsert

exporters:
  debug:
    verbosity: basic
  otlphttp/cloudflare:
    endpoint: ${env:CF_OTLP_ENDPOINT}
    headers:
      Authorization: Bearer ${env:CF_OTLP_TOKEN}
    compression: gzip
    timeout: 10s
    retry_on_failure:
      enabled: true
      initial_interval: 1s
      max_interval: 30s
      max_elapsed_time: 300s

service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter, resource, batch]
      exporters: [debug, otlphttp/cloudflare]
    metrics:
      receivers: [otlp]
      processors: [memory_limiter, resource, batch]
      exporters: [debug, otlphttp/cloudflare]
    logs:
      receivers: [otlp]
      processors: [memory_limiter, resource, batch]
      exporters: [debug, otlphttp/cloudflare]

保存文件后,可以用容器启动 Collector。运行前请替换两个环境变量;如果目标入口分别提供 traces、metrics 和 logs 端点,则应拆成多个 exporter。

export CF_OTLP_ENDPOINT='https://REPLACE-WITH-YOUR-OTLP-ENDPOINT'
export CF_OTLP_TOKEN='REPLACE-WITH-YOUR-TOKEN'

docker run --rm \
  -p 4317:4317 \
  -p 4318:4318 \
  -e CF_OTLP_ENDPOINT \
  -e CF_OTLP_TOKEN \
  -v "$PWD/otel-collector.yaml:/etc/otelcol-contrib/config.yaml:ro" \
  otel/opentelemetry-collector-contrib:0.119.0 \
  --config=/etc/otelcol-contrib/config.yaml

应用随后可以把 OTLP 数据发送到 http://localhost:4318,或者通过 gRPC 发送到 localhost:4317。生产环境还应为 Collector 配置 TLS、资源限制、持久队列和受控的网络出口;不要把长期令牌直接写入 YAML 或镜像。

如果需要低风险迁移,可以再增加一个旧平台 exporter,让同一批遥测数据短期双写。对比两边的事件数量、追踪完整率、查询结果和告警触发时间后,再决定是否切换。双写会增加网络流量和数据费用,因此应设置明确的结束日期。

更简单的价格仍然需要容量测试

“更可预测的计费”对值班和财务团队都很重要,但价格模型越简单,并不代表总成本一定越低。评估时至少要询问以下问题:

  1. 日志、指标和追踪是分别计费,还是共享统一额度?
  2. 查询扫描、保留时间、仪表盘刷新和告警执行是否额外收费?
  3. 遥测导出是否产生出口费用或速率限制?
  4. 高基数字段和较长 Trace 会怎样影响用量?
  5. 超出预算后是停止摄入、降低保留期,还是继续产生费用?

可以从一周真实流量中采样,分别估算正常工作日、发布窗口和事故期间的数据量。不要只用平均值,因为一次异常重试风暴就可能同时推高日志量、Span 数量和告警次数。

采用前的工程检查清单

这组更新适合希望减少观测工具碎片、缩短排障路径,并保留遥测数据流动能力的团队。正式迁移前建议完成以下检查:

  • 用一个非核心服务验证日志、追踪和指标是否能够通过同一请求标识关联。
  • 确认查询语言、时间范围、聚合函数和导出格式能覆盖现有排障手册。
  • 对令牌、个人信息、请求正文和 URL 参数建立脱敏规则。
  • 使用真实流量测试摄入延迟、查询延迟、告警延迟和成本上限。
  • 为遥测入口不可用准备缓冲、重试和丢弃策略,避免反向拖垮业务。
  • 保留开放标准或导出路径,避免统一平台演变成无法退出的平台锁定。

Cloudflare 这轮更新传递出的方向很清楚:可观测性正在从若干孤立产品,转向覆盖采集、调查、告警、展示和导出的完整工作流。团队不应只比较功能列表,更应验证一次真实事故能否在更少的上下文切换中被发现、定位和复盘。


相关推荐