Aller au contenu principal

Phase 9 : Conception de la stratégie d'observabilité

Dans cette phase, vous concevez des stratégies d'observabilité et de monitoring pour garantir l'excellence opérationnelle et la résolution proactive des problèmes.

Databricks offre des capacités d’observabilité intégrées pour le monitoring des opérations de la plateforme, la performance des charges de travail, la qualité des données et le service de modèles. Concevez votre stratégie d’observabilité pour équilibrer les insights opérationnels avec les coûts et la complexité du monitoring.

Concevoir une stratégie de tables système

Les tables système sont un stockage analytique hébergé par Databricks des données opérationnelles de votre compte. Ils offrent une observabilité historique sur l'ensemble de votre compte en matière d'utilisation, de performances, de coûts, de sécurité et de monitoring de la conformité.

Fonctionnalités des tables système

  • Facturation et utilisation : Surveillez les coûts, la consommation de DBU et les modèles d'utilisation dans les workspaces.
  • Audit Logs : Suivez les activités du Workspace, les modèles d'accès et les événements de conformité.
  • Historique des query : analysez les performances des query, les modèles d'exécution et les opportunités d'optimisation.
  • Exécutions de Job : surveillez l'historique d'exécution des Jobs, les taux de réussite et les modèles d'échec.
  • Data lineage : Suivez les dépendances de données et comprenez l'impact des changements de schéma.
  • Événements de cluster : Surveiller la création, la fermeture et l'utilisation des ressources des clusters.

Cas d'utilisation des tables système

  • Optimisation des coûts : identifiez les queries coûteuses, les clusters sous-utilisés et les opportunités de réduire les coûts.
  • **Monitoring de la sécurité** : auditez les modèles d'accès, identifiez les anomalies et faites respecter la conformité.
  • Analyse des performances : analysez les modèles de query, identifiez les goulets d'étranglement et optimisez les charges de travail.
  • Planification de la capacité : Prévoyez les besoins en ressources en fonction des tendances d'utilisation historiques.
  • Gouvernance des données : suivez le data lineage, surveillez les modèles d'accès et assurez la conformité.

Bonnes pratiques pour les tables système

  • Activer les tables système pour tous les metastores afin de capturer des données d'utilisation complètes.
  • Créez des tableaux de bord et des alertes basés sur les tables système pour un monitoring proactif.
  • Interrogez régulièrement les tables système pour identifier les opportunités d'optimisation.
  • Combinez les tables système avec les logs d’audit pour des rapports de gouvernance complets.
  • Documentez les métriques clés et les thresholds pour le monitoring opérationnel.
  • Utilisez les tables système pour identifier les Ressources inutilisées et réduire les coûts.

Exemples de requêtes de monitoring

  • Top 10 des queries les plus coûteuses par coût de cluster.
  • Jobs ayant échoué par workspace et par utilisateur.
  • clusters inutilisés s’exécutant pendant plus de 24 heures.
  • Tables et volumes les plus fréquemment consultés.
  • Data lineage pour les tables de production critiques.

Pour une documentation complète sur les tables système et des exemples de query, consultez la référence des tables système.

Concevoir une stratégie de Job et de monitoring de pipeline

Surveillez l'exécution des jobs et des pipelines pour vous assurer que les pipelines de données s'exécutent correctement et pour identifier rapidement les échecs. Concevez votre stratégie de monitoring en fonction de la criticité de la charge de travail, des SLA et des exigences opérationnelles.

Modèles de monitoring des Jobs

  • Alertes en temps réel : configurez les notifications par e-mail ou les webhooks pour les échecs de Job critiques.
  • Analyse des tendances : Utilisez la page Workflow et Monitoring des pipelines pour suivre l'historique d'exécution des Jobs et identifier les modèles.
  • Détection d'anomalies : configurez des alertes SQL pour surveiller les anomalies de durée des Job ou les échecs répétés.
  • SLA monitoring : Définissez des SLA pour les Jobs critiques et alertez lorsque les Jobs dépassent les temps d'exécution prévus.
  • Suivi des dépendances : surveillez les dépendances de Job et les défaillances en amont qui affectent les charges de travail en aval.

