StarRocks 监控指标详解(D–H):Data Cache、磁盘 I/O、FE 负载任务与 Hive 写入指标全解读

发布时间:2026/9/16 20:01:15
StarRocks 监控指标详解(D–H):Data Cache、磁盘 I/O、FE 负载任务与 Hive 写入指标全解读 StarRocks 监控指标详解D–HData Cache、磁盘 I/O、FE 负载任务与 Hive 写入指标全解读【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocksStarRocks 以 Prometheus 格式对外暴露大量运行时指标涵盖 BEBackend的查询执行、存储、缓存与磁盘 I/O以及 FEFrontend的元数据、连接与数据导入任务等。本文聚焦 d-h.md 中按字母顺序排列的 d 至 h 段共 76 个指标逐一说明其含义、单位、类型与适用场景并结合当前仓库源码BE 的be/src、FE 的fe/fe-core/src给出实现层面的印证帮助你在搭建监控告警时正确理解每一个指标避免误读误用。阅读本文前建议先了解 StarRocks 监控体系的整体搭建方式见 Monitor and Alert物化视图与存算分离集群的专属指标分别见 Metrics for asynchronous materialized view 与 Metrics for Shared-data Dashboard。一、查询执行与 Exchange 相关指标data_stream / fragment这一类指标反映 BE 上查询执行尤其是 Exchange 收发端与 fragment 实例的负载情况是判断集群查询并发压力与执行引擎行为的关键。指标名单位含义data_stream_receiver_countCountBE 中作为 Exchange 接收端receiver的实例累计数量fragment_endpoint_countCountBE 中作为 Exchange 发送端sender的实例累计数量fragment_requests_totalCount在 BE 上执行的 fragment 实例总数仅统计非 pipeline 引擎fragment_request_duration_ususfragment 实例的累计执行时间仅统计非 pipeline 引擎从源码看这四个指标均在 runtime_metrics.h 中定义其中fragment_requests_totalMETRIC_DEFINE_INT_COUNTER单位 REQUESTS与fragment_request_duration_us单位 MICROSECONDS是累计计数器而data_stream_receiver_count与fragment_endpoint_count被定义为METRIC_DEFINE_UINT_GAUGE无符号 Gauge单位 NOUNIT与文档中累计数量的描述对应反映当前实例数量而非速率。使用建议当fragment_endpoint_count/data_stream_receiver_count持续偏高且伴随查询变慢说明 Exchange 收发端实例过多可关注查询并行度parallel_fragment_exec_instance_num与资源组限制是否合理。文档明确标注 fragment 类指标仅适用于非 pipeline 引擎。StarRocks 默认使用 pipeline 执行引擎因此在新版本中这两个指标通常保持低位或不再增长不应据此判断 pipeline 查询负载。二、Data Cache数据缓存指标Data Cache数据缓存用于加速外部数据源如 Hive、Iceberg、HDFS 等的查询将远端数据以块为单位缓存到 BE 本地磁盘同时用内存维护元数据。d–h 段共收录 5 个 datacache 指标指标名单位类型含义datacache_mem_quota_bytesBytesGaugeData Cache 配置的内存配额datacache_mem_used_bytesBytesGaugeData Cache 当前内存使用量datacache_disk_quota_bytesBytesGaugeData Cache 配置的磁盘配额datacache_disk_used_bytesBytesGaugeData Cache 当前磁盘使用量datacache_meta_used_bytesBytesGaugeData Cache 元数据缓存索引等占用的内存这 5 个指标在 datacache_metrics.h 中统一以METRIC_DEFINE_INT_GAUGE定义并通过DataCacheMetricsSnapshot结构体包含mem_quota_bytes、mem_used_bytes、disk_quota_bytes、disk_used_bytes、meta_used_bytes等字段从缓存引擎定时采集后更新到指标注册表。实战解读配额 vs 使用量*_quota_bytes反映datacache_mem_size、datacache_disk_size等 BE 配置项设定的上限*_used_bytes是实际占用。正常情况下使用量应接近但不超过配额。磁盘缓存是核心datacache_disk_used_bytes接近datacache_disk_quota_bytes时说明缓存已打满命中率趋于稳定若持续低于配额说明缓存未充分发挥作用可结合查询模式判断是否需调整缓存粒度。元数据内存datacache_meta_used_bytes是索引/元数据占用的内存通常远小于数据内存若该值异常增长说明缓存分片过多或碎片化可考虑调大单块缓存大小。若使用量长期远超配额或 meta 内存暴涨应检查 Data Cache 配置与磁盘状态相关配置项见 data cache若适用及 BE 配置文件 be.conf。三、列池内存Column Pool指标BE 在内存管理中引入了**列池Column Pool**机制按数据类型复用内存降低频繁分配/释放带来的开销。d–h 段覆盖 6 种数据类型的列池指标名单位含义date_column_pool_bytesBytesDATE 列池占用的内存datetime_column_pool_bytesBytesDATETIME 列池占用的内存decimal_column_pool_bytesBytesDECIMAL 列池占用的内存double_column_pool_bytesBytesDOUBLE 列池占用的内存float_column_pool_bytesBytesFLOAT 列池占用的内存注文档中date_column_pool_bytes、datetime_column_pool_bytes、decimal_column_pool_bytes等条目未标注 Type结合其语义可视为 Gauge 型即时值反映当前列池内存占用。解读要点列池内存属于 BE 进程内存的一部分会被纳入内存管理。若某类型列池占用异常偏高往往对应大批量查询集中处理该类型列可结合大查询big query分析与资源组内存限制排查。在监控大盘中可将这 6 个指标求和观察列池总内存随查询负载的变化趋势辅助判断 BE 内存水位。四、Delta 列组缓存指标Primary Key 表Delta 列组Delta Column Group是 Primary Key 表在列式存储与实时更新共存场景下的核心机制它把新写入的增量列独立组织定期与存量列合并从而兼顾点查与更新性能。相关缓存用于加速 Delta 列组的读取。指标名单位含义delta_column_group_get_hit_cacheCountPrimary Key 表 Delta 列组缓存命中总次数delta_column_group_get_totalCountPrimary Key 表获取 Delta 列组的总次数delta_column_group_get_non_pk_hit_cacheCount非 Primary Key 表 Delta 列组缓存命中总次数delta_column_group_get_non_pk_totalCount非 Primary Key 表获取 Delta 列组的总次数这四个指标在 storage_metrics.h 中定义均为METRIC_DEFINE_INT_COUNTER单位 REQUESTS从存储层计数。计算与告警命中率delta_column_group_get_hit_cache / delta_column_group_get_totalPrimary Key 表。命中率偏低说明读取请求大多穿透缓存可关注 Delta 列组合并compaction进度与查询模式。非 Primary Key 表non_pk系列指标通常用于对照如果一张表是 Primary Key 表其non_pk指标不应增长反之亦然可用于排查建表类型与访问路径是否匹配。五、磁盘 I/O 指标磁盘 I/O 指标是 BE 数据盘健康度的直接反映也是判断存储瓶颈尤其是 compaction、数据导入、物化合并期间的重要依据。d–h 段磁盘指标可划分为四组1. 磁盘容量类指标名单位类型含义disk_freeBytesAverage磁盘剩余容量disk_usedBytesAverage磁盘已用容量disks_total_capacityBytes-磁盘总容量disks_avail_capacityBytes-指定磁盘的可用容量disks_data_used_capacityBytes-每个存储路径disk对应的数据已用容量disks_state--磁盘状态1表示使用中0表示未使用其中disks_state、disks_total_capacity等在 agent_metrics.h 中通过AgentIntGaugeMetricsMap以磁盘/存储路径为 key 的 Gauge 映射实现因此这类指标会带磁盘维度标签。告警建议对disks_avail_capacity/disk_free设置阈值告警如剩余容量低于 10%防止因磁盘写满导致导入失败或 BE 异常。关注disks_state是否为10表示该盘已被 BE 判定为不可用或已下线需立即排查磁盘硬件与挂载状态。2. 磁盘读写吞吐类指标名单位含义disk_bytes_readBytes从磁盘读取的总字节数扇区读取数 × 512disk_bytes_writtenBytes写入磁盘的总字节数disk_reads_completedCount成功完成的磁盘读次数disk_writes_completedCount成功完成的磁盘写次数这类指标源自 Linux 块设备统计/proc/diskstatsdisk_bytes_read的扇区 × 512口径与内核sectors字段一致。它们可用于计算平均单次读写大小与读写速率配合时间窗口求导识别是否存在大量小 I/O 或顺序大 I/O。3. 磁盘延迟与利用率类指标名单位类型含义disk_io_svctmmsAverage磁盘 I/O 服务时间单次 I/O 平均服务时长disk_io_time_msms-I/O 花费的总时间disk_io_time_weigthedms-I/O 花费的加权总时间反映 I/O 队列积压影响disk_io_util-Average磁盘利用率disk_read_time_msms-磁盘读取花费的时间disk_write_time_msms-磁盘写入花费的时间说明disk_io_time_weigthed加权 I/O 时间在原文档中拼写如此weigthed使用时注意与内核/proc/diskstats中io_ticks/weighted_io_ticks对应前者的语义更接近设备忙时比例后者更能反映排队影响。disk_io_util接近 100% 说明磁盘接近饱和但 SSD/NVMe 在高并发下util也可能失真应结合disk_io_svctm服务时间与disk_io_time_weigthed综合判断是否出现排队。disk_io_svctm明显升高通常意味着磁盘性能下降或 I/O 队列加深可配合 compaction 任务、导入任务发生时间点定位根因。4. 已废弃指标disk_sync_total (Deprecated)磁盘 sync 操作总数已废弃。disk_sync_total在 storage_metrics.h 中仍保留定义METRIC_DEFINE_INT_COUNTER单位 OPERATIONS但官方文档已标注 Deprecated建议新监控面板不再依赖。http_request_send_bytes (Deprecated)、http_requests_total (Deprecated)HTTP 请求相关指标已废弃。六、文件描述符指标指标名单位含义fd_num_limitCount文件描述符数量上限fd_num_usedCount当前使用的文件描述符数量在 BE 侧runtime_metrics.h 中定义了process_fd_num_used、process_fd_num_limit_soft、process_fd_num_limit_hard等进程级 Gauge与文档中fd_num_*指标同源。文件描述符耗尽会导致新建连接/文件打开失败因此建议将fd_num_used / fd_num_limit的比率纳入告警如超过 80% 预警并检查系统的ulimit -n与 systemd/容器配置是否一致。七、文件加密指标StarRocks 支持对数据文件进行透明加密密钥由 BE 的 Key Cache 管理。相关指标定义于 key_cache.cpp指标名单位类型含义encryption_keys_createdCountCumulative为文件加密创建的加密密钥数量encryption_keys_unwrappedCountCumulative为文件解密而解包unwrapped的加密元数据数量encryption_keys_in_cacheCountInstantaneous当前密钥缓存中的密钥数量源码印证encryption_keys_created在密钥创建路径上increment(1)见 key_cache.cpp 附近的创建逻辑encryption_keys_unwrapped在解密读取时increment(1)key_cache.cppencryption_keys_in_cache以 Gauge 形式注册key_cache.cpp即时反映缓存内密钥数量。解读encryption_keys_created与encryption_keys_unwrapped的比值可在宏观上反映读写对称性encryption_keys_in_cache若持续接近上限说明加密表访问面广需评估密钥缓存容量配置是否合理。八、BE–FE 引擎请求指标指标名单位含义engine_requests_totalCountBE 与 FE 之间各类请求的总数包括 CREATE TABLE、Publish Version、tablet clone 等该指标是一个总括型计数器涵盖 BE 向 FE 发起或 FE 下发至 BE的多类内部请求。实际排障时可结合 FE 侧日志与 BE 的 tablet/clone 相关指标交叉定位例如副本均衡期间该指标增长通常对应 clone 任务增多。九、FE 连接与元数据指标FE 的入口负载通常首先体现在连接数与元数据edit log处理上指标名单位类型含义fe_connection_totalCountCumulativeFE 累计连接总数fe_connections_per_secondCount/sAverageFE 每秒新建连接数新连接速率fe_edit_log_readCount/sAverageFE edit log 读取速率fe_edit_log_writeBytes/sAverageFE edit log 写入速率fe_edit_log_size_bytesBytes/sAverageFE edit log 大小单位 Byte/sfe_checkpoint_push_per_secondCount/sAverageFE checkpoint 数量解读与告警fe_connections_per_second突发升高通常对应大量新会话建立如应用重启、连接池重建可配合fe_connection_total的累计值观察趋势。fe_edit_log_write与fe_edit_log_size_bytes反映元数据变更的写入压力高频 DDL、频繁建删表、大量 tablet 变更都会推高该指标。若持续高位且伴随 FE 写盘延迟需评估元数据操作频率与集群规模。fe_checkpoint_push_per_second反映 FE checkpoint 推进频率用于观察元数据镜像image持久化节奏。十、FE 数据导入任务状态指标FE 侧按导入任务类型 × 任务状态组合暴露了大量计数器d–h 段覆盖 4 类任务broker load、delete、hadoop load、insert load× 6 种状态pending、loading、committed、finished、cancelled共 24 个指标任务类型 \ 状态pendingloadingcommittedfinishedcancelledBroker Loadfe_pending_broker_load_jobfe_loading_broker_load_jobfe_committed_broker_load_jobfe_finished_broker_load_jobfe_cancelled_broker_load_jobDeletefe_pending_delete_load_jobfe_loading_delete_load_jobfe_committed_delete_load_jobfe_finished_delete_load_jobfe_cancelled_delete_load_jobHadoop Loadfe_pending_hadoop_load_jobfe_loading_hadoop_load_jobfe_committed_hadoop_load_jobfe_finished_hadoop_load_jobfe_cancelled_hadoop_load_jobInsert Loadfe_pending_insert_load_jobfe_loading_insert_load_jobfe_committed_insert_load_jobfe_finished_insert_load_jobfe_cancelled_insert_load_job这类指标均为Average型在采样窗口内的统计值单位 Count。使用方式负载画像*_loading_*反映正在进行的导入数配合*_pending_*排队中可判断导入并发是否达到瓶颈。成功率监控*_cancelled_* /*_finished_* *_cancelled_*可计算失败率*_cancelled_*异常攀升时应结合 FE 日志与SHOW LOAD结果定位失败原因如数据格式、权限、超时。delete 任务fe_pending_delete_load_job/fe_loading_delete_load_job对应 DELETE 语句产生的任务频繁大批量删除时可观察这些指标评估执行进度。此外FE 侧还有两个 Schema 变更相关指标fe_rollup_running_alter_jobrollup 中正在运行的作业数fe_schema_change_running_jobschema change 进行中的作业数。两者反映表结构/物化变更任务的执行水位若长时间不为 0 且无进展应检查对应任务的卡点如表被查询占用、副本不均衡。十一、Hive 写入INSERT / INSERT OVERWRITE指标当 StarRocks 通过 External Catalog 向 Hive 表执行INSERT或INSERT OVERWRITE时FE 会在任务结束后更新下列累计指标用于观测写 Hive 的吞吐与成功率指标名单位类型Labels含义hive_write_bytesBytesCumulativewrite_typeinsert/overwrite写 Hive 任务写入的数据文件总大小hive_write_duration_ms_totalmsCumulativewrite_typeinsert/overwrite写 Hive 任务的总执行时间任务结束后累加hive_write_filesCountCumulativewrite_typeinsert/overwrite写入 Hive 的数据文件总数hive_write_rowsRowsCumulativewrite_typeinsert/overwrite写入 Hive 的总行数hive_write_totalCountCumulativestatussuccess/failed、reasonnone/timeout/oom/access_denied/unknown、write_typeinsert/overwrite面向 Hive 表的 INSERT / INSERT OVERWRITE 任务总数任务结束后无论成败均 1实战计算写入速率hive_write_bytes的时间差分 / 采样间隔用于观察写 Hive 吞吐。平均单文件大小hive_write_bytes / hive_write_files可评估文件数是否过多小文件问题。StarRocks 通过hive_write_files能直观看到每个任务产生的文件数便于判断是否需要对 Hive 表做合并如使用INSERT OVERWRITE合并小文件。成功率hive_write_total{statussuccess} / hive_write_total失败时通过reason标签细分原因timeout、oom、access_denied、unknown比单一成功率更利于定位。write_type标签让INSERT与INSERT OVERWRITE分开统计overwrite会先覆盖再写入其文件数与行数波动通常大于纯insert便于对比两种操作的开销。十二、监控集成方式速览上述指标与 StarRocks 全量指标一样统一由 BE/FE 以 Prometheus 文本格式暴露BE 默认通过http_port下的/metrics接口提供具体端口以 be.conf 与 fe.conf 配置为准Prometheus 定时抓取后可接入 Grafana 绘制监控大盘。仓库contrib/datadog-connector/目录提供了starrocks_be与starrocks_fe两套 Datadog 集成各含metadata.csv等指标定义文件可作为指标采集与展示的参考实现。告警阈值建议仅作参考请结合业务实际调整磁盘容量disk_free/disks_avail_capacity低于总容量 10% 时告警磁盘饱和度disk_io_util长期 90% 或disk_io_time_weigthed持续增长时告警文件描述符fd_num_used / fd_num_limit 80% 时预警Data Cachedatacache_mem_used_bytes/datacache_meta_used_bytes异常增长且明显超过配额时检查缓存配置导入失败任一fe_cancelled_*_load_job或hive_write_total{statusfailed}在单位时间内持续增长时告警。十三、总结d–h 段指标涵盖了 StarRocks 运行监控中非常关键的三类场景查询执行与缓存data_stream / fragment / datacache / column pool / delta column group、节点资源磁盘 I/O、文件描述符、文件加密与FE 负载与导入任务连接、edit log、各类 load job、Hive 写入。它们与 a–c、i–p、q–r、s、t–z 各段见 metric_details共同构成完整的指标参考体系。在搭建监控时建议优先覆盖磁盘容量、磁盘利用率、文件描述符、Data Cache 配额、导入失败与 Hive 写入失败这几类直接影响数据可用性的指标并结合 Monitor and Alert 与 alert.md 配置告警规则实现集群健康度的闭环观测。【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocks创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考