跳转到主要内容
本指南覆盖最常见的发送端。数据源 页面会生成同样的配置,端点与 Token 已替换为真实值,并覆盖更多平台,参见数据源。 把 molesignal.example.com 替换为部署的实际地址,把 MS_TOKEN 替换为接入 Token。Docker Compose 沙箱使用 http://localhost:5080。

OpenTelemetry Collector

Collector 的 otlphttp 导出端把 endpoint 当作基础 URL,并自动追加 /v1/logs、/v1/metrics 与 /v1/traces。把 endpoint 设为 /api 路径,请求就会到达 /api/v1/logs、/api/v1/metrics 与 /api/v1/traces。
保持 compression: none。otlphttp 导出端默认使用 gzip 压缩,而 OTLP over HTTP 会以 400 拒绝压缩的请求体。超过 2 MiB 的请求体会以 413 拒绝,因此要根据记录大小把 send_batch_max_size 设得足够小。导出端日志出现 413 时请调小它。
通过 gRPC 发送时使用 otlp 导出端。4317 端口提供明文 gRPC,除非有代理终止 TLS,否则需要设置 tls.insecure: true:
在 headers 中添加 stream-name: <stream> 可写入 default 之外的数据流。该请求头对使用这个导出端的所有信号生效,信号需要写入不同数据流时,请为每个数据流定义一个导出端。

OpenTelemetry SDK

所有 OpenTelemetry SDK 都读取标准环境变量。把 OTEL_EXPORTER_OTLP_ENDPOINT 指向 /api 路径,并通过 HTTP 发送 OTLP:
SDK 导出端默认不压缩。请不要设置 OTEL_EXPORTER_OTLP_COMPRESSION,或将其设为 none。

Vector

用 http sink 把日志发送到原生 HTTP JSON 接入端点。没有 _timestamp 字段的事件使用服务端接收它的时间。

Fluent Bit

使用 JSON 格式的 http 输出:
Docker Compose 沙箱把 Port 设为 5080,tls 设为 Off。

Kubernetes

把 Fluent Bit 作为 DaemonSet 运行,采集 /var/log/containers。打开 数据源 → Kubernetes 可获得端点与 Token 已替换好的完整清单。Fluent Bit 配置中的输出部分与上面的 http 输出相同,匹配规则为 Match kube.*。

Prometheus

把 MoleSignal 添加为 remote write 目标。评估期间可以让 Prometheus 继续在本地抓取并存储:
样本写入 stream-name 请求头指定的指标数据流,没有这个请求头时写入 default;在 remote_write 配置里加上 headers: { stream-name: <来源> },让每台 Prometheus 各有自己的数据流。用 PromQL 按指标名查询这些数据,支持的函数参见 PromQL 支持矩阵。

脚本与自定义发送端

用 curl 或任意 HTTP 客户端发送 JSON 记录数组:
按批发送记录以保持在 2 MiB 请求上限之内;事件的原始时间很重要时,用微秒发送 _timestamp。

验证数据

  1. 打开 首页,在 重点数据流 中确认该数据流为 正常。
  2. 打开 数据流,确认数据流名称、类型与最后接收时间。
  3. 打开 日志、指标 或 链路,选择该数据流。
没有数据到达时,检查发送端日志:401(Token 缺失或已过期)、403(Token 没有 streams.write)、400(OTLP 请求体被压缩)和 413(请求体超过 2 MiB)。参见故障排查。

从其他方案迁移

最后修改于 2026年10月26日