Skip to content

Yml metrics

Yohan Boniface requested to merge yml-metrics into main

Profité d'une petite insomnie pour exprimer avec du code ce que j'ai du mal à exprimer avec des mots, même en y mettant toute ma science de bougeur de mains de la Botte!

En gros, j'ai testé de basculer tous les indicateurs de qpv.py en yaml.

De mon point de vue, l'exercice est concluant, et c'est la voie que j'aimerais suivre.

Bien sûr, là, c'est une preuve de concept, et il faudrait affiner beaucoup de choses si on décide d'y aller.

Quelques commentaires:

  • en l'état, un indicateur est lié à un dataset "maître" (qui décide notamment du nom final), auquel on peut joindre autant d'autres datasets qu'on veut; j'aimerais rendre plus horizontal ces dépendances
  • dans les noms des clés, je me suis pas mal mélangé les pinceaux entre sémantique et mots-clés SQL; je pense qu'il faudrait tout exprimer en termes sémantiques, et utiliser les mots-clés SQL quand ils sont explicitement utilisés en tant que tel
  • j'ai bricolé pour extrapoler une indicateur pour la maille département et un pour la maille région, pour rentrer dans le modèle actuel, mais je pense que cette notion de maille gagnerait à être précisée à la consommation (même si ça reste à prouver)
  • tous les indicateurs qui ont method: raw (quel nommage!) sont en fait des bêtes requêtes SQL qui renvoient des lignes; tous les autres indicateurs ne renvoient d'une valeur; dans l'idéal un seul indicateur devrait pouvoir renvoyer aussi bien une valeur aggrégée que le détail des valeurs, mais ça demande de changer la façon dont on consomme un indicateur, donc c'est pas pour maintenant
  • on peut valider les SQL au chargement, ce qui est assez pratique et limite les blagues au runtime (mais pas sûr que ça tienne longtemps si on construit plus tard une partie de la requête dynamiquement justement à la requête)
  • j'ai pas géré la notion d'order by
  • en l'état, les indicateurs ont un identifiant du type "dataset__metric", c'est pas très satisfaisant, et j'aimerais mieux pouvoir faire "dataset.metric" pour notamment pouvoir lister les metrics d'un namespace (et il faudrait sûrement découpler l'id du groupe d'indicateurs du dataset lui-même, cf point 1)
  • au passage, je pense que les fiches sont cassées en prod (au moins sur le main), parce que j'ai dû corriger des trucs non liés à mes changements

Merge request reports