Skip to content

平台自监控指标清单

本文是 DataBuff 平台自运维(ingest / web / Doris)指标的权威清单,供运维人员与 产品答疑专家 排障使用。业务 APM 指标(metric_service* 等)不在本文范围。

  • 存储表metric_platform
  • Web UI:部署配置 → 安装部署 → 状态(自监控概览 / 接入 / 集群 / 查询 / Doris)
  • UI 指标说明:各图右上角「?」打开抽屉,内容与本文 §3~§9 含义 / 怎么看 / 相关环境变量 对齐(源码:ai-apm-frontend/.../selfMonitor/metricHelp.ts
  • 统一查询 API(前端与答疑工具共用):
    • POST /webapi/platform/metrics/query — 时序
    • POST /webapi/platform/metrics/summary — 窗口汇总
    • POST /webapi/platform/metrics/tagValues — 发现 tag 取值(含 metric 名)
  • 命名源码ai-apm-common/.../PlatformMetricNames.java
  • 答疑工具querySelfMonitorMetricsplatform.querySelfMonitorMetrics),内部调用上述同一套 Portal 服务;用于排查 DataBuff 平台自身问题(不是业务 APM)
  • 改环境变量步骤:Docker / K8s 写法见 参数配置;容量与调参顺序见 性能优化。改完后须重启对应组件(ingest / web / Doris)生效。

1. 数据模型速览

含义
componentingestweb
instance进程实例(hostname/pod);doris.* 写成 Doris Host/IP(不是 web)
metric已带组件前缀的全名,如 ingest.write.reqweb.query.trace.fail
dim稀疏维度:write.* 为粗粒度信号(trace/metric/log/other);web.doris.*.cpu 为 CPU mode/type(user/softirq/…);其余 Doris 指标常为空
cnt / val_sum / val_* / val_gauge计数增量、计时求和、极值、水位类 gauge
ts / metric_time已闭合的上一分钟桶起点(flush 约在整点后 2s;采样器默认在每分钟第 50 秒写入 gauge)

取值模式 value(查询 API)

value适用说明
cnt*.req / *.fail / *.drop / *.bytes 等计数SUM(cnt)
avg*.cost_msSUM(val_sum)/SUM(cnt),单位 ms
gauge队列、CPU、heap、alive、pending 等REPLACE 水位
sum / max / min特殊汇总少用
auto不确定时服务端按列启发式

推荐 groupBy

场景groupBy
默认按实例看趋势["instance"]
Stream Load 按信号["dim"]ingest.write.*,dim=trace/metric/log
Doris 按节点["instance"]web.doris.*,instance=Doris Host)
Doris CPU 按 mode["dim"]web.doris.be.cpu,dim=user/softirq/…)
KPI 卡片汇总["metric"]

2. 排障速查(现象 → 先看哪些指标)

现象优先指标value说明
无 Trace / 接入失败ingest.otel.*.failingest.sw.*.fail;对照 *.reqcnt入站失败突增
数据延迟 / 积压ingest.pipeline.*.cost_msingest.pipeline.*.dropingest.write.queueingest.trace.assembly.pendingavg / cnt / gauge对照 *.queue*.queue.cap
Stream Load 失败ingest.write.failingest.write.drop;对照 ingest.write.reqcnt;耗时用 avggroupBy=dim 看信号(trace/metric/log)
查询慢 / 报错web.query.<domain>.failweb.query.<domain>.cost_mscnt / avgdomain 见 §7
Doris 不可用web.doris.upweb.doris.be.aliveweb.doris.fe.alivegaugeup=0 时 Web 可能进排障模式
集群转发丢数ingest.cluster.drop.*ingest.cluster.forward.*.failcnt多实例集群
Ingest/Web OOM 嫌疑*.system.memory.heap.used vs *.max*.system.gc.**.system.cpu.usagegauge / cnt双组件都有

3. Ingest 入站(OTel / SkyWalking)

全名前缀:ingest. + 相对名。协议 × 信号 × 类型:

相对名模板:{otel|sw}.{trace|metric|log}.{req|fail|bytes|cost_ms}

