telemetría: guardar la versión de la app (fragmentación)

add_telemetry cuenta 'ver:<versión>' por envío (usa app_version, que la app ya
mandaba pero se ignoraba). El summary lo devuelve como una fila más; la app lo
agrupa aparte como distribución de versiones. Test actualizado.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Carlos Narro
2026-07-04 08:27:07 +02:00
parent d9f3e91aa8
commit f41ae0ffd7
2 changed files with 7 additions and 0 deletions

View File

@@ -308,6 +308,9 @@ def add_telemetry(body: TelemetryIn, db: Session = Depends(get_db)):
# Un envío = una instalación activa ese día que cede estadística. # Un envío = una instalación activa ese día que cede estadística.
add("__submissions__", active=1) add("__submissions__", active=1)
# Versión de la app (para ver la fragmentación): clave 'ver:<versión>'.
version = (body.app_version or "unknown").strip()[:16]
add(f"ver:{version}", active=1)
for m in (body.active_modules or [])[:40]: for m in (body.active_modules or [])[:40]:
add(m, active=1) add(m, active=1)
for m, c in (body.opens_by_module or {}).items(): for m, c in (body.opens_by_module or {}).items():

View File

@@ -46,6 +46,10 @@ def test_telemetria_agrega_y_resume():
# Una subsección de Aprende con tiempo, sin ser módulo activo. # Una subsección de Aprende con tiempo, sin ser módulo activo.
assert by_module["aprende:sueno"]["seconds"] == 45 assert by_module["aprende:sueno"]["seconds"] == 45
assert by_module["aprende:sueno"]["opens"] == 0 assert by_module["aprende:sueno"]["opens"] == 0
# Versión de la app (fragmentación): el primer envío fue 2.27.0, el segundo
# sin versión → 'unknown'.
assert by_module["ver:2.27.0"]["activeInstallDays"] == 1
assert by_module["ver:unknown"]["activeInstallDays"] == 1
# fasting: activo en 2 envíos, 0 aperturas. # fasting: activo en 2 envíos, 0 aperturas.
assert by_module["fasting"]["activeInstallDays"] == 2 assert by_module["fasting"]["activeInstallDays"] == 2
assert by_module["fasting"]["opens"] == 0 assert by_module["fasting"]["opens"] == 0