Considérations relatives au monitoring des pipelines

  • Observabilité des **Lakeflow Pipelines** : surveillez l'état d'exécution des pipelines, les attentes en matière de qualité des données et la traçabilité.
  • Traitement incrémentiel : Suivre les informations de point de contrôle et les métriques de traitement incrémentiel.
  • **Actualité des données** : Surveiller la latence du pipeline et s'assurer que les données arrivent dans les fenêtres de SLA.
  • **Gestion des erreurs** : Concevez des stratégies de nouvelle tentative et des files d'attente de messages non distribuables pour les enregistrements ayant échoué.

Bonnes pratiques pour le monitoring des Jobs

  • Configurez les notifications par e-mail ou les webhooks pour les défaillances critiques de Job.
  • Surveillez les Job à l'aide des tables système (system.workflow.job_runs, system.workflow.task_runs).
  • Configurez des alertes SQL pour surveiller les anomalies de durée des jobs ou les échecs répétés.
  • Définissez les SLA pour les Jobs critiques en fonction des exigences métier.
  • Mettre en œuvre l’automatisation des runbooks pour les scénarios d’échec courants.
  • Examinez régulièrement les tendances de performances des Jobs et optimisez les Jobs à exécution lente.

Pour une configuration détaillée du monitoring des tâches, consultez Monitor Lakeflow Jobs.

Pour l'observabilité des Lakeflow pipelines, consultez Superviser les pipelines.

Concevoir une stratégie de monitoring des performances Spark

Surveillez les performances des Spark Jobs pour identifier les goulots d'étranglement tels que l'asymétrie, le spill, les tâches de longue durée et les problèmes de mémoire ou d'E/S. Concevez votre approche de monitoring Spark en fonction du type de compute et des exigences de performance.

Profil de query pour les Serverless et SQL Warehouse

Pour les Serverless compute et les SQL Warehouses, utilisez le profil de query pour analyser et optimiser les performances des query. Le profil de query fournit des plans d'exécution détaillés, des métriques au niveau des étapes et des recommandations d'optimisation.

Capacités du profil de query

  • Visualisez les plans d'exécution de query avec des métriques au niveau de l'étape.
  • Identifiez les opérations coûteuses (par exemple, les tris, les jointures, les agrégations).
  • Analysez l'asymétrie des données et le déséquilibre des partitions.
  • Passez en revue les recommandations d'optimisation de l'optimiseur de query.
  • Comparez les performances de la query d'une exécution à l'autre.

Bonnes pratiques pour le profil de query

  • Examiner le profil de query pour les queries lentes afin d'identifier les opportunités d'optimisation.
  • Concentrez-vous sur les étapes avec un temps d'exécution élevé ou un décalage des données.
  • Implémentez les optimisations suggérées telles que l'élagage des partitions et les jointures de diffusion.
  • Surveiller les performances des requêtes après optimisation pour mesurer l'amélioration.

Spark UI pour le compute classique

Pour les clusters compute classiques, utilisez l'interface utilisateur Spark UI pour identifier les goulets d'étranglement de performance et les contraintes de ressources. La Spark UI fournit des métriques détaillées sur les exécuteurs, les étapes, les tâches et le stockage.

Capacités de Spark UI

  • Surveiller le temps d'exécution des étapes et la distribution des tâches.
  • Identifier les biais de données en analysant la variance de la durée des tâches.
  • Suivez l'utilisation de la mémoire et les métriques de spill.
  • Examinez les métriques de l'exécuteur (par exemple, CPU, mémoire, E/S disque).
  • Analyser les schémas de lecture/écriture aléatoires.

Bonnes pratiques pour la Spark UI

  • Activez la livraison des Logs de clusters vers le stockage cloud pour une rétention des Logs à long terme.
  • Surveillez les métriques de clusters (par exemple, CPU, mémoire, E/S disque) pour identifier les contraintes de ressources.
  • Passez en revue les logs d'événements Spark pour résoudre les problèmes de jobs lents et optimiser les configurations.
  • Concentrez-vous sur les étapes avec un brassage ou un déversement (spill) élevé pour réduire la pression de la mémoire.
  • Optimisez les tailles de partition pour réduire le déséquilibre des tâches.

Pour la documentation du profil de query, consultez Query profile.

Pour obtenir un guide de dépannage de la Spark UI, consultez Vue d'ensemble d'Apache Spark.

Concevoir une stratégie de monitoring de la qualité des données

Le monitoring de la qualité des données garantit que les tables de production respectent les normes de qualité et identifie la data drift au fil du temps. Concevez votre stratégie de monitoring de la qualité des données basée sur la criticité des tables, les exigences de fraîcheur des données et les besoins en matière de conformité réglementaire.

