Problèmes de surveillance du pipeline de données et comment je les ai résolus

Depuis quelques années, je fais de l'ingénierie des données : je construis des pipelines de différents niveaux de complexité, extrait les données dont l'entreprise a besoin, les transforme et sauvegarde, en général, je construis des ETL classiques.





Dans ce cas, des problèmes peuvent être attendus de n'importe où et à chaque étape : la source de données est couchée, les données sont tombées en panne, la source a changé le format des données ou y a accès sans déclarer la guerre, le stockage est terne, les données sont soudainement devenues moins ou plus et bien d'autres plaisirs.





Pour comprendre comment surveiller tout cela, découvrons qui travaille généralement avec les données que nous avons extraites avec une telle difficulté :





Les affaires sont toutes ces personnes qui ne sont pas particulièrement douées pour l'ingénierie, mais prennent des décisions importantes sur la base des données que nous avons obtenues : augmenter les coûts de publicité, comment augmenter rapidement la taille de l'audience pour déployer une mise à jour, comment fonctionnent les différents partenaires, etc. .





Les techniciens sont nous des ingénieurs, on peut mettre la main dans les logs, affiner la logique, faire en sorte que rien ne tombe sans urgence.





Code - le prochain pipeline de la chaîne est lancé, des transformations se produisent, des graphiques sont tracés, etc.





Les pipelines de date peuvent différer légèrement du backend classique - si l'un des pipelines tombe en panne, cela ne signifie pas que tout va mal et que vous devez l'exécuter immédiatement, les données peuvent rester pertinentes pendant un certain temps. Vous direz ici que le backend peut également planter avec succès en partie, c'est comme ça, mais dans ce contexte je considère le backend et le pipeline de données comme une seule entité logique, et non un ensemble de microservices et de bases de données en double avec réplications.





Voici quelques exemples:





  • Le pipeline fonctionne toutes les 10 minutes et les utilisateurs consultent les rapports en moyenne une fois par heure. La chute d'un des jobs n'est pas critique, et si la source de données est en veille, vous ne pouvez toujours rien y faire.





  • , API ( Apple), , , . , , , , , - - , .





  • - - , : - , , .





ETL tel qu'il est
ETL

, Airflow , , , .. , ...





:





  • Airflow ELK , , .





  • , , , , . , , .





  • , . , .. , , . , - (, ).





:





  1. , .





  2. , .





  3. , , , .





, , , , , , . , , , Sensorpad.





Voyez combien vous pouvez mesurer en obtenant de simples demandes de webhook.
, , .

?





: , , http- . , , .





, , , ( ):





  • 10 ?





  • ( , > 0, ) 15% ?





  • , 20 ?





  • ?





  • ?





    , , , .





, - , , - Nomadlist, - :





Tableau de bord de l'état des serveurs Sensorpad utilisant Sensorpad
Sensorpad Sensorpad

- , , .





-, , -, , . , , , , , .







:





  • ( , -);





  • , 25 ;





  • ( 53 - );





:





  • ;





  • ;





  • ;





, , , -, - .





?





  1. , , .





  2. - , :





    df -h |grep vda1 | awk  '{ print $5 }'| sed 's/.$//' | xargs -I '{}' curl -G "https://sensorpad.link/< ID>?value={}" > /dev/null 2>&1
          
          



  3. , : ( , , , , )





  4. , .





  5. .





  6. .





?





:





  • , 80% ;





  • cron-, cron- ;





  • chain-, , ;





l'essentiel dans notre métier est de ne pas compliquer les interfaces
-

, ( js) , , Curl :





La nourriture pour chien en action

- , .





Vous pouvez même choisir une icône

: , " ", "- ", " ", , - .





, , - : .





, . , True, . , - , .





Règles de surveillance de l'espace disque

, .





, : " Warning, 5 , 10 ".





:





?

. - . - cron jobs, , ( , , ):





  • Cron job, Airflow DAG ;





  • 20% ;





  • 2 ;





  • 1 (, );





  • 2 ( );





  • 20 ( 5, - ).





, , , .





- !

. sensorpad , , (, , ). : , , .





Quelques graphiques utiles et moins utiles
Quelques graphiques utiles et moins utiles

Je pense ajouter la possibilité de fouiller ces pages en utilisant un lien secret en dehors du compte, alors une telle page ne peut pas être utilisée pire que n'importe quelle page d'état.





Voici un concept. Que manque-t-il?






Sensorpad est un projet de week-end qui a été réalisé sur le temps libre du travail principal, sans une tonne d'investissement et même en une seule personne, c'est pourquoi l'avis de la communauté est si important pour moi : comment l'aimez-vous ? Que ajouter, quoi améliorer, s'il faut continuer à se développer ?





Poke-le en direct, en même temps, découvre à quoi ressemble ma mère en tant que designer de page de destination : https://sensorpad.io








All Articles