M2M: history — role-mix snapshots and infra-node health history

Abierto
#424 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
openapi
Área
analytics, api

Línea de trabajo

This depends on #421 and #423, so read those first and the existing StatsSnapshot collectors they build on. The work touches openapi-m2m.yaml, docs/features/packet-stats/, docs/RECENCY.md, the timeseries endpoint, and the DeviceMetrics source for the infra-node health route. Done means the new snapshot types and health endpoint exist, the backfill is idempotent, UTC bucket boundaries and m2m_opt_out are covered by tests, and the docs match.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

Part of pskillen/meshflow-api#416. Later phase; depends on #421 and #423.

Scope

  • Role-mix snapshots
    • New hourly StatsSnapshot types: nodes_by_role (Meshtastic) and mc_nodes_by_type (MeshCore). Global and per constellation, collected alongside online_nodes.
    • Add a backfill.
    • Expose via …/timeseries?metric=nodes_by_role, with a value dict per point.
  • Infra-node health history
    • GET /api/m2m/v1/meshtastic/infra-nodes/{id}/health?from=&to=&interval=hour|day, from DeviceMetrics.
    • Downsampled with UTC buckets (average battery, voltage, channel util, air util tx).
    • Range cap 31 days.
    • Respects m2m_opt_out.
  • MeshCore equivalent once MeshCore telemetry is ingested.

Docs and tests

  • openapi-m2m.yaml, docs/features/packet-stats/ (new snapshot types), docs/RECENCY.md.
  • Tests:
    • Collector correctness and idempotency.
    • Downsampling bucket boundaries in UTC.
    • Opt-out respected.
Lenguaje dominante
Python
Estrellas
1
Forks
0
Merge medio
23 h 9 min
PR fusionados (30 d)
15

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de pskillen/meshflow-api

Todos los issues de pskillen/meshflow-api

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.