RisingWave 开发环境可观测性完全指南:risectl 集群控制、Grafana/Prometheus 监控、Tempo 链路追踪与日志配置
数据库流处理后端数据工程【免费下载链接】risingwaveEvent streaming platform for agentic AI. Continuously ingest, transform, and serve event streams in real time, at scale.项目地址https://gitcode.com/gh_mirrors/ri/risingwave点击查看免费下载RiseDev 为 RisingWave 的开发调试内置了一整套可观测性组件覆盖集群内部状态访问risectl、指标监控Prometheus Grafana、流式链路追踪Tempo、Actor 运行时可视化Dashboard以及基于tokio-tracing的日志体系。本文以仓库中的 observability.md 为主线结合 risedev.yml 与相关源码实现逐步说明如何在本地开发集群上打开这些能力并深入解读底层原理帮助你在排查流式任务、分析执行计划、定位性能瓶颈时具备完整的可观测手段。risectlRisingWave 集群内部状态访问工具risectl是 RisingWave 提供内部访问能力的命令行工具用于查看和操作集群内部的运行状态例如查询 Actor 分布、SST 文件、barrier 状态、表统计信息等是开发调试期间最重要的入口之一。查看其完整用法有两条等价途径# 直接通过 cargo 运行 risectl 二进制查看全部子命令与参数 cargo run --bin risectl -- --help# 或通过 RiseDev 封装入口其内部同样调用 risectl ./risedev ctl --help从源码结构看risectl由src/ctl/目录下的risingwave_ctlcrate 提供而 RiseDev 开发集群的组件入口位于 src/cmd_all/src/bin/risingwave.rs其中Component::Ctl对应的二进制名称正是risectl。因此无论是cargo run --bin risectl还是./risedev ctl最终都会走到同一套命令实现。提示risectl需要连接运行中的集群才能工作。在risedev.yml中提供了名为for-ctl的最小配置 profileminio meta-node compute-node frontend compactor可视为“专门配合 risectl 使用的最小集群”适合只想快速试验内部命令的场景。Monitoring用 Prometheus Grafana 观测集群指标RisingWave 的各个节点meta、compute、frontend、compactor都会通过 exporter 端口暴露 Prometheus 格式的指标。要在本地开发环境启用指标采集与可视化只需编辑risedev.yml取消prometheus与grafana两行的注释steps: - use: meta-node - use: compute-node - use: frontend # 取消以下注释以启用指标采集与可视化 - use: prometheus # metrics - use: grafana # visualizationrisedev.yml中defaultprofile 的步骤区已经预留了这行注释直接取消注释并./risedev d即可拉起一个带监控的开发集群。仓库中fullprofilerisedev.yml也展示了同时启用 Prometheus、Grafana 的完整编排示例。从配置生成源码看这三个组件的配置结构位于 src/risedevtool/src/service_config.rsPrometheusConfig支持scrape_interval、remote_write、remote_write_region、remote_write_url等字段service_config.rsGrafanaConfig通过provide_prometheus、provide_tempo字段建立与数据源的关联service_config.rs。也就是说Grafana 会自动把同 profile 中启用的 Prometheus指标和 Tempo追踪配置为数据源无需手工接线。对应的实现分别位于 prometheus_gen.rs、grafana_gen.rs服务启动任务在 prometheus_service.rs 与 grafana_service.rs。进阶full-benchmarkprofilerisedev.yml演示了remote-write: true的用法将指标通过 remote write 推送到远端工作区适用于压测等需要集中收集指标的场景。Tracing启用 Tempo 查看流式计算链路RisingWave 的 Compute 节点支持基于 OpenTelemetry 的流式链路追踪可以直观看到一条消息流过各个 streaming executor 的完整路径。该功能默认不开启启用步骤如下先执行./risedev configure下载并安装追踪组件Tempo编辑risedev.yml取消tempo服务行的注释重新启动一个新的开发集群使组件生效建议同时取消grafana行的注释因为最终是在 Grafana 中可视化 trace。steps: - use: meta-node - use: compute-node - use: frontend # 取消以下注释以启用链路追踪与可视化 - use: tempo # tracing - use: grafana # visualizationTempoConfig的字段定义在 service_config.rs包含otlp_port接收 OTLP 上报的端口与max_bytes_per_trace等参数配置生成实现在 tempo_gen.rs。追踪在源码中的落地方式Compute 节点中的每个 executor 在执行消息流时会被trace包装器包裹为每条消息创建tracingspan并上报给 OpenTelemetry。核心实现在 src/stream/src/executor/wrapper/trace.rs每个 executor 使用tracing::info_span!(executor, otel.name info.identity, ...)创建一个以 executor 身份命名的 spantrace.rs对Chunk消息记录cardinality与capacity对Watermark记录value与col_idx对Barrier记录prev_epoch、curr_epoch、kind、mutationtrace.rs注释明确说明“被trace包装的流会以tracingspans 记录并上报到opentelemetry”trace.rs。因此在 Grafana 的 Tempo 数据源中看到的一条 trace本质上就是一条 Chunk/Watermark/Barrier 消息在“Source → 各算子 executor → Sink”之间的完整传递记录非常适合定位消息卡在哪个算子。Dashboard查看系统中的 Actor 与执行计划RisingWave Dashboard 是内置于 meta node 的 Web 界面用于可视化系统中的 Actor、Fragment 和执行计划explain 图。它随 meta node 一起启动默认访问地址为http://127.0.0.1:5691/从 risedev.yml 中的 meta-node 配置可以看到meta 节点默认监听port: 5690、dashboard 监听dashboard-port: 5691例如meta-1cn-1fe-sqliteprofilerisedev.yml与文档所述的5691端口一致。Dashboard 的开发与调试方式记录在 dashboard/README.md它是一个基于 Next.js 的独立前端工程支持两种形态——独立部署的 UI或作为静态 HTML 内嵌在 meta service 中。开发模式下可以这样启动# 启动完整集群确保 prometheus 可用并准备好 dashboard 测试数据 ./risedev down ./risedev d dashboard ./risedev slt e2e_test/dashboard/create_graph.slt.part --label dashboard # 安装前端依赖并启动开发服务器默认端口 3000 pnpm install pnpm run dev开发服务器启动后访问http://localhost:3000/settings/将 API endpoint 设置为http://localhost:5691/api即可连接到运行中集群的 meta node。若要测试“静态文件内嵌于 meta node”的形态则执行./risedev configure enable dashboard此时由 meta node 在 5691 端口直接提供基于最新源码构建的 Dashboard。Dashboard 的关键页面包括fragment_graphFragment 执行图、relation_graph表/物化视图依赖图、await_tree、internal_tables、sinks等见 dashboard/pages。其中e2e_test/dashboard/create_graph.slt.parte2e_test/dashboard/create_graph.slt.part维护了包含多层 MV-on-MV 结构与 backpressure、lag 场景的专用测试数据用于验证渲染效果。Logging基于 tokio-tracing 的日志体系RisingWave 的 Rust 组件统一使用tokio-tracing同时承担日志与追踪二者共享同一套 instrumentation。日志初始化逻辑集中在 src/utils/runtime/src/logger.rs 的init_risingwave_logger中。默认日志级别默认情况下第三方库warn其他库RisingWave 自身 cratedebug这一默认策略在 logger.rs 的default_filter中体现外部依赖如hyper、tonic、reqwest、sqlx、aws等被显式设为WARN而 RisingWave 自己的 crate 依据部署环境取默认级别——CI 部署为INFOdebug 构建为DEBUG、release 构建为INFO。注意文档中的 “debug” 对应本地开发构建debug_assertions的默认值。用 RUST_LOG 动态调整日志级别要按模块调整日志级别启动时设置环境变量RUST_LOG即可语法遵循tracing-subscriber的EnvFilter格式支持targetlevel的逗号分隔列表。例如# 全局 info并单独把 streaming 模块与 events 目标提到 debug RUST_LOGinfo,risingwave_streamdebug,eventsdebug ./risingwave meta-nodelogger.rs 的实现会解析RUST_LOG并用其覆盖默认 filterRUST_LOG中的全局默认级别会替换默认级别而targetlevel规则会被叠加到默认规则之上。文档还提示在 release 构建中只有DEBUG及以下级别可能不会生效的部分需要注意——严格来说源码注释说明 “只有低于或等于DEBUG的级别在 release 构建中有效”logger.rs开发调试时建议使用 debug 构建。events:: 目标为调试而生的结构化日志有一类日志专门用于调试其 target 以events::开头。这类日志默认是关闭的default_filter中events被显式设为OFF见 logger.rs需要显式通过RUST_LOG打开。文档给出的经典示例# 打印流式引擎中所有经过 executor 的 chunk 消息 RUST_LOGevents::stream::message::chunktrace这条规则的底层实现在 src/stream/src/executor/wrapper/trace.rs每当一个Chunk消息流经被trace包裹的 executor 时会以target: events::stream::message::chunk发出 debug 事件并携带cardinality、capacity以及格式化的 chunk 内容chunk.to_pretty_with_schema。把级别设为trace即可让每条 chunk 消息在流经每个算子时都被完整记录。类似的调试目标还包括events::stream::message::watermark记录 watermark 的值与列索引和events::stream::message::barrier记录 barrier 的prev_epoch、curr_epoch、kind、mutation均定义在同一文件中trace.rs。仓库中还有大量其他events::目标例如src/common/src/hash/table_distribution.rs、src/storage/src/hummock/sstable/forward_sstable_iterator.rs、src/batch/src/task/task_manager.rs等可以在src/目录下搜索target: events::来发现更多可开启的调试日志点。更多日志相关环境变量源码 logger.rs 还记录了以下日志环境变量对日常排障同样有用ENABLE_PRETTY_LOG设为true时启用带行号、跨行展示 span 的 pretty 输出适合本地开发调试。官方建议配合关闭无关日志使用例如RUST_LOGrisingwave_storage::hummock::event_handleroff,batch_executeoff,risingwave_batch::taskoff ENABLE_PRETTY_LOGtrue risedev dRW_QUERY_LOG_PATH设置为一个目录后会把所有 SQL 写入query.log、把慢查询写入slow_query.log便于分析查询行为RW_QUERY_LOG_TRUNCATE_LEN可限制记录 SQL 的最大长度生产环境默认 1024。在risedev.yml的 profile 中也可以为整个集群统一注入环境变量例如env: RUST_LOG: info,risingwave_storage::hummockoff ENABLE_PRETTY_LOG: true这对应 risedevtool/src/config.rs 中ENABLE_PRETTY_LOG的注释说明。组合使用建议一套完整的本地排障工作流综合以上能力一个典型的“定位流式任务问题”工作流可以是编辑risedev.yml的defaultprofile依次取消prometheus、tempo、grafana三行注释必要时先./risedev configure下载 tempo 组件./risedev d启动开发集群访问http://127.0.0.1:5691/查看 Dashboard 中的 Fragment/Actor 拓扑用./risedev ctl --help探索risectl内部命令直接查看集群内部对象打开 Grafana在 Prometheus 数据源查看各节点指标在 Tempo 数据源查看流式 trace若需要更细粒度的消息级日志以 debug 构建配合RUST_LOGevents::stream::message::chunktrace或eventsdebug重启集群观察 chunk/watermark/barrier 在每个 executor 的流转细节。小结RisingWave 的开发可观测性由四层组成risectl集群内部控制面、Prometheus Grafana指标面、Tempotrace 面与 Dashboard运行时可视化面而tokio-tracing统一承载了日志与追踪两条链路。通过risedev.yml中的use:步骤即可按需组合启用通过RUST_LOG、ENABLE_PRETTY_LOG、RW_QUERY_LOG_PATH等环境变量可精细控制日志输出events::目标则提供了流式引擎消息级的调试窗口。掌握这套工具链即可在本地开发环境中对 RisingWave 集群实现从“宏观指标”到“单条消息”的全链路可观测。赞分享数据库流处理后端数据工程【免费下载链接】risingwaveEvent streaming platform for agentic AI. Continuously ingest, transform, and serve event streams in real time, at scale.项目地址https://gitcode.com/gh_mirrors/ri/risingwave点击查看免费下载相关推荐Windmill 可观测性实战基于 Tempo、Grafana、Prometheus 与 Loki 的 OpenTelemetry 链路追踪与日志监控Windmill 可观测性实战基于 Tempo、Grafana、Prometheus 与 Loki 的 OpenTelemetry 链路追踪与日志监控 导读后端工作流自动化任务调度低代码前端Hindsight 可观测性完全指南Prometheus 指标、OpenTelemetry 链路追踪与 Grafana 监控面板实战Hindsight 可观测性完全指南Prometheus 指标、OpenTelemetry 链路追踪与 Grafana 监控面板实战 Hindsight 是一人工智能AI AgentAgent 记忆MCP 服务Istio可观测性监控、追踪与日志集成Istio可观测性监控、追踪与日志集成 本文全面介绍了Istio服务网格的可观测性能力重点阐述了分布式追踪与OpenTelemetry的集成、指标收集与Pr服务网格云原生微服务网络负载均衡可观测性上一篇Kinesalite性能优化内存存储与持久化存储的对比分析下一篇Virtual Router终极指南Windows免费WiFi热点一键搞定创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

