Observabilité dans Google Cloud

Google Cloud Observability inclut des services d'observabilité qui vous aident à comprendre le comportement, l'état et les performances de vos applications. La visibilité sur le comportement des applications et la manière dont les composants sont connectés vous aide à anticiper, identifier et réagir plus rapidement et plus efficacement aux changements inattendus.

Ce document contient les informations suivantes:

À propos de l'observabilité

L'observabilité est une approche globale de collecte et d'analyse de données de télémétrie afin de comprendre l'état de votre environnement. Les données de télémétrie sont des métriques, des journaux, des traces et d'autres données générées par vos applications et l'infrastructure d'application qui fournissent des informations sur l'état et les performances des applications.

Métriques
Les métriques sont des données numériques sur l'état ou les performances que vous mesurez à intervalles réguliers dans le temps, telles que l'utilisation du processeur et la latence des requêtes. Les modifications inattendues apportées à une métrique peuvent indiquer un problème à examiner. Au fil du temps, vous pouvez également analyser les modèles de métriques pour mieux comprendre les modèles d'utilisation et anticiper les besoins en ressources.
Journaux

Un journal est un enregistrement généré de l'activité du système ou de l'application au fil du temps. Chaque journal est une collection d'entrées de journal horodatées et chaque entrée de journal décrit un événement à un moment précis.

Un journal contient souvent des informations enrichies et détaillées qui vous aident à comprendre ce qui s'est passé avec une partie spécifique de votre application. Toutefois, les journaux ne fournissent pas de bonnes informations sur la relation entre une modification d'un composant de votre application et une activité dans un autre composant. Les traces peuvent aider à combler ce fossé.

Traces

Les traces représentent le chemin d'une requête sur les parties de votre application distribuée. Une entrée de métrique ou de journal dans un composant d'application qui a déclenché une notification d'alerte peut être un symptôme d'un problème provenant d'un autre composant. Les traces vous permettent de suivre le flux d'une requête et d'examiner les données de latence pour vous aider à identifier la cause première d'un problème.

Other data

Vous pouvez obtenir des insights supplémentaires en analysant les métriques, les journaux et les traces dans le contexte d'autres données. Par exemple, une étiquette correspondant à la gravité d'une alerte ou au numéro client associé à une requête dans les journaux fournit un contexte utile pour le dépannage et le débogage.

La surveillance, le débogage et le dépannage des applications distribuées peuvent s'avérer difficiles, car de nombreux systèmes et composants logiciels sont souvent utilisés, souvent à l'aide d'une combinaison de logiciels Open Source et commerciaux.

Les outils d'observabilité vous aident à gérer cette complexité en collectant des données significatives et en fournissant des fonctionnalités permettant d'explorer, d'analyser et de mettre en corrélation les données. Un environnement observable vous permet d'effectuer les opérations suivantes:

  • Détecter les problèmes de manière proactive avant qu'ils n'affectent vos utilisateurs
  • Résoudre les problèmes connus et nouveaux
  • Déboguer les applications pendant le développement
  • Planifier et comprendre l'impact des modifications apportées à vos applications
  • Explorer les données pour découvrir de nouveaux insights

En résumé, un environnement observable vous aide à maintenir la fiabilité des applications. Une application est fiable lorsqu'elle répond à vos objectifs actuels de disponibilité et de résilience aux pannes.

Pour en savoir plus sur les pratiques de fiabilité, y compris les principes et les pratiques d'observabilité, consultez l'ouvrage Site Reliability Engineering: How Google Runs Production Systems. Les sujets suivants sont entre autres abordés :

Google Cloud Observability

Les services de Google Cloud Observability vous aident à collecter, analyser et mettre en corrélation des données de télémétrie. Ils fournissent également des valeurs par défaut intégrées pour vous aider à démarrer plus rapidement, telles que des tableaux de bord par défaut et des règles d'alerte.

Cloud Monitoring, Cloud Logging et Cloud Trace font partie des services activés par défaut lorsque vous créez un projet Google Cloud.

Surveillance : utilisez les métriques collectées pour surveiller l'état et les performances, identifier les tendances et les problèmes, et signaler les changements de comportement.

  • Collectez automatiquement les métriques pour la plupart des services Google Cloud
  • Collectez des métriques du système et des applications à partir d'applications tierces
  • Visualisez et analysez les métriques avec des tableaux de bord par défaut ou personnalisés.
  • Utilisez la surveillance synthétique pour tester les performances de vos applications.
  • Définissez des objectifs de niveau de service (SLO) pour surveiller la fiabilité du service.
  • Recevez des alertes en cas de problème.

Journalisation: utilisez les journaux collectés pour déboguer, dépanner et obtenir des insights sur vos applications.

  • Collecte automatique des journaux pour la plupart des services Google Cloud.
  • Collectez automatiquement les journaux d'audit pour la plupart des services Google Cloud.
  • Collecter des journaux à partir de logiciels tiers
  • Explorez et analysez les journaux.
  • Utilisez l'Analyse de journaux pour effectuer une analyse de vos journaux et d'autres données avec BigQuery. Par exemple, vous pouvez utiliser BigQuery pour comparer les URL de vos journaux avec un ensemble de données public contenant des URL malveillantes connues.
  • Créez des métriques à partir des journaux.
  • Recevez des alertes lorsqu'un message spécifié apparaît dans un journal.

