Closed thbar closed 2 years ago
Une idée potentielle de vérification / checker, vérifier que le bucket Cellar transport-data-gouv-fr-on-demand-validation-prod
contient bien 0 objets, ou pas d'objets anciens.
@AntoineAugusti merci, ça fait partie des bons premiers candidats, je vais commencer ça en fin de semaine, top !
Regarder les flux GBFS où la validation n'a pas été effectuée, actuellement à null
. Ou envoyer une erreur dans Sentry.
select id, metadata->'validation'
from resource r
where format = 'gbfs' and r.metadata ? 'validation'
Pour l'instant j'ai l'impression qu'on arrive à s'en passer, on pourrait fermer et revisiter quand notre chariotte sera moins chargée, qu'en penses-tu @AntoineAugusti ?
@thbar Yep
Allez on ferme alors
Pas mal de jobs tournent actuellement, et dans certains cas, on sait qu'on va très probablement épuiser les "retries" (on voit cela apparaître dans le dashboard, et on voit aussi des redémarrages intempestifs #2087).
Une astuce qui va servir c'est de considérer que les jobs sont un "détail d'implémentation", et d'aller écrire des contre-vérifications, qui vérifient non pas comment le travail a été fait, mais que l'outcome est bien là.
Ralph Kimball (auteur classique en ETL, datawarehouse et modélisation dimensionnelle) appelle cela (voir The Data Warehouse ETL Toolkit: Practical Techniques for Extracting, Cleaning, Conforming, and Delivering Data) des "data screens".
On peut commencer assez simple, et écrire sous forme de tests
ExUnit
des assertions un peu globales pour vérifier l'état de ce qui est attendu et la réalité constatée.Utiliser un framework déjà existant permet de faciliter la création de nouveaux tests dans le futur.
Il faut faire attention à ne pas perturber la production avec ces screens, et ça passe généralement par un peu de prudence et l'écriture de tests performants, et dans un second temps ça peut passer par l'utilisation de systèmes secondaires (replicas), ou du "throttling".
On pourra mettre ça en place sous forme d'un module simple, qui pourra être déclenché depuis Oban de façon régulière, et nous permettra de faire un reporting dessus dans le temps.