Capacités de Lakehouse Monitoring

  • **Moniteurs de séries temporelles** : suivent les métriques de qualité des données sur des fenêtres temporelles pour les tables avec des données temporelles.
  • Moniteurs d’instantanés : calculent les mesures de qualité des données sur toutes les données à un instant donné.
  • **Profilage statistique** : Surveillez les statistiques de colonnes (par exemple, min, max, moyenne, écart-type, nombre de valeurs nulles).
  • Détection du drift des données : identifier les changements dans les distributions de données au fil du temps.
  • Détection d'anomalies : Alerte sur les changements inattendus dans les métriques de qualité des données.

Modèles de monitoring de la qualité des données

  • Monitoring de la couche Gold : Créez des moniteurs pour toutes les tables de la couche Gold critiques pour l'entreprise.
  • Validation de la couche Silver : surveiller les tables de la couche Silver pour la conformité du schéma et la qualité des données.
  • Vérifications de la couche Bronze : Validez l'exhaustivité de l'ingestion des données et la conformité du format.
  • Alertes en temps réel : configurez des alertes pour les violations de qualité des données ou les anomalies.
  • Monitoring de la fraîcheur des données : Surveillez la latence du pipeline et assurez-vous que les données arrivent dans les délais du SLA.

Bonnes pratiques pour le monitoring de la qualité des données

  • Créez des outils de surveillance pour les tables de production critiques (en particulier les tables de la couche Gold).
  • Utilisez les moniteurs de séries temporelles pour les tables avec des données basées sur le temps afin de suivre les tendances de qualité.
  • Utilisez des moniteurs d'instantanés pour les tables sans dimensions temporelles.
  • Configurez des alertes pour les violations ou les anomalies de qualité des données.
  • Surveillez la fraîcheur des données pour vous assurer que les pipelines s'exécutent conformément au planning.
  • Documenter les seuils de qualité des données et les procédures d’escalade.

Pour la documentation complète de Lakehouse Monitoring, consultez Monitoring de la qualité des données.

Concevoir une stratégie de monitoring des modèles

Surveiller les modèles ML déployés pour suivre la performance, la santé et les métriques de requêtes. Concevez votre stratégie de monitoring de modèle en fonction de la criticité du modèle, des exigences de SLA et des besoins de conformité.

Capacités d'observabilité de Model Serving

  • Santé de l'Endpoint : surveiller la disponibilité et l'état de santé de l'Endpoint.
  • Métriques d'invocation : Suivez les nombres de requêtes, la latence et le throughput.
  • Tables d'inférence : Logs les prédictions et analysez le comportement du modèle au fil du temps.
  • Suivi des versions de modèles : Surveillez l'utilisation des versions de modèles et l'historique de déploiement.
  • Monitoring des erreurs : Suivre les taux d'erreur et les schémas de défaillance.

Modèles de monitoring de modèle

  • Alertes en temps réel : configurez des alertes pour les anomalies telles que la latence élevée ou les taux d'erreur.
  • Monitoring des SLA : définissez des SLA de latence et de disponibilité pour les modèles de production.
  • Analyse d'inférence : Utilisez des tables d'inférence pour analyser les distributions de prédiction et détecter la dérive (drift).
  • Tests A/B : Surveillez les performances des différentes versions de modèle pour valider les améliorations.
  • **Procédures de restauration** : Définissez des Trigger de restauration automatisés basés sur les threshold de performance.

Bonnes pratiques pour le monitoring des modèles.

  • Surveiller l'intégrité de l'endpoint et les métriques d'invocation pour identifier les problèmes de performance.
  • Suivez la latence et le throughput des requêtes pour assurer la conformité aux SLA.
  • Utilisez des tables d’inférence pour enregistrer les prédictions et analyser le comportement du modèle.
  • Configurez des alertes pour les anomalies telles qu'une latence élevée ou des taux d'erreur.
  • Surveiller l'utilisation de la version du modèle pour suivre les déploiements et les rollbacks.
  • Documenter les bases de référence de la performance des modèles et les thresholds acceptables.

Pour la documentation sur l'observabilité de Model Serving, consultez Surveiller la qualité du modèle et l'état de l'Endpoint.

Concevoir une stratégie d'intégration de Monitoring tiers