xberg CLI 完整参考:文档智能提取、批量处理、OCR 与模型缓存的命令行全指南

xberg CLI 完整参考:文档智能提取、批量处理、OCR 与模型缓存的命令行全指南

后端AI 应用NLP 【免费下载链接】xberg Polyglot document intelligence with a Rust core: extract text, metadata, images, tables, and structured data from 106 formats across 140 file extensions, plus code intelligence for 371 languages. Fifteen bindings, with …

2026/9/26 3:55:59 阅读更多 →
Read the Docs API v3 设计文档详解:以 slug 为中心的 REST API 演进路线与源码实现

Read the Docs API v3 设计文档详解:以 slug 为中心的 REST API 演进路线与源码实现

后端文档 【免费下载链接】readthedocs.org The source code that powers readthedocs.org 项目地址: https://gitcode.com/gh_mirrors/re/readthedocs.org 点击查看 免费下载 本文基于 Read the Docs 仓库内的官方设计文档 apiv3.rst,系统讲解 API v3 …

2026/9/26 3:56:37 阅读更多 →
为什么Apple Mobile Drivers Installer是最佳选择?揭秘Windows安装Apple驱动的3大官方痛点

为什么Apple Mobile Drivers Installer是最佳选择?揭秘Windows安装Apple驱动的3大官方痛点

