平台自监控指标清单
本文是 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 - 答疑工具:
querySelfMonitorMetrics(platform.querySelfMonitorMetrics),内部调用上述同一套 Portal 服务;用于排查 DataBuff 平台自身问题(不是业务 APM) - 改环境变量步骤:Docker / K8s 写法见 参数配置;容量与调参顺序见 性能优化。改完后须重启对应组件(ingest / web / Doris)生效。
1. 数据模型速览
| 列 | 含义 |
|---|---|
component | ingest 或 web |
instance | 进程实例(hostname/pod);doris.* 写成 Doris Host/IP(不是 web) |
metric | 已带组件前缀的全名,如 ingest.write.req、web.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_ms | SUM(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.*.fail、ingest.sw.*.fail;对照 *.req | cnt | 入站失败突增 |
| 数据延迟 / 积压 | ingest.pipeline.*.cost_ms、ingest.pipeline.*.drop、ingest.write.queue、ingest.trace.assembly.pending | avg / cnt / gauge | 对照 *.queue、*.queue.cap |
| Stream Load 失败 | ingest.write.fail、ingest.write.drop;对照 ingest.write.req | cnt;耗时用 avg | groupBy=dim 看信号(trace/metric/log) |
| 查询慢 / 报错 | web.query.<domain>.fail、web.query.<domain>.cost_ms | cnt / avg | domain 见 §7 |
| Doris 不可用 | web.doris.up、web.doris.be.alive、web.doris.fe.alive | gauge | up=0 时 Web 可能进排障模式 |
| 集群转发丢数 | ingest.cluster.drop.*、ingest.cluster.forward.*.fail | cnt | 多实例集群 |
| Ingest/Web OOM 嫌疑 | *.system.memory.heap.used vs *.max、*.system.gc.*、*.system.cpu.usage | gauge / cnt | 双组件都有 |
3. Ingest 入站(OTel / SkyWalking)
全名前缀:ingest. + 相对名。协议 × 信号 × 类型:
相对名模板:{otel|sw}.{trace|metric|log}.{req|fail|bytes|cost_ms}
| 相对名示例 | 全名示例 | value | 含义(统计逻辑) |
|---|---|---|---|
otel.trace.req | ingest.otel.trace.req | cnt | OTLP Trace span 条数(不是 HTTP/gRPC Export 次数);asRate 时为每秒条数(TPS) |
otel.trace.fail | ingest.otel.trace.fail | cnt | 协议解析或处理失败(按失败 span/批次累计);HTTP 层解析失败也会记 |
otel.trace.bytes | ingest.otel.trace.bytes | cnt | 入站 payload 字节累计;与 req 对照可估单条平均大小 |
otel.trace.cost_ms | ingest.otel.trace.cost_ms | avg | 单次 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_PORT | 4318 | 宿主映射的 OTLP HTTP 端口(容器内 4318) |
INGEST_GRPC_PORT | 4317 | 宿主映射的 OTLP gRPC 端口(容器内 4317) |
INGEST_SKYWALKING_PORT | 11800 | 宿主映射的 SkyWalking Agent gRPC 端口 |
INGEST_DORIS_LOG_BODY_MAX_LENGTH | 1048576 | 写入 log_dc_record.body 的最大字符数,超长截断;字节涨时可对照是否截断过多 |
4. Pipeline 与 Trace 组装
相对名:pipeline.<trace|metric|aggregate>.{req|cost_ms|drop|queue|queue.cap} → ingest.pipeline.*。
| 全名 | value | 含义(统计逻辑) |
|---|---|---|
ingest.pipeline.trace.req | cnt | Trace 管道出队并完成处理的 event 数;与入站 req 对照看管道是否跟得上 |
ingest.pipeline.trace.cost_ms | avg | 从入队到处理结束耗时(ms);含管道内部排队 + 业务处理 |
ingest.pipeline.trace.drop | cnt | 环形缓冲满时丢弃的 event 数(背压保护,数据会丢) |
ingest.pipeline.trace.queue | gauge | 当前占用;接近 cap 时易触发 drop |
ingest.pipeline.trace.queue.cap | gauge | 缓冲容量(与 INGEST_TRACE_BUFFER_SIZE 一致) |
ingest.pipeline.metric.* / ingest.pipeline.aggregate.* | 同上 | Metric / Aggregate(分钟聚合等异步任务)管道 |
ingest.trace.assembly.pending | gauge | 等待组装/补齐的 Trace 相关积压 |
ingest.trace.drop.ignore | cnt | 命中 Trace Ignore 规则而主动丢弃的 span(配置行为,不是故障) |
自监控 UI「Pipeline」按行展示:req → cost_ms → drop。queue / queue.cap 仍由采样器写入,供排障与总览使用。
怎么看
- drop 非 0:立刻处理——加 buffer、加 tasks,或降上游流量 / 加快写出。
- cost_ms 升高且 queue 高:消费慢,考虑加 tasks 或查下游 Doris 写出。
- ignore 丢弃升高:核对是否误配 Ignore 规则。
相关环境变量
| 环境变量 | 默认 | 说明 / 如何调 |
|---|---|---|
INGEST_TRACE_TASKS | 8 | Trace 管道并发消费任务数;积压时可适度加大(注意 CPU) |
INGEST_TRACE_BUFFER_SIZE | 8192 | Trace 环形缓冲容量;满则 drop。加大可抗突发,占用更多堆 |
INGEST_METRIC_TASKS | 4 | Metric 管道并发 |
INGEST_METRIC_BUFFER_SIZE | 1024 | Metric 环形缓冲 |
INGEST_AGGREGATE_TASKS | 4 | Aggregate 管道并发 |
INGEST_AGGREGATE_BUFFER_SIZE | 1024 | Aggregate 环形缓冲 |
INGEST_TRACE_ASSEMBLY_CHECK_INTERVAL_MS | 2000 | Trace 组装检查调度间隔(ms) |
INGEST_TRACE_IGNORE_RESOURCES | 空 | 精确匹配 resource / metaHttpUrl 列表(逗号分隔) |
INGEST_TRACE_IGNORE_RESOURCE_REGEX | 空 | Java 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_*→trace,log_*→log,metric_*→metric,其余→other。查询时 groupBy: ["dim"]。同信号多表(如多张 metric_*)的 queue 会加总到同一 dim。
| 全名 | value | 含义(统计逻辑) |
|---|---|---|
ingest.write.req | cnt | Stream Load 成功批次数 |
ingest.write.fail | cnt | Stream Load 返回失败(HTTP/业务 Status 非 Success)的批次数;失败批会 requeue,直到成功或触发 drop |
ingest.write.bytes | cnt | 成功提交到 Doris 的 NDJSON 字节累计;asRate 时为 bytes/s |
ingest.write.cost_ms | avg | 单次 Stream Load HTTP 往返耗时(含 FE 跳转或直连 BE) |
ingest.write.queue | gauge | 待刷入 Doris 的行数 = 各线程本地 buffer 行数 + Ready 队列中已打包批的行数 |
ingest.write.queue.cap | gauge | Ready 队列容量(批次数)按信号加总;注意与 queue(行数)单位不同,不能直接相除当利用率 |
ingest.write.drop | cnt | 写出侧主动丢弃:① 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_BYTES | 52428800(50MiB) | 线程本地 buffer 攒满该字节数后 hand-off;越大写频越低、单批越大(有利于 tablet version) |
INGEST_DORIS_FLUSH_INTERVAL_MS | 30000 | 未满批时按时间强制 hand-off 的间隔(ms) |
INGEST_DORIS_MAX_READY_BATCHES | 32 | Ready 队列容量(批次数);满则整批丢弃,计入 write.drop |
INGEST_DORIS_STREAM_LOAD_MAX_FAILURES | 3 | 单 sink 连续 Stream Load 失败次数上限,超限丢弃当前批并记 write.drop |
INGEST_DORIS_TRACE_FLUSH_CONCURRENCY | 1 | trace_dc_span 并行 Stream Load 数;加大吞吐但易推高 Doris tablet version,单 BE 建议保持 1 |
INGEST_DORIS_FLUSH_TIMEOUT_MS | 60000 | 单次 Stream Load 等待超时;大批次时可加大,避免误失败 |
DORIS_BE_HTTP_HOST | 空 | 直连 BE 做 Stream Load 的 Host;未配则经 FE 302 跳转 |
DORIS_BE_HTTP_PORT | 8040 | 直连 BE 的 HTTP 端口 |
6. 集群(多 Ingest 实例)
| 全名 | value | 含义(统计逻辑) |
|---|---|---|
ingest.cluster.member.count | gauge | 当前 ingest 集群感知到的成员数 |
ingest.cluster.leader | gauge | 本节点是否 Leader(0/1);部分协调任务仅 Leader 执行 |
ingest.cluster.effective | gauge | 集群模式是否真正生效(0/1);enabled 但 ZK 不可用时可能为 0 |
ingest.cluster.forward.<stream>.req | cnt | 本机按分区把流量转发给其他成员的出站成功 |
ingest.cluster.forward.<stream>.fail | cnt | 转发出站失败 |
ingest.cluster.forward.<stream>.bytes | cnt/sum | 转发字节 |
ingest.cluster.forward.<stream>.cost_ms | avg | 转发耗时 |
ingest.cluster.forward.in.<stream>.req / .fail | cnt | 其他实例转发到本机的入站 |
ingest.cluster.drop.<stream> | cnt | 集群转发路径上丢弃(对端不可达、队列满等) |
<stream> 为分区流名。可用 tagValues + metricPrefixes: ["ingest.cluster."] 发现实际名字。
怎么看
- forward.fail / cost_ms 升高:对端宕机、网络或对端积压。
- drop 与 forward.fail 一起看,区分出站失败还是本地直接丢。
- 入站 fail 升高:本机处理不过来或协议错误。
相关环境变量
| 环境变量 | 默认 | 说明 / 如何调 |
|---|---|---|
INGEST_CLUSTER_ENABLED | false | 是否启用多实例集群模式;关闭则无跨实例转发 |
ZK_CONNECT_STRING | 空 | ZooKeeper 连接串,用于成员发现/选主 |
INGEST_CLUSTER_GRPC_PORT | 18112 | 实例间转发 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 |
portal | service*、cockpit*、platform* 等 |
other | 其余 /webapi/** |
| 全名示例 | value | 含义(统计逻辑) |
|---|---|---|
web.query.trace.req | cnt | 该 domain API 请求量 |
web.query.trace.fail | cnt | HTTP status ≥ 400 |
web.query.trace.cost_ms | avg | 平均耗时(含 Doris 查询与业务组装) |
怎么看
- cost_ms 升高:查 Doris 负载、扫描范围、慢 SQL;对照
web.doris.be/fe与query_scan_*。 - fail 升高:对照 web 日志与
web.doris.up;排障模式下部分查询会失败。
8. 进程资源(ingest / web 各一份)
相对名相同,前缀分别为 ingest. / web.:
| 相对名 | value | 含义(统计逻辑) |
|---|---|---|
system.cpu.usage | gauge | 进程 CPU 使用率(%) |
system.memory.heap.used | gauge | JVM 堆已用字节;对照 heap.max |
system.memory.heap.max | gauge | JVM 堆上限(-Xmx) |
system.thread.count | gauge | JVM 存活线程数(管道 tasks、Stream Load 并发、gRPC 都会影响) |
system.gc.count.<GcName> | cnt | GC 次数增量 |
system.gc.time.<GcName> | cnt | GC 耗时增量(ms) |
怎么看
- heap.used 接近 heap.max:加大堆或降流量,否则 GC 频繁 / OOM。
- GC time 突增伴随 heap 锯齿:堆偏小或短命对象过多(队列积压)。
- CPU 长期高位:加大副本/任务数前先确认是否写出或查询热点。
相关环境变量
| 环境变量 | 默认(建议) | 说明 / 如何调 |
|---|---|---|
JAVA_TOOL_OPTIONS | ingest 推荐 -Xms1g -Xmx4g;web 推荐 -Xms512m -Xmx1536m | JVM 启动参数(含 -Xmx);heap 打满时优先调这项 |
9. Doris 自监控(由 web 采样)
前缀 web.doris.。由 web 采样,instance = Doris 节点 Host(IP)(不是 web 进程 hostname)。
| 全名 | value | groupBy | 含义(统计逻辑) |
|---|---|---|---|
web.doris.up | gauge | instance=FE Host | Web 对配置 FE 的 JDBC/探活是否通(0/1) |
web.doris.be.alive | gauge | instance=BE Host | SHOW BACKENDS 该节点是否 Alive |
web.doris.fe.alive | gauge | instance=FE Host | SHOW FRONTENDS 该节点是否 Alive |
web.doris.fe.is_master | gauge | instance=FE Host | 是否 Master;元数据写入、tablet 调度等只在 Master |
web.doris.be.cpu | gauge | dim=mode | BE CPU 各 mode 占比 %(user/system/idle/…;同节点合计 ≈ 100) |
web.doris.be.tablet_num | gauge | instance | Tablet 数;过多加重元数据与 compaction |
web.doris.be.used_pct | gauge | instance | 磁盘占用 % |
web.doris.be.running_tasks | gauge | instance | 当前运行任务数 |
另有一批从 FE/BE Prometheus 映射的指标(逻辑名见 DorisSelfMonitorMapper),落库为 web.doris.<fe|be>.<logical>[.<label>](刮取时带角色前缀)。
官方含义(Doris 监控指标)与平台名对照:
| 平台名 | 官方 Prometheus | 官方含义(摘要) | 怎么看 / 调参关联 |
|---|---|---|---|
…fe.edit_log_write | doris_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/reject | failed/reject 升高对照 ingest.write.fail |
…fe.query_success | doris_fe_query_total | 所有查询请求累积计数 | 骤降:FE 不可用或客户端连不上 |
…be.process_mem_bytes | doris_be_memory_allocated_bytes | BE 进程物理内存(VmRSS) | 持续升高查 compaction、SegmentCache、导入并发 |
…be.stream_load.<type> | doris_be_stream_load | receive_bytes / load_rows | receive 有量但 load_rows 不涨 → 导入失败/卡事务 |
…be.txn_request.* | doris_be_stream_load_txn_request | Stream Load 事务 begin/commit/rollback | rollback 升高对照 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_total | compaction 处理的 input rowset 磁盘字节 | Score 偏高 → 偏大 FLUSH_BATCH_BYTES、低 TRACE_FLUSH_CONCURRENCY |
…be.tablet_*_max_compaction_score | 同名 | 最大 Base/Cumulative Compaction Score | 越高堆积越重,可能拖慢查询/写入 |
…be.query_scan_bytes/rows | doris_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_bytes | JVM 堆 max/used/committed | FE -Xmx 过大易拖垮主机 |
…be.cpu(dim=mode) | doris_be_cpu | /proc/stat;平台归一成各 mode 占比 % | user+system 长期很高:扩 BE 或降写入频率 |
…*.process_fd_* | doris_be_process_fd_num_* | 文件句柄 used / limit | used 接近 hard limit 需调 ulimit |
…*.thread_pool.* | doris_fe/be_thread_pool_* | 各类线程池活跃任务数 | 某池长期打满:对应路径堆积 |
…be.engine_requests_total.* | doris_be_engine_requests_total | BE 引擎侧各类请求累计 | 关注失败类后缀是否升高 |
…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_HOST | 127.0.0.1 | Doris FE 地址,需与 ingest / web 一致 |
DORIS_FE_HTTP_PORT | 8030 | FE HTTP 端口 |
DORIS_FE_QUERY_PORT | 9030 | FE 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 卡片(怎么算)
| 卡片标题 | 相关指标 | 含义 |
|---|---|---|
| 入站 TPS | ingest.otel.*.req、ingest.sw.*.req | 时间窗内入站 req 总和 ÷ 窗口秒数;覆盖 OTel / SW 的 trace·metric·log |
| 写出失败 | ingest.write.fail | 窗口内 Stream Load 失败批次数;非 0 时到接入页按 dim 看信号 |
| Doris 磁盘占用 | web.doris.be.used_pct | BE 磁盘占用 % 的窗口汇总 |
| 查询失败 | web.query.*.fail | 各业务域查询 API(HTTP≥400)失败次数汇总 |
11. 环境变量速查(按指标域)
修改方式:Docker 用 docker-compose.override.yml 在对应服务 environment 下追加;K8s 改 Deployment/ConfigMap。细节见 参数配置。
| 指标域 | 主要环境变量 | 典型动作 |
|---|---|---|
| 入站端口 | INGEST_HTTP_PORT / GRPC / SKYWALKING | 端口不通时检查宿主映射 |
| Pipeline drop / 积压 | INGEST_*_TASKS、INGEST_*_BUFFER_SIZE | 先加 buffer/tasks |
| Trace Ignore | INGEST_TRACE_IGNORE_* | 误丢时核对规则 |
| 写出 drop / fail / 慢 | INGEST_DORIS_FLUSH_*、MAX_READY_BATCHES、TRACE_FLUSH_CONCURRENCY、STREAM_LOAD_MAX_FAILURES | 大批次、低并发优先;失败查 Doris |
| 集群 | INGEST_CLUSTER_ENABLED、ZK_CONNECT_STRING、INGEST_CLUSTER_GRPC_PORT | 多实例才需要 |
| JVM | JAVA_TOOL_OPTIONS | heap 打满时加大 -Xmx |
| Doris 连通 | DORIS_FE_*、DORIS_BE_HTTP_* | up=0 / Stream Load 失败时核对 |
12. 答疑专家怎么查 / 怎么修
- 先读本文选指标与
value/groupBy,并对照对应节的「怎么看」「相关环境变量」。 - 用
getCurrentTimeRange取fromTime/toTime(yyyy-MM-dd HH:mm:ss)。 - 调用工具
querySelfMonitorMetrics(与 UI 同一套 Portal API):mode=series→ 等价/platform/metrics/querymode=summary→ 等价/platform/metrics/summarymode=list→ 等价/platform/metrics/tagValues(默认tag=metric)
- 不要用
queryMetricData(业务指标表)查自监控;不要手写 JDBC 拼metric_platform。平台巡检时基本不推荐queryDorisBusinessData;若偶发查配置/业务表,禁止SELECT COUNT(*)等全表聚合。 - 用户要求修复时:按本文「相关环境变量」与 参数配置、性能优化 调整官方变量(推荐
docker-compose.override.yml),重启对应 DataBuff 容器,再用本工具复查;勿以「只读」拒绝平台自运维变更。
查询参数对应关系
| 工具 / API 字段 | 说明 |
|---|---|
metrics | 精确全名列表,如 ["ingest.write.fail"] |
metricPrefixes / metricSuffixes | 前缀/后缀过滤,如 ["ingest.otel."] + [".fail"] |
components | ingest / web |
instances / dims | 过滤实例或 dim |
groupBy | instance / dim / metric / component |
value | cnt / avg / gauge / auto… |
stepSeconds | 时序步长,默认 60 |
示例
写出失败按信号:
{
"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 指标名:
{
"mode": "list",
"fromTime": "...",
"toTime": "...",
"metricPrefixes": ["web.doris."],
"tag": "metric",
"limit": 80
}Doris 连通按 FE 实例:
{
"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 |
| 查询 SQL | ai-apm-common/.../storage/PlatformMetricQueryBuilder.java |
| Portal API | ai-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 |