跳转到主要内容
所有信号都通过 intake API 进入 MoleSignal。网页界面中的 数据源 页面会为每个数据源生成端点、Token 和配置片段,同样的协议也可以手工配置。

数据源页面

打开 数据源 接入数据源:
  1. 在目录中搜索,或按分类筛选:推荐、基础设施、云服务、数据库、消息队列、应用与语言、安全 与 自定义。信号标签(日志、指标、链路、Profiles)可以进一步缩小范围。
  2. 选择一个数据源,例如 Kubernetes、Linux 主机、AWS、OpenTelemetry SDK 或 Web RUM。
  3. 按向导的三个步骤完成接入:
    • 端点与 Token 显示数据发往哪里,以及用于鉴权的 Token。显示 Token 会显示 Token 及其角色、工作区和有效期。用户体验类数据源需要先选择 RUM 应用,选择后才会显示它的 Client Token。
    • 配置数据源 显示命令和配置,其中的端点与 Token 已替换为真实值。
    • 验证数据到达 先检查接收端,再查看最近 1 小时内是否收到数据。验证接入 立即检查一次,各项数字每 30 秒自动刷新。
  4. 查看验证结果:
    • 已检测到数据:最近 1 小时内收到了数据,且该数据源的信号都处于正常状态。查看已接收数据 打开这些数据,创建流水线 为它们创建流水线。
    • 接收端正常,但数据状态需要确认:接收端有响应,但还没有收到数据,或并非所有信号都正常。请检查部署,或等待下一批数据。
    • 验证失败:无法检查接收端。可能原因 列出采集器未运行、Token 无效或已过期,以及网络或代理阻断了端点。
设置了 http.external_url 时,端点取自该配置;否则取自浏览器当前地址。位于反向代理之后时,请设置 http.external_url,让生成的片段指向对外地址。参见配置。

接入 Token

发送端使用 Bearer Token 认证:Authorization: Bearer <token>。 持续运行的发送端使用默认接入 Token 或服务账号 Token。登录 Token 到期后即失效,所有使用它的发送端都会随之中断。在 身份与访问 → API tokens 中撤销 Token 可立即使其失效。 在数据源页面输入应用 id 后会创建 RUM Client Token。应用 id 由 1 到 128 个字符组成,可使用 A-Z、a-z、0-9、.、_、: 与 -。SDK 中的 applicationId 使用同一个 id,参见浏览器 RUM SDK。

端点与协议

除推送型连接器外,所有端点都需要具备 streams.write 权限的 Bearer Token。组织由 Token 决定,不会出现在 URL 中。

影响发送端的限制

  • 请求大小。 超过 2 MiB 的请求体会被拒绝并返回 413。请让每批数据小于该大小。
  • 压缩。 OTLP over HTTP 不接受压缩的请求体,会返回 400。请在发送端关闭压缩;OpenTelemetry Collector 的 otlphttp 导出端默认使用 gzip 压缩,需要设置 compression: none。Elasticsearch _bulk、Loki push 与推送型连接器接受 Content-Encoding: gzip。
  • Loki 编码。 只解析 JSON 请求格式。Promtail 与 Grafana Alloy 默认发送 snappy 压缩的 protobuf,无法向该端点发送数据。
  • 速率限制。 router 角色按组织限制请求,超限时返回 429 并附带 Retry-After 响应头。standalone 节点不应用这个限制。参见分角色部署。
  • 保留数据流。 数据流名称 _molesignal 保留给服务自身的遥测,拒绝公开接入。

数据流与 Schema

数据流在首次写入时创建,schema 会随新字段出现而演进。数据流由名称和信号类型共同标识,因此 default 可以同时存在于日志、指标和链路类型下。参见数据流。 每个事件都有一个自 Unix 纪元起的微秒时间戳。原生 JSON 与 Elasticsearch _bulk 读取 _timestamp 字段。没有 _timestamp 的事件使用服务端接收它的时间。

原生 HTTP JSON

向 /api/v1/intake/{logs,metrics,traces}/{stream} 发送记录数组:
响应会给出已接收与已拒绝的记录数,并为每条被拒绝的记录给出下标与原因:

OpenTelemetry

把 OpenTelemetry SDK 或 Collector 指向 /api 基础路径。导出端会自动追加 /v1/logs、/v1/metrics 与 /v1/traces,对应 /api/v1/logs、/api/v1/metrics 与 /api/v1/traces。
SDK 环境变量:
OpenTelemetry Collector:
请发送 protobuf(application/x-protobuf),这是各 SDK 与 Collector 的默认编码。日志、指标与链路也接受 JSON(application/json)。添加 stream-name 请求头可选择 default 之外的数据流,该请求头对通过这个导出端发送的所有信号生效。
OTLP 指标按数据点逐条存储,存储字段参见指标存储约定。

Prometheus remote_write

在 prometheus.yml 中把 MoleSignal 添加为 remote write 目标:
一个指标数据流装一个来源的全部指标,所以请用 stream-name 请求头(remote_write 配置里的 headers:)给每台 Prometheus 指定自己的数据流;没有这个请求头时样本写入 default。每个样本成为一行,metric_name 是它的 __name__。其余标签成为字段,与指标字段同名的标签(例如 metric_name)存为 exported_<名称>。原生直方图与指标元数据会被跳过,exemplar 与样本一起保存。

Elasticsearch bulk

支持 Elasticsearch bulk 协议的发送端无需依赖 Loki 或 OTLP 即可使用:
每个 action 的 _index 决定目标数据流。没有 _index 时使用 stream-name 请求头,再缺省为 default。

Loki push

该端点接受 Loki 的 JSON 请求格式:
标签成为字段,日志行写入 message 字段,纳秒时间戳会转换为微秒。响应为 204。用 stream-name 请求头选择目标数据流。

相关页面

集成指南

OpenTelemetry Collector、Vector、Fluent Bit、Filebeat、Prometheus 与 Kubernetes 的完整配置。

流水线

在事件到达时或按定时计划,对事件做路由、标准化、脱敏与扩展。

连接器

接收 Kinesis Firehose、Cloudflare Logpush 与 Heroku 日志投递。

身份与访问

创建服务账号并管理 API Token。
最后修改于 2026年10月26日