Observabilité dans Google Cloud

L'observabilité Google Cloud 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 connexion des composants vous aide à anticiper, identifier et répondre plus rapidement et efficacement aux changements inattendus.

Ce document contient les informations suivantes:

À propos de l'observabilité

L'observabilité est une approche globale consistant à collecter et à analyser les 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. L'observabilité centrée sur l'application désigne les outils qui vous permettent de visualiser et d'analyser les données de télémétrie du point de vue d'une application.

Métriques
Les métriques sont des données numériques sur l'état ou les 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 d'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 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 d'informations fiables sur le lien entre un changement dans un composant de votre application et l'activité d'un autre composant. Les traces peuvent aider à combler cet écart.

Traces

Les traces représentent le chemin d'une requête dans les différentes parties de votre application distribuée. Une métrique ou une entrée de journal dans un composant d'application ayant 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 être difficiles, car de nombreux systèmes et composants logiciels sont impliqués, souvent avec un mélange de logiciels Open Source et commerciaux.

Les outils d'observabilité vous aident à gérer cette complexité en collectant des données pertinentes 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 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 l'impact 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 vos 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, à la fois à partir de vos applications et de l'infrastructure sous-jacente. Ces services 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 pour vos applications App Hub et des règles d'alerte préconfigurées.

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

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.

  • Consultez l'état de vos applications App Hub.
  • Collectez automatiquement les métriques pour la plupart des Google Cloud services.
  • 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.
  • Recevoir 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 pour la plupart des Google Cloud services.
  • 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 Log Analytics pour analyser vos journaux et d'autres données avec BigQuery. Par exemple, vous pouvez utiliser BigQuery pour comparer les URL de vos journaux à un ensemble de données public d'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 des graphiques de ces données.
  • Afficher les rapports sur la latence qui montrent les dégradations des performances
  • Recevoir des alertes en cas de modifications du profil de latence de vos applications
  • Exportez les traces vers BigQuery afin de pouvoir les explorer avec d'autres données.

Cloud Profiler: analysez l'utilisation du processeur et de la mémoire de vos applications afin d'identifier les possibilité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.

Commencer

Cette section décrit les étapes que vous pouvez 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.

Examiner 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 servicesGoogle Cloud compatibles sans configuration supplémentaire.

  • Certains Google Cloud services 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 ensemble des données associées, créez des tableaux de bord personnalisés. Par exemple, vous pouvez créer un tableau de bord qui inclut 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 des métriques et des 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 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 de vos ressources de 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 des services.
  • Surveillez les 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 :