[2.8] Firmware adoption daily stat (FW-2)

未关闭
#493 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
52/100
Issue 类型
功能
描述清晰度
描述清楚
活跃度
活跃
技术栈
openapi, python
领域
backend, data

调研方向

Start with the existing collect_stats_snapshots task and the GET /api/stats/snapshots/ implementation to trace how daily snapshots are collected and served. Check how ObservedNode and MtRawPacket provide the seven-day population and backfill data; the issue notes that first_reported_time is unindexed and requires one scan for the 90-day backfill. Done means an idempotent daily node_firmware snapshot, a dry-run backfill, updates in both openapi.yaml enum locations, and updated feature docs.

由索引模型根据 Issue 内容生成。

描述

enhancement meshtastic-2.8

Part of pskillen/meshflow-api#437 (Meshtastic 2.8.x support). Code: FW-2 · Priority: Should · Size: M

Summary

Record firmware adoption over time as a daily stats snapshot, served by the existing GET /api/stats/snapshots/ (no new endpoint).

{"count": 412, "window_hours": 168, "by_type": {"2.7": 300, "2.8": 40, "unknown": 72}, "by_basis": {"key_identity": 320, "predicted_id": 6, "reported": 14, "none": 72}}
  • stat_type = "node_firmware", global only for v1, written once a day from the existing collect_stats_snapshots task (no new periodic task).
  • Population: Meshtastic ObservedNode heard in the last 7 days. Shorter windows bias against 2.8, which is quiet by default.
  • by_type keys are open: a new generation appears without an API change. unknown is its own key.
  • An upgrading node counts as two rows for up to 7 days. Accepted; it heals itself.

Acceptance criteria

  • Daily snapshot written, idempotent per day
  • Backfill for the last 90 days with a dry-run, using one scan of MtRawPacket (first_reported_time is unindexed)
  • stat_type added in both openapi.yaml enum locations
  • Feature docs updated

Depends on: https://github.com/pskillen/meshflow-api/issues/492

主要语言
Python
星标
1
派生
0
平均合并
19 小时 37 分钟
30 天内合并 PR
18

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 有 Pull Request 模板
  • 没有贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

pskillen/meshflow-api 的其他 Issue

查看 pskillen/meshflow-api 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。