为什么Apple Mobile Drivers Installer是最佳选择?揭秘Windows安装Apple驱动的3大官方痛点 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项…

2026/9/26 4:57:31 阅读更多 →

最新新闻

多功能在线报价系统源码解析:PHP+MySQL部署与二次开发实战指南

多功能在线报价系统源码解析:PHP+MySQL部署与二次开发实战指南

简介:一款基于ASP的多功能在线报价系统源码,面向中小企业、电商运营者及需要快速询报价的团队,用于在线生成产品报价单并管理商品、品牌、分类与后台账号,可替代手工Excel报价,减少沟通与改价成本,提升销售…

2026/9/26 4:57:25 阅读更多 →
CH32F USART驱动分层设计与V20x/V30x兼容实践

CH32F USART驱动分层设计与V20x/V30x兼容实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 4:57:25 阅读更多 →
算力花在刀刃上:FeTS特征感知动态算力分配框架解析

算力花在刀刃上:FeTS特征感知动态算力分配框架解析

1. 为什么我们需要"把算力花在刀刃上"1.1 一个容易被忽略的事实:不同样本、不同特征的算力消耗差异极大先说一个我在实际项目里观察到的现象:同一套模型,处理同一批请求,有的样本跑得快、有的样本跑得慢,但系…

2026/9/26 4:57:25 阅读更多 →
编译原理中的正则表达式与正则定义:词法分析核心解析

编译原理中的正则表达式与正则定义:词法分析核心解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 4:57:25 阅读更多 →
JMeter安装失败原因:Java环境配置深度解析

JMeter安装失败原因:Java环境配置深度解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 4:57:25 阅读更多 →
Git Rebase底层逻辑与实战:提交历史重写、冲突解决与工作流优化

Git Rebase底层逻辑与实战:提交历史重写、冲突解决与工作流优化

做开发这些年,我见过太多人在提交历史上栽跟头。早上刚把分支推到远端,下午想同步 main 分支的最新代码,随手执行一次 merge,提交树立刻变成了一张密密麻麻的蜘蛛网。review 的人面对几十个提交节点根本分不清哪个提交对应哪个需求…

2026/9/26 4:56:25 阅读更多 →

日新闻

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、…

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →