Pour ce TP, utilisez la branch 8_starting_monitoring :
git checkout 8_starting_monitoring
Sur cette branche, il y a maintenant :
formation_indus_ds_avancee/monitoring.py
qui contient 2 fonctions monitor_with_io
et monitor
tests/test_unit/test_monitoring.py
qui teste la fonction monitor_with_io
dags/predict.py
qui exécute le monitoring.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.
Mettre à jour le test unitaire dans tests/test_unit/test_monitoring.py
pour qu'il soit vert.
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.
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.
https://lab.aws.octo.training/grafana
et se connecter avec l'identifiant admin
et leNous allons ajouter une Data Source de type PostgreSQL et spécifier les paramètres suivants :
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.