Error Reporting: affichez et analysez les erreurs des services cloud en cours d'exécution:

  • Agrégez les erreurs détectées par Error Reporting dans les entrées de journal et affichez les journaux associés
  • Agrégez les erreurs que vos applications envoient à l'API Error Reporting

Trace: affichez et analysez le flux et la latence des requêtes d'application lors du débogage et du dépannage.

  • Suivez la propagation des requêtes dans vos applications.
  • Collectez des données de latence à partir de vos applications et affichez les graphiques des données.
  • Affichez les rapports sur la latence qui montrent les dégradations de performances.
  • Recevez des alertes en cas de modification du profil de latence de vos applications.
  • Annotez les traces avec des attributs personnalisés.
  • Exportez des traces vers BigQuery afin de pouvoir les explorer avec d'autres données.

Cloud Profiler: analysez l'utilisation de processeur et de mémoire de vos applications afin de pouvoir identifier les possibilités d'amélioration des performances.

  • Collectez des données d'utilisation du processeur et d'allocation de mémoire à partir de vos applications.
  • Identifiez les parties d'une application qui consomment le plus de ressources et obtenez des insights sur les performances globales de l'application.

Premiers pas

Cette section décrit les étapes à suivre pour vous familiariser avec les fonctionnalités d'observabilité dans Google Cloud.

Suivre les guides de démarrage rapide

Suivez les guides de démarrage rapide pour vous familiariser avec les services disponibles.

Consulter les données collectées automatiquement

La plupart des services Google Cloud génèrent automatiquement des métriques et des journaux prédéfinis. Cela signifie que vous pouvez commencer à examiner certaines données d'observabilité pour les services Google Cloud compatibles sans configuration supplémentaire.

  • Certains services Google Cloud tels que Google Kubernetes Engine (GKE), Compute Engine et Cloud SQL fournissent des tableaux de bord par défaut dans la console Google Cloud pour afficher les données d'observabilité dans le contexte du service.
  • Compute Engine, GKE et Cloud Run génèrent des métriques système et des journaux par défaut. Vous configurez des données supplémentaires.
  • Cloud Functions et App Engine génèrent automatiquement des métriques, des journaux et des traces.

Vous pouvez également représenter graphiquement les métriques collectées dans l'explorateur de métriques, afficher les journaux dans l'explorateur de journaux ou afficher les traces dans Trace. Pour examiner les données associées, créez des tableaux de bord personnalisés. Par exemple, vous pouvez créer un tableau de bord incluant des journaux, des métriques de performances et des règles d'alerte pour les machines virtuelles.

Configurer des VM Compute Engine pour collecter des données supplémentaires

Par défaut, les VM Compute Engine ne collectent que les métriques système et les journaux système de base sans l'agent Ops.

Installez l'agent Ops pour collecter des données de télémétrie supplémentaires (journaux, métriques et traces) à partir de vos instances et applications Compute Engine, à des fins de dépannage, de surveillance des performances et d'alerte.

Configurer des clusters GKE pour collecter des données supplémentaires

Par défaut, les clusters GKE envoient des journaux système et des métriques système à Logging et Monitoring. Google Cloud Managed Service pour Prometheus gère la collecte de métriques tierces et définies par l'utilisateur.

  • Utilisez des packages de métriques d'observabilité pour mieux comprendre l'état de vos applications et des ressources du cluster. Par exemple, les métriques du plan de contrôle sont utiles pour créer des SLO afin de surveiller la disponibilité du service et la latence.
  • Surveiller des applications tierces telles que Postgres, MongoDB et Redis. Ces intégrations fournissent des tableaux de bord préconfigurés et des règles d'alerte.

Configurer Cloud Run pour collecter des données personnalisées

Si vous disposez d'un service Cloud Run qui écrit des métriques Prometheus, vous pouvez utiliser le side-car Prometheus pour envoyer les métriques à Cloud Monitoring.

Si votre service Cloud Run écrit des métriques OTLP, vous pouvez utiliser un side-car OpenTelemetry. Pour obtenir un exemple, consultez le tutoriel sur la collecte de métriques OTLP à l'aide du side-car.

Instrumenter vos applications

L'instrumentation est le code que vous ajoutez à une application pour émettre des données de télémétrie. Plusieurs frameworks d'instrumentation Open Source vous permettent de collecter des métriques, des journaux et des traces à partir de votre application, et d'envoyer ces données à n'importe quel fournisseur, y compris Google Cloud. Cependant, vous n'aurez peut-être pas besoin d'instrumenter votre application. Par exemple, Cloud Run, Cloud Functions et App Engine fournissent un traçage automatique.

Pour instrumenter votre application, nous vous recommandons d'utiliser un framework d'instrumentation Open Source neutre du point du vue du fournisseur, tel qu'OpenTelemetry, plutôt que des API spécifiques aux fournisseurs et aux produits ou des bibliothèques clientes. Pour en savoir plus sur l'instrumentation de votre application, consultez la section Instrumentation et observabilité.

Pour obtenir des exemples de code montrant comment instrumenter votre application pour envoyer des données de télémétrie à Google Cloud, consultez les pages suivantes:

Vous pourriez également être intéressé par les sujets suivants :