Intégrez Databricks à des solutions de monitoring externes pour une observabilité centralisée sur l'ensemble de votre infrastructure. Concevez votre stratégie d'intégration en fonction des outils de monitoring existants, des exigences opérationnelles et de l’expertise de l’équipe.

Modèles d'intégration tiers

  • Monitoring centralisé : Transférez les métriques et les logs Databricks vers des plateformes de monitoring centralisées.
  • Observabilité multi-cloud : utilisez des outils agnostiques du cloud pour surveiller Databricks sur plusieurs clouds.
  • **Tableaux de bord personnalisés** : Créez des tableaux de bord unifiés combinant les métriques Databricks et celles des systèmes externes.
  • Intégration des alertes : Acheminez les alertes Databricks via les systèmes de gestion des incidents existants.
  • Rapports de conformité : Agrégez les Logs pour les exigences de conformité et d'audit.

Options d’intégration

  • Datadog : Surveillez les métriques de cluster, les exécutions de jobs et les logs d’application avec l’intégration Datadog.

  • **Prometheus** : Exportez les métriques de cluster vers Prometheus pour la surveillance de séries temporelles et les alertes.

  • AWS CloudWatch : Transférez les Log du cluster et les métriques vers CloudWatch pour un monitoring centralisé.

  • AWS CloudTrail : Intégrez les Logs d'audit à CloudTrail pour le suivi de la conformité.

Bonnes pratiques pour les intégrations tierces

  • Utilisez les intégrations standard (par exemple, Datadog, Prometheus) lorsqu'elles sont disponibles.
  • Transférez les logs vers des plateformes de logging centralisées pour une conservation à long terme.
  • Corrélez les métriques Databricks avec les métriques d'infrastructure pour l'analyse des causes racines.
  • Mettez en œuvre un taggage cohérent entre Databricks et les systèmes externes.
  • Testez l'acheminement des alertes et les procédures d'escalade régulièrement.

Recommandations en matière d'observabilité

Recommandations

  • Activer les tables système pour tous les metastores afin de capturer des données d'utilisation complètes.
  • Créez des tableaux de bord basés sur les tables système pour le monitoring des coûts, des performances et de la sécurité.
  • Configurez le monitoring des Jobs et des pipelines avec des alertes pour les pannes critiques.
  • Activez le monitoring Spark (profil de query, Spark UI) pour le dépannage des performances.
  • Créez Lakehouse Monitoring pour les tables de production critiques (couche Gold).
  • Surveiller les endpoints de service de modèle pour la latence, le throughput et les taux d'erreur.
  • Intégrez des solutions de monitoring tierces pour une observabilité centralisée.
  • Définissez les SLA et les threshold d’alerte pour les charges de travail critiques.
  • Documenter les runbooks pour les scénarios opérationnels courants.

Evaluer en fonction des exigences

  • Équilibrez la granularité du monitoring avec les frais généraux opérationnels et les coûts.
  • N’envisagez les intégrations tierces que si un monitoring centralisé est requis.
  • Évaluez l'alerte en temps réel par rapport au monitoring par batch en fonction des exigences de SLA.
  • Prenez en compte les coûts de monitoring de la qualité des données (par exemple, le stockage, le compute) pour les grandes tables.
  • Testez la fatigue des alertes en commençant par des thresholds conservateurs et en les affinant au fil du temps.

Résultats de la phase 9

Après avoir terminé la phase 9, vous devriez avoir :

  • Stratégie de tables système définie avec des queries et des tableaux de bord de monitoring clés.
  • monitoring des Job et des pipeline configurée avec des alertes pour les défaillances critiques.
  • Approche de monitoring des performances Spark conçue (profil de query, Spark UI).
  • Stratégie de monitoring de la qualité des données définie avec Lakehouse Monitoring pour les tables critiques.
  • Stratégie de monitoring de modèles conçue pour les Endpoint ML.
  • Approche d'intégration du monitoring tiers définie (si applicable).
  • Les SLA et les threshold d'alerte documentés pour les charges de travail critiques.
  • Guides opérationnels créés pour les scénarios de monitoring courants.

**Phase suivante** : Phase 10 : Conception de la haute disponibilité et de la reprise après sinistre

Conseils de mise en œuvre : Pour des instructions étape par étape sur la mise en œuvre de votre stratégie d'observabilité, consultez la référence des tables système et Surveiller les Lakeflow Jobs.