相对名示例全名示例value含义(统计逻辑)
otel.trace.reqingest.otel.trace.reqcntOTLP Trace span 条数(不是 HTTP/gRPC Export 次数);asRate 时为每秒条数(TPS)
otel.trace.failingest.otel.trace.failcnt协议解析或处理失败(按失败 span/批次累计);HTTP 层解析失败也会记
otel.trace.bytesingest.otel.trace.bytescnt入站 payload 字节累计;与 req 对照可估单条平均大小
otel.trace.cost_msingest.otel.trace.cost_msavg单次 Export / 接收处理耗时(含解析与入队到 pipeline 前;不含后续 Stream Load)
(metric / log 同理)ingest.otel.metric.*ingest.otel.log.*同上*.req 分别为 metric 行数、log 条数
(SkyWalking)ingest.sw.trace.*同上SW:span / JVM metric / log 条数

怎么看

  • 长期为 0:Agent/Collector 未打到 ingest,或防火墙/端口未通。
  • 突增:对照写出队列与 pipeline drop,判断是否过载。
  • 字节涨、req 不涨:单包变大(大 span / 大 log body)。
  • fail 占比高:优先查 Agent 协议版本、鉴权、payload 损坏。
  • cost_ms 持续升高:解析慢、下游 pipeline 反压或 CPU 不足。

相关环境变量

环境变量默认说明 / 如何调
INGEST_HTTP_PORT4318宿主映射的 OTLP HTTP 端口(容器内 4318)
INGEST_GRPC_PORT4317宿主映射的 OTLP gRPC 端口(容器内 4317)
INGEST_SKYWALKING_PORT11800宿主映射的 SkyWalking Agent gRPC 端口
INGEST_DORIS_LOG_BODY_MAX_LENGTH1048576写入 log_dc_record.body 的最大字符数,超长截断;字节涨时可对照是否截断过多

4. Pipeline 与 Trace 组装

相对名:pipeline.<trace|metric|aggregate>.{req|cost_ms|drop|queue|queue.cap}ingest.pipeline.*

