[Feature] Add Monitor page to Canopy
维护者通常 1 天内回复
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 25/100
- Issue 类型
- 功能
- 描述清晰度
- 需要澄清
- 活跃度
- 活跃
- 技术栈
- prometheus
调研方向
首先查看 docs/operation/observability/metrics.md,并列出拟议各部分所需的 BanyanDB HTTP 端点和指标。在 canopy/docs/monitor-design.md 中记录布局和数据获取方式,然后检查现有的 Canopy 侧边栏以及 canopy/e2e/ 下的测试位置。完成标准是形成一份范围明确的设计与实现计划,涵盖 /monitor 路由、加载/错误状态、刷新行为、角色强制执行和测试。
由索引模型根据 Issue 内容生成。
描述
Summary
Introduce a Monitor page in the Canopy web console that surfaces BanyanDB cluster/runtime health, key metrics, and node status — giving operators a single place to observe the state of the database from the UI.
Motivation
Today Canopy focuses on schema CRUD and ad-hoc query (Groups, Streams, Measures, Traces, IndexRules, Properties, TopN pipelines). There is no dedicated surface for runtime/cluster observability. Operators currently have to rely on:
- raw BanyanDB HTTP endpoints,
- external Prometheus/Grafana dashboards,
- log scraping.
A first-class Monitor page in Canopy lowers the operational bar and complements the existing schema/query UI.
Goals
- A new top-level Monitor entry in the Canopy sidebar.
- Pulls data from BanyanDB's existing observability surface (HTTP API + Prometheus metrics where applicable).
- Renders key health signals and recent trends.
- Role-gated: available to
admin(and possiblyreadonly).
Scope (suggested sections — refine during design)
- Cluster overview — node list, liveness, role (liaison/data), version, uptime.
- Shard / group status — per-group shard health, replica state, hot-node distribution (reuses concepts from existing BYDB-Replica work).
- Storage metrics — disk usage per node/path, segment counts,
sidx/inverted-index sizes, write amplification (sourced fromdocs/operation/observability/metrics.md). - Query metrics — QPS, p50/p95/p99 latencies, error rate, slow-query top-N (mirrors the existing
banyandb_*metrics). - Recent events / alerts — last N warnings/errors from BanyanDB (if surfaced via API) and any active TopN pipeline anomalies.
- Trace pipeline status — if Trace Pipeline (per #13634) is enabled, surface its stage/throughput.
Tasks
- Research — enumerate the BanyanDB HTTP endpoints and metrics that can power each Monitor section; identify gaps that require new backend API.
- Design doc — proposed layout under
canopy/docs/monitor-design.md; data-fetching strategy (BFF proxy + caching vs. direct from SPA); refresh interval; empty/error/loading states. - PoC — implement the page shell with Cluster overview + Storage metrics end-to-end (server proxy + web page) using existing BanyanDB endpoints; stub the other sections behind a feature flag.
- Tests — Vitest tests for new BFF proxy routes; component tests for the page; e2e smoke under
canopy/e2e/. - Docs — update
canopy/README.md(sidebar change) and addcanopy/docs/monitor-design.md.
Acceptance Criteria
- New
/monitorroute accessible from the sidebar. - Cluster overview + storage metrics render real data from a running BanyanDB.
- Loading / empty / error states handled.
- Bounded refresh interval (default 10s, configurable).
- Role enforcement:
adminonly by default (configurable to allowreadonly). - Unit + e2e tests pass.
- Docs updated.
Out of Scope
- Custom alerting rules / notification channels.
- Long-term metrics storage (rely on Prometheus).
- Replacing the existing SkyWalking OAP observability dashboards — this page is a lightweight in-product view, not a Grafana replacement.
- 主要语言
- Java
- 星标
- 25k
- 派生
- 6.6k
- 平均合并
- 12 小时 28 分钟
- 30 天内合并 PR
- 31
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/skywalking 的其他 Issue
-
database
难度 4/5 3-5 天 新手友好度 45/100
apache/skywalking#14104 ·
维护者通常 1 天内回复
-
[BanyanDB] Data/Schema Import and Export可能重新可做 @mrproliu 于 29 天前认领,目前没有进行中的 PR。 未关闭feature
apache/skywalking#14102 · 已指派 1 人 ·
维护者通常 1 天内回复
-
[Feature] Store BanyanDB's own logs in BanyanDB (self-stored logs)可能已有人在做 @hanahmily 于 40 天前认领。 未关闭database feature
apache/skywalking#14076 · 10 条评论 · 已指派 2 人 ·
维护者通常 1 天内回复
-
database
难度 5/5 一周以上 新手友好度 25/100
apache/skywalking#14070 ·
维护者通常 1 天内回复
-
database
难度 5/5 一周以上 新手友好度 20/100
apache/skywalking#14069 ·
维护者通常 1 天内回复
查看 apache/skywalking 的全部 Issue
相似的 Issue
-
human-required sync-failed
难度 2/5 1-3 小时 新手友好度 68/100
Azure/osdu-spi-file#63 ·
维护者通常 1 天内回复
-
frontend quick win
难度 2/5 1-3 小时 新手友好度 65/100
CodeForPhilly/benefit-decision-toolkit#571 ·
维护者通常 1 天内回复
-
approved
难度 2/5 1-3 小时 新手友好度 67/100
checkstyle/checkstyle#22129 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
Add Hardcharger JDBC driver可能已有人在做 @prmoore77 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复