Preserve tracing spans across spawns, instrument components, record missing metrics
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- rust
Línea de trabajo
Comienza con crates/core/src/scheduler.rs, wire.rs, los bucles de actores y layers/metrics.rs para mapear el comportamiento de spawn y span; después inspecciona crates/p2p/src/metrics.rs, crates/app/node/behaviour.rs y las comprobaciones de salud de la app. Se considera terminado cuando los spawns de producción preservan el contexto, las familias de métricas indicadas están conectadas o se han eliminado explícitamente, y las pruebas de resolución de topics cubren los fallbacks mencionados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
Spans. The workspace has 60 production tokio::spawn/spawn_blocking sites and exactly 2 .instrument(...) calls (zero Span::current()/in_current_span). Every uninstrumented spawn drops the span context — which is also the mechanism behind #588's topic="" problem, since log-topic labels are span fields: spans and topics are the same fix. #[tracing::instrument] appears 33 times, 22 of them in one file (validatorapi/component.rs); scheduler, fetcher, bcast, tracker, dutydb, parsigdb, aggsigdb, consensus/qbft, dkg, parsigex, and priority have none. Highest-value uninstrumented spawns: the scheduler's per-slot detached duty callbacks (scheduler.rs#L173-L184), the actor loops (tracker, aggsigdb, prioritiser), and the duty-workflow wiring in wire.rs.
Defined-but-never-recorded metrics (grep-verified, zero recording sites):
app_eth2_using_fallback— missing entirely, yet the health check that queries it already exists and can never fire. Lands with the eth2api multi-client(#611).p2p_peer_network_{sent,receive}_bytes_total— theBandwidthFactorymechanism exists but only the relay server wires it;Node::new(client path) has no bandwidth parameter (behaviour.rs#L98).p2p_peer_streams,p2p_relay_connections— declared inp2p/src/metrics.rs, recorded nowhere (Charon populates both inp2p.go).core_validatorapi_proxy_request_latency_seconds— the RAII recorder exists, no construction site.
Otherwise name-for-name parity with Charon's metric families is good; app_eth2_* request/error/latency coverage is opt-in per call site (~11 of 76 endpoints) and moves into the client wrapper.
Proposed change
- Add a spawn helper attaching
Span::current()(the #588 suggestion) and adopt it at the production spawn sites; set one root span per long-running component. - Add
#[tracing::instrument]to the duty-pipeline entry points (fetch/propose/participate/broadcast/store paths), withskips to keep fields bounded. - Wire the four dead metric families above (or delete any that are deliberately out of scope, with a note).
- While in
layers/metrics.rs, cover the topic-resolution layer with tests: theTopicVisitor::record_debugfallback and nearest-enclosing-span resolution are untested (only same-span level filtering is).
- Lenguaje dominante
- Rust
- Estrellas
- 8
- Forks
- 5
- Merge medio
- 3 d 1 h
- PR fusionados (30 d)
- 2
Preparar el entorno
- Incluye un Dockerfile o un 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 NethermindEth/pluto
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
NethermindEth/pluto#719 ·
-
enhancement rust
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
NethermindEth/pluto#640 ·
-
rust
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
NethermindEth/pluto#638 · 1 comentario ·
-
enhancement rust
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
NethermindEth/pluto#635 ·
-
Improve `alpha test peers`: match Charon's probes; reduce timeoutsPosiblemente ocupada @varex83agent la tomó hace 32 días. Abiertobug track:orchestration-cli
Dificultad 5/5 Más de una semana Aptitud para principiantes 28/100
NethermindEth/pluto#632 ·
Todos los issues de NethermindEth/pluto
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
longbridge/nsh#804 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
devex good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
calcit-lang/calcit#2538 ·
Los mantenedores suelen responder en 1 día