À l'issue de cette section, vous aurez découvert :

Présentation des nouveautés sur la branche de ce TP

Pour ce TP, utilisez la branch 8_starting_monitoring :

git checkout 8_starting_monitoring

Sur cette branche, il y a maintenant :

Définir une sonde de monitoring sous forme de fonction Python

Dans le fichier formation_indus_ds_avancee/monitoring.py, créez une fonction monitor qui retournera la valeur de
votre choix à monitorer.

Retourner un data frame avec deux colonnes :

Datetime

Une valeur aggrégée par run (exemple : moyenne)

Cette valeur sera enregistrée dans la DB PostgreSQL grâce à la fonction monitor_with_io associée à une tâche Airflow.

Tester

Mettre à jour le test unitaire dans tests/test_unit/test_monitoring.py pour qu'il soit vert.

Choisir la table dans la base de données

Spécifier la table PostgreSQL dans laquelle enregistrer les valeurs à monitorer

Dans le fichier dags/config.py, définir la constante MONITORING_TABLE_NAME avec un nom unique différent de celui des
autres participants. Cette table sera désormais alimentée par la tâche monitor d'Airflow.

Une fois cela fait, retirer du fichier .github/worflows/ci.yml la
ligne continue-on-error: true # Task is expected to fail (there is a test that trainee will fix" qui permettait
d'éviter à la CI de fail, même si vous n'avez pas fait cette modification.

Re-démarrer Airflow

Relancer Airflow et le DAG de prédiction

La tâche monitor devrait s'exécuter. Il nous faut désormais créer un dashboard de suivi des valeurs renvoyées par
notre fonction.

Nous souhaitons maintenant afficher nos valeurs monitorées dans Grafana à partir de la table PostgreSQL.

Nous allons ajouter une Data Source de type PostgreSQL et spécifier les paramètres suivants :

sdata-source-grafana

Il vous suffit de cliquer sur New dashboard > Add Query, et de spécifier la connexion et la table PostgreSQL
(personnelle) créées lors des étapes précédentes.