数据源页面
打开 数据源 接入数据源:- 在目录中搜索,或按分类筛选:推荐、基础设施、云服务、数据库、消息队列、应用与语言、安全 与 自定义。信号标签(日志、指标、链路、Profiles)可以进一步缩小范围。
- 选择一个数据源,例如 Kubernetes、Linux 主机、AWS、OpenTelemetry SDK 或 Web RUM。
- 按向导的三个步骤完成接入:
- 端点与 Token 显示数据发往哪里,以及用于鉴权的 Token。显示 Token 会显示 Token 及其角色、工作区和有效期。用户体验类数据源需要先选择 RUM 应用,选择后才会显示它的 Client Token。
- 配置数据源 显示命令和配置,其中的端点与 Token 已替换为真实值。
- 验证数据到达 先检查接收端,再查看最近 1 小时内是否收到数据。验证接入 立即检查一次,各项数字每 30 秒自动刷新。
- 查看验证结果:
- 已检测到数据:最近 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。
- OTLP over HTTP
- OTLP over gRPC
SDK 环境变量:OpenTelemetry Collector:请发送 protobuf(
application/x-protobuf),这是各 SDK 与 Collector 的默认编码。日志、指标与链路也接受 JSON(application/json)。添加 stream-name 请求头可选择 default 之外的数据流,该请求头对通过这个导出端发送的所有信号生效。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 即可使用:_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。