Le tableau de bord écrase les valeurs nulles et tait la qualité de ce qu'il affiche #199
Labels
No labels
Compat/Breaking
EC01
EC02
EC03
EC04
EC05
EC06
Kind/BDD
Kind/Back
Kind/Bug
Kind/CICD
Kind/Cloud
Kind/Contenu
Kind/Data
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Front
Kind/IA
Kind/Infra
Kind/Monitoring
Kind/Security
Kind/Testing
Portée/Post-jury
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
ops/alerte
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
g2/enervision#199
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Exigence couverte
EF-04 · Produire une série exploitable par imputation, la valeur brute et la méthode restant lisibles à côté. EF-11 · vue du parc, vue d'un site, qualité.
Épreuve servie
EC05 · Data, ETL et BI
Charge estimée
une demi-journée
Ce qu'on veut obtenir
Sur le parc, sept sites sur sept affichent une consommation et une heure de relève. Mesuré à l'instant en production, sur les trois dernières heures et par site : environ 40 minutes nulles sur 106, autant de lignes
critical, une trentaine desuspect, une vingtaine d'imputed. Il ne reste qu'une vingtaine de minutes réellement propres par site, et l'écran n'en dit rien.Deux défauts distincts, tous deux dans
SQL_SITES(services/api/enervision_api/dashboard/repository.py).1. La requête saute la valeur nulle. La jointure latérale porte
and valeur_kw is not null. Quand la minute courante est une panne, l'écran remonte la dernière minute non nulle et l'estampille comme la dernière relève. SITE004 est dans ce cas en ce moment : sa ligne de 10:59 estcritical, la tuile montre 10:58. La panne est invisible, et c'est exactement le cas que l'API amont simule.2. La qualité de la valeur affichée n'est jamais rendue.
public.mesureporteindicateur_qualiteetmethode_imputationpar ligne, la zone argent les écrit correctement, et le contrat du tableau de bord ne les transporte pas. Cinq sites sur sept affichent en ce moment une valeursuspectcomme si elle était propre.L'EF-04 demande que « la valeur brute et la méthode restent lisibles à côté ». Elles le sont en base, de bout en bout, et se perdent à la dernière étape.
Le remède ne consiste pas à masquer les sites en panne : c'est la seconde façon de mentir. Il consiste à ne pas écraser le nul, et à donner à côté la dernière valeur connue, son heure, et la qualité de ce qui est affiché.
Critères d'acceptation
SQL_SITESprend la dernière ligne depublic.mesure, nulle comprise, et remonteindicateur_qualiteetmethode_imputationde cette ligneSiteEtatetSiteOutportentqualite,methode,derniere_valeur_connue_kwetderniere_valeur_connue_aconsommation_kw: nulletderniere_releveà l'heure vraie de cette minute nullesites_mesuressursites_totalsous le totalComment on le vérifie
tests/unit/api/test_repository_sites.py: un site dont la dernière ligne est nulle rendconsommation_kwnul,derniere_releveà l'heure de cette ligne, et la dernière valeur connue à l'heure précédente. Un site dont la dernière ligne estsuspectrendqualite: suspect.À la main sur
enervision_prod, avec la requête du corps du ticket : le site dont la dernière ligne estcriticaldoit rendre une consommation nulle et non celle de la minute d'avant.Hors périmètre
Les courbes (
serie_site,serie_parc) : elles lisentmesure_horaire, où une heure sans moyenne est une heure absente et non une panne d'une minute. À regarder séparément.Le rafraîchissement automatique de l'écran, qui est le #196.