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 la collecte et de l'analyse des 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, journaux, traces et autres données générées par vos applications et l'infrastructure de l'application qui fournissent des informations sur l'état et les performances de l'application.

Métriques
Les métriques sont des données numériques d'état ou de performances que vous mesurez à intervalles réguliers au fil du 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 des applications au fil du temps. Chaque journal est un ensemble d'entrées de journal horodatées. 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 le lien entre la modification d'un composant de votre application et l'activité d'un autre composant. Les traces peuvent aider à combler ce fossé.

Traces

Les traces représentent le chemin d'une requête entre les différentes parties de votre application distribuée. Une métrique ou une entrée de journal dans un composant d'application qui a déclenché une notification d'alerte peut être le 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 l'origine d'un problème.

Autres données

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, un libellé indiquant la gravité d'une alerte ou le numéro client associé à une requête dans les journaux fournissent 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 impliqués, souvent avec une combinaison de logiciels Open Source et commerciaux.

Les outils d'observabilité vous aident à appréhender cette complexité en collectant des données significatives et en fournissant des caractéristiques pour les explorer, les analyser et les mettre en corrélation. Un environnement observable vous permet de :

  • 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 des applications pendant le développement
  • Planifier et comprendre les impacts des modifications apportées à vos applications
  • Explorer les données pour découvrir de nouveaux insights

En bref, un environnement observable vous aide à maintenir la fiabilité de l'application. 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 à l'aide de tableaux de bord par défaut ou personnalisés.
  • Testez les performances de vos applications à l'aide de la surveillance synthétique.
  • 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, résoudre les problèmes et obtenir des insights sur vos applications.

  • Collectez automatiquement les journaux d'audit pour la plupart des services Google Cloud.
  • Collectez automatiquement les journaux d'audit pour la plupart des services Google Cloud.
  • Collectez 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 : affiche et analyse 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.
  • Recueillez des données de latence à partir de vos applications et affichez les graphiques de ces données.
  • Affichez les rapports sur la latence qui indiquent des dégradations des performances.
  • Recevez des alertes en cas de modifications 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 : analyse l'utilisation du processeur et de la mémoire pour vos applications afin d'identifier les opportunités d'amélioration des performances.

  • Collectez des données sur l'utilisation du processeur et l'allocation de mémoire à partir de vos applications.
  • Identifiez les parties d'une application qui consomment le plus de ressources et obtenez des informations 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 des 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, et vous configurez la collecte de données supplémentaires.
  • Les fonctions Cloud Run et App Engine génèrent automatiquement des métriques, des journaux et des traces.

Vous pouvez également représenter les métriques collectées dans un graphique Explorateur de métriques, afficher les journaux dans l'explorateur de journaux ou afficher les traces dans Trace. Pour examiner les données connexes, 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

Les VM Compute Engine ne collectent que les métriques système et les journaux de base par défaut 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 des 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é et la latence du service.
  • Surveiller des applications tierces telles que Postgres, MongoDB et Redis. Ces intégrations fournissent des tableaux de bord et des règles d'alerte préconfigurés.

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, les fonctions Cloud Run 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 :