全名value含义(统计逻辑)
ingest.pipeline.trace.reqcntTrace 管道出队并完成处理的 event 数;与入站 req 对照看管道是否跟得上
ingest.pipeline.trace.cost_msavg从入队到处理结束耗时(ms);含管道内部排队 + 业务处理
ingest.pipeline.trace.dropcnt环形缓冲满时丢弃的 event 数(背压保护,数据会丢
ingest.pipeline.trace.queuegauge当前占用;接近 cap 时易触发 drop
ingest.pipeline.trace.queue.capgauge缓冲容量(与 INGEST_TRACE_BUFFER_SIZE 一致)
ingest.pipeline.metric.* / ingest.pipeline.aggregate.*同上Metric / Aggregate(分钟聚合等异步任务)管道
ingest.trace.assembly.pendinggauge等待组装/补齐的 Trace 相关积压
ingest.trace.drop.ignorecnt命中 Trace Ignore 规则而主动丢弃的 span(配置行为,不是故障)

自监控 UI「Pipeline」按行展示:reqcost_msdropqueue / queue.cap 仍由采样器写入,供排障与总览使用。

怎么看

  • drop 非 0:立刻处理——加 buffer、加 tasks,或降上游流量 / 加快写出。
  • cost_ms 升高且 queue 高:消费慢,考虑加 tasks 或查下游 Doris 写出。
  • ignore 丢弃升高:核对是否误配 Ignore 规则。

相关环境变量

环境变量默认说明 / 如何调
INGEST_TRACE_TASKS8Trace 管道并发消费任务数;积压时可适度加大(注意 CPU)
INGEST_TRACE_BUFFER_SIZE8192Trace 环形缓冲容量;满则 drop。加大可抗突发,占用更多堆
INGEST_METRIC_TASKS4Metric 管道并发
INGEST_METRIC_BUFFER_SIZE1024Metric 环形缓冲
INGEST_AGGREGATE_TASKS4Aggregate 管道并发
INGEST_AGGREGATE_BUFFER_SIZE1024Aggregate 环形缓冲
INGEST_TRACE_ASSEMBLY_CHECK_INTERVAL_MS2000Trace 组装检查调度间隔(ms)
INGEST_TRACE_IGNORE_RESOURCES精确匹配 resource / metaHttpUrl 列表(逗号分隔)
INGEST_TRACE_IGNORE_RESOURCE_REGEXJava Matcher#matches 全串正则列表

调参顺序建议:先加 INGEST_*_BUFFER_SIZE / *_TASKS 解决 drop,再微调写出侧 flush 参数。详见 性能优化 · Ingest 管道调优


5. Stream Load 写出

相对名:write.{req|fail|bytes|cost_ms|queue|drop} → 全名 ingest.write.*
dim = 粗粒度信号(由 Doris 表名前缀映射):trace_*tracelog_*logmetric_*metric,其余→other。查询时 groupBy: ["dim"]。同信号多表(如多张 metric_*)的 queue 会加总到同一 dim。

全名value含义(统计逻辑)
ingest.write.reqcntStream Load 成功批次数
ingest.write.failcntStream Load 返回失败(HTTP/业务 Status 非 Success)的批次数;失败批会 requeue,直到成功或触发 drop
ingest.write.bytescnt成功提交到 Doris 的 NDJSON 字节累计;asRate 时为 bytes/s
ingest.write.cost_msavg单次 Stream Load HTTP 往返耗时(含 FE 跳转或直连 BE)
ingest.write.queuegauge待刷入 Doris 的行数 = 各线程本地 buffer 行数 + Ready 队列中已打包批的行数
ingest.write.queue.capgaugeReady 队列容量(批次数)按信号加总;注意与 queue(行数)单位不同,不能直接相除当利用率
ingest.write.dropcnt写出侧主动丢弃:① Ready 队列满,hand-off 整批丢;② 连续 Stream Load 失败达上限后丢弃

Ready 队列为有界队列:thread-local 满 flush-batch-bytes(默认 50MiB)或满 flush-interval-ms(默认 30s)后 hand-off 一整批;队列满则整批丢。

怎么看

  • 任何持续 drop / fail 都意味着数据丢失或写出不健康。先看 queue vs queue.cap、write.fail、Doris alive。
  • cost_ms 持续 > 数秒:Doris BE 忙、compaction、磁盘或网络问题;对照 web.doris.be.*
  • bytes 低但 queue 高:写出卡住。
  • compaction score 长期偏高:写入过频(小批量)推高 tablet version —— 宜偏大批次、低并发。

相关环境变量

环境变量默认说明 / 如何调
INGEST_DORIS_FLUSH_BATCH_BYTES52428800(50MiB)线程本地 buffer 攒满该字节数后 hand-off;越大写频越低、单批越大(有利于 tablet version)
INGEST_DORIS_FLUSH_INTERVAL_MS30000未满批时按时间强制 hand-off 的间隔(ms)
INGEST_DORIS_MAX_READY_BATCHES32Ready 队列容量(批次数);满则整批丢弃,计入 write.drop
INGEST_DORIS_STREAM_LOAD_MAX_FAILURES3单 sink 连续 Stream Load 失败次数上限,超限丢弃当前批并记 write.drop
INGEST_DORIS_TRACE_FLUSH_CONCURRENCY1trace_dc_span 并行 Stream Load 数;加大吞吐但易推高 Doris tablet version,单 BE 建议保持 1
INGEST_DORIS_FLUSH_TIMEOUT_MS60000单次 Stream Load 等待超时;大批次时可加大,避免误失败
DORIS_BE_HTTP_HOST直连 BE 做 Stream Load 的 Host;未配则经 FE 302 跳转
DORIS_BE_HTTP_PORT8040直连 BE 的 HTTP 端口

6. 集群(多 Ingest 实例)

全名value含义(统计逻辑)
ingest.cluster.member.countgauge当前 ingest 集群感知到的成员数
ingest.cluster.leadergauge本节点是否 Leader(0/1);部分协调任务仅 Leader 执行
ingest.cluster.effectivegauge集群模式是否真正生效(0/1);enabled 但 ZK 不可用时可能为 0
ingest.cluster.forward.<stream>.reqcnt本机按分区把流量转发给其他成员的出站成功
ingest.cluster.forward.<stream>.failcnt转发出站失败
ingest.cluster.forward.<stream>.bytescnt/sum转发字节
ingest.cluster.forward.<stream>.cost_msavg转发耗时
ingest.cluster.forward.in.<stream>.req / .failcnt其他实例转发到本机的入站
ingest.cluster.drop.<stream>cnt集群转发路径上丢弃(对端不可达、队列满等)

<stream> 为分区流名。可用 tagValues + metricPrefixes: ["ingest.cluster."] 发现实际名字。

怎么看

  • forward.fail / cost_ms 升高:对端宕机、网络或对端积压。
  • drop 与 forward.fail 一起看,区分出站失败还是本地直接丢。
  • 入站 fail 升高:本机处理不过来或协议错误。

相关环境变量

环境变量默认说明 / 如何调
INGEST_CLUSTER_ENABLEDfalse是否启用多实例集群模式;关闭则无跨实例转发
ZK_CONNECT_STRINGZooKeeper 连接串,用于成员发现/选主
INGEST_CLUSTER_GRPC_PORT18112实例间转发 gRPC 端口

7. Web 查询 API

相对名:query.<domain>.{req|fail|cost_ms}web.query.*
domain 由 URI 归类(见 PlatformQueryMetricsFilter):

domain典型路径
trace/webapi/trace*
metric/webapi/metric*
log/webapi/log*
alarm/webapi/alarm*monitor*
ai/webapi/api/v1/ai*/mcp
portalservice*cockpit*platform*
other其余 /webapi/**
全名示例value含义(统计逻辑)
web.query.trace.reqcnt该 domain API 请求量
web.query.trace.failcntHTTP status ≥ 400
web.query.trace.cost_msavg平均耗时(含 Doris 查询与业务组装)

怎么看

  • cost_ms 升高:查 Doris 负载、扫描范围、慢 SQL;对照 web.doris.be / fequery_scan_*
  • fail 升高:对照 web 日志与 web.doris.up;排障模式下部分查询会失败。

8. 进程资源(ingest / web 各一份)

相对名相同,前缀分别为 ingest. / web.

相对名value含义(统计逻辑)
system.cpu.usagegauge进程 CPU 使用率(%)
system.memory.heap.usedgaugeJVM 堆已用字节;对照 heap.max
system.memory.heap.maxgaugeJVM 堆上限(-Xmx
system.thread.countgaugeJVM 存活线程数(管道 tasks、Stream Load 并发、gRPC 都会影响)
system.gc.count.<GcName>cntGC 次数增量
system.gc.time.<GcName>cntGC 耗时增量(ms)

怎么看

  • heap.used 接近 heap.max:加大堆或降流量,否则 GC 频繁 / OOM。
  • GC time 突增伴随 heap 锯齿:堆偏小或短命对象过多(队列积压)。
  • CPU 长期高位:加大副本/任务数前先确认是否写出或查询热点。

相关环境变量

环境变量默认(建议)说明 / 如何调
JAVA_TOOL_OPTIONSingest 推荐 -Xms1g -Xmx4g;web 推荐 -Xms512m -Xmx1536mJVM 启动参数(含 -Xmx);heap 打满时优先调这项

9. Doris 自监控(由 web 采样)

前缀 web.doris.。由 web 采样,instance = Doris 节点 Host(IP)(不是 web 进程 hostname)。

全名valuegroupBy含义(统计逻辑)
web.doris.upgaugeinstance=FE HostWeb 对配置 FE 的 JDBC/探活是否通(0/1)
web.doris.be.alivegaugeinstance=BE HostSHOW BACKENDS 该节点是否 Alive
web.doris.fe.alivegaugeinstance=FE HostSHOW FRONTENDS 该节点是否 Alive
web.doris.fe.is_mastergaugeinstance=FE Host是否 Master;元数据写入、tablet 调度等只在 Master
web.doris.be.cpugaugedim=modeBE CPU 各 mode 占比 %(user/system/idle/…;同节点合计 ≈ 100)
web.doris.be.tablet_numgaugeinstanceTablet 数;过多加重元数据与 compaction
web.doris.be.used_pctgaugeinstance磁盘占用 %
web.doris.be.running_tasksgaugeinstance当前运行任务数

另有一批从 FE/BE Prometheus 映射的指标(逻辑名见 DorisSelfMonitorMapper),落库为 web.doris.<fe|be>.<logical>[.<label>](刮取时带角色前缀)。

官方含义Doris 监控指标)与平台名对照:

平台名官方 Prometheus官方含义(摘要)怎么看 / 调参关联
…fe.edit_log_writedoris_fe_edit_log{type="write"}元数据日志写入次数;看斜率频率异常升高:DDL/导入事务/副本调度过密
…fe.image_write.<type>doris_fe_image_write生成元数据镜像成功/失败failed 不应出现,需人工介入
…fe.txn_request.<type>doris_fe_txn_counter导入事务 begin/success/failed/rejectfailed/reject 升高对照 ingest.write.fail
…fe.query_successdoris_fe_query_total所有查询请求累积计数骤降:FE 不可用或客户端连不上
…be.process_mem_bytesdoris_be_memory_allocated_bytesBE 进程物理内存(VmRSS)持续升高查 compaction、SegmentCache、导入并发
…be.stream_load.<type>doris_be_stream_loadreceive_bytes / load_rowsreceive 有量但 load_rows 不涨 → 导入失败/卡事务
…be.txn_request.*doris_be_stream_load_txn_requestStream Load 事务 begin/commit/rollbackrollback 升高对照 memtable_flush、write.fail
…be.memtable_flush_*doris_be_memtable_flush_*memtable 刷盘次数/耗时(µs)duration 斜率升高常伴随 write.cost_ms 升高
…be.compaction_bytes_total.*doris_be_compaction_bytes_totalcompaction 处理的 input rowset 磁盘字节Score 偏高 → 偏大 FLUSH_BATCH_BYTES、低 TRACE_FLUSH_CONCURRENCY
…be.tablet_*_max_compaction_score同名最大 Base/Cumulative Compaction Score越高堆积越重,可能拖慢查询/写入
…be.query_scan_bytes/rowsdoris_be_query_scan_*Olap 表读取字节/行(RawRowsRead)突增对照 web.query.*.cost_ms、segment_read
…be.segment_read.*doris_be_segment_read读取 segment 个数/行数与 query_scan 一起看读放大
…*.jvm_heap_size_bytes.*jvm_heap_size_bytesJVM 堆 max/used/committedFE -Xmx 过大易拖垮主机
…be.cpu(dim=mode)doris_be_cpu/proc/stat;平台归一成各 mode 占比 %user+system 长期很高:扩 BE 或降写入频率
…*.process_fd_*doris_be_process_fd_num_*文件句柄 used / limitused 接近 hard limit 需调 ulimit
…*.thread_pool.*doris_fe/be_thread_pool_*各类线程池活跃任务数某池长期打满:对应路径堆积
…be.engine_requests_total.*doris_be_engine_requests_totalBE 引擎侧各类请求累计关注失败类后缀是否升高
…be.async_delta_writer.*doris_be_async_delta_writer_*异步 delta writer 队列/等待queue 升高常与 memtable flush、磁盘 IO 相关
  • 双方都有的 JVM / 线程池等同样带 fe. / be. 前缀

取值语义:Prometheus counter(及名称启发式认定的累计项)在 web 刮取时转为相邻两次刮取的差值再写入;gauge 仍为瞬时值。首次刮取仅建基线、不落差值。

例外:web.doris.be.cpu 先对 jiffies 做差值,再按 mode 归一成百分比写入,不要再当绝对 jiffies 解读。

Doris 连接相关环境变量

环境变量默认说明 / 如何调
DORIS_FE_HOST127.0.0.1Doris FE 地址,需与 ingest / web 一致
DORIS_FE_HTTP_PORT8030FE HTTP 端口
DORIS_FE_QUERY_PORT9030FE MySQL/JDBC 查询端口
DORIS_BE_HTTP_HOST / DORIS_BE_HTTP_PORT空 / 8040见 §5 Stream Load

写出侧调参(INGEST_DORIS_*)直接影响 BE 的 stream_load / compaction / memtable 指标,见 §5。

实际环境以时间窗内 tagValues(tag=metric, metricPrefixes=["web.doris."]) 发现的名为准。UI 指标说明抽屉会展示上述含义摘要。


10. 概览 KPI 卡片(怎么算)

卡片标题相关指标含义
入站 TPSingest.otel.*.reqingest.sw.*.req时间窗内入站 req 总和 ÷ 窗口秒数;覆盖 OTel / SW 的 trace·metric·log
写出失败ingest.write.fail窗口内 Stream Load 失败批次数;非 0 时到接入页按 dim 看信号
Doris 磁盘占用web.doris.be.used_pctBE 磁盘占用 % 的窗口汇总
查询失败web.query.*.fail各业务域查询 API(HTTP≥400)失败次数汇总

11. 环境变量速查(按指标域)

修改方式:Docker 用 docker-compose.override.yml 在对应服务 environment 下追加;K8s 改 Deployment/ConfigMap。细节见 参数配置

指标域主要环境变量典型动作
入站端口INGEST_HTTP_PORT / GRPC / SKYWALKING端口不通时检查宿主映射
Pipeline drop / 积压INGEST_*_TASKSINGEST_*_BUFFER_SIZE先加 buffer/tasks
Trace IgnoreINGEST_TRACE_IGNORE_*误丢时核对规则
写出 drop / fail / 慢INGEST_DORIS_FLUSH_*MAX_READY_BATCHESTRACE_FLUSH_CONCURRENCYSTREAM_LOAD_MAX_FAILURES大批次、低并发优先;失败查 Doris
集群INGEST_CLUSTER_ENABLEDZK_CONNECT_STRINGINGEST_CLUSTER_GRPC_PORT多实例才需要
JVMJAVA_TOOL_OPTIONSheap 打满时加大 -Xmx
Doris 连通DORIS_FE_*DORIS_BE_HTTP_*up=0 / Stream Load 失败时核对

12. 答疑专家怎么查 / 怎么修

  1. 先读本文选指标与 value / groupBy,并对照对应节的「怎么看」「相关环境变量」。
  2. getCurrentTimeRangefromTime/toTimeyyyy-MM-dd HH:mm:ss)。
  3. 调用工具 querySelfMonitorMetrics(与 UI 同一套 Portal API):
    • mode=series → 等价 /platform/metrics/query
    • mode=summary → 等价 /platform/metrics/summary
    • mode=list → 等价 /platform/metrics/tagValues(默认 tag=metric
  4. 不要用 queryMetricData(业务指标表)查自监控;不要手写 JDBC 拼 metric_platform。平台巡检时基本不推荐 queryDorisBusinessData;若偶发查配置/业务表,禁止 SELECT COUNT(*) 等全表聚合。
  5. 用户要求修复时:按本文「相关环境变量」与 参数配置性能优化 调整官方变量(推荐 docker-compose.override.yml),重启对应 DataBuff 容器,再用本工具复查;勿以「只读」拒绝平台自运维变更。

查询参数对应关系

工具 / API 字段说明
metrics精确全名列表,如 ["ingest.write.fail"]
metricPrefixes / metricSuffixes前缀/后缀过滤,如 ["ingest.otel."] + [".fail"]
componentsingest / web
instances / dims过滤实例或 dim
groupByinstance / dim / metric / component
valuecnt / avg / gauge / auto
stepSeconds时序步长,默认 60

示例

写出失败按信号:

json
{
  "mode": "series",
  "fromTime": "2026-08-05 20:00:00",
  "toTime": "2026-08-05 21:00:00",
  "metrics": ["ingest.write.fail"],
  "groupBy": ["dim"],
  "value": "cnt",
  "components": ["ingest"]
}

发现近期出现过的 Doris 指标名:

json
{
  "mode": "list",
  "fromTime": "...",
  "toTime": "...",
  "metricPrefixes": ["web.doris."],
  "tag": "metric",
  "limit": 80
}

Doris 连通按 FE 实例:

json
{
  "mode": "series",
  "fromTime": "...",
  "toTime": "...",
  "metrics": ["web.doris.up", "web.doris.be.alive", "web.doris.fe.alive"],
  "groupBy": ["instance"],
  "value": "gauge",
  "components": ["web"]
}

13. 相关代码与 UI

区域路径
指标命名ai-apm-common/.../platform/PlatformMetricNames.java
查询 SQLai-apm-common/.../storage/PlatformMetricQueryBuilder.java
Portal APIai-apm-web/.../portal/PlatformMetricPortalController.java
前端页ai-apm-frontend/src/views/selfMonitor/
UI 指标说明ai-apm-frontend/src/views/selfMonitor/metricHelp.ts
表结构deploy/common/sql/migrations/V007__metric_platform.sql