[Feature] Add Monitor page to Canopy
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Activo
- Stack tecnológico
- prometheus
- Área
- backend, documentation, frontend, observability, testing
Línea de trabajo
Empieza revisando docs/operation/observability/metrics.md y enumerando los endpoints HTTP y las métricas de BanyanDB para las secciones propuestas. Documenta el diseño y el enfoque para obtener los datos en canopy/docs/monitor-design.md; después, inspecciona la barra lateral existente de Canopy y las ubicaciones de las pruebas bajo canopy/e2e/. La tarea estará terminada cuando haya un plan acotado de diseño e implementación que cubra la ruta /monitor, los estados de carga y error, el comportamiento de actualización, la aplicación de roles y las pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Java
- Estrellas
- 25k
- Forks
- 6.6k
- Merge medio
- 12 h 28 min
- PR fusionados (30 d)
- 31
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/skywalking
-
database
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
apache/skywalking#14104 ·
Los mantenedores suelen responder en 1 día
-
[BanyanDB] Data/Schema Import and ExportQuizá libre de nuevo @mrproliu la tomó hace 28 días y no hay ningún pull request abierto. Abiertofeature
apache/skywalking#14102 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Feature] Store BanyanDB's own logs in BanyanDB (self-stored logs)Posiblemente ocupada @hanahmily la tomó hace 39 días. Abiertodatabase feature
apache/skywalking#14076 · 10 comentarios · 2 asignados ·
Los mantenedores suelen responder en 1 día
-
database
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
apache/skywalking#14070 ·
Los mantenedores suelen responder en 1 día
-
database
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
apache/skywalking#14069 ·
Los mantenedores suelen responder en 1 día
Todos los issues de apache/skywalking
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
navikt/mock-oauth2-server#1129 ·
Los mantenedores suelen responder en 1 día
-
[Blockly] historic state medianAbiertobug main ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
openhab/openhab-webui#4600 ·
Los mantenedores suelen responder en 4 días
-
`DeepSeekChatModel` streaming returns no content when chunks have no `id`Posiblemente ocupada @lejuho la tomó hoy. Abiertostatus: waiting-for-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
spring-projects/spring-ai#7214 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
QuiltMC/update-quilt-meta#28 ·
-
awaiting triage Documentation P3
Dificultad 1/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día