OpenCensus est un projet Open Source gratuit bibliothèques:
- fournir une assistance neutre du fournisseur pour la collecte des données de métriques et de trace ; en plusieurs langues.
- Possibilité d'exporter les données collectées vers diverses applications backend, y compris Cloud Monitoring à l'aide d'exportateurs.
Bien que Cloud Monitoring propose une API compatible avec la définition et permettant de collecter des métriques définies par l'utilisateur, il s'agit d'une API propriétaire de bas niveau. OpenCensus fournit une API qui suit le style et un exportateur qui envoie vos données de métriques Cloud Monitoring via l'API Monitoring pour vous.
OpenCensus offre également une bonne prise en charge du traçage des applications. Pour obtenir des informations générales à ce sujet, consultez la page relative au traçage dans OpenCensus. Cloud Trace recommande d'utiliser OpenCensus pour l'instrumentation de trace. Pour collecter des données de métriques et de trace à partir de vos services, procédez comme suit : vous pouvez utiliser une seule distribution de bibliothèques. Pour en savoir plus sur l'utilisation d'OpenCensus avec Cloud Trace, consultez la page Bibliothèques clientes pour Trace.
Avant de commencer
Pour utiliser Cloud Monitoring, vous devez disposer d'un projet Google Cloud pour lequel la facturation est activée. Si nécessaire, procédez comme suit:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Vérifiez que l'API Monitoring est activée. Pour en savoir plus, consultez la page Activer l'API Monitoring.
Pour les applications s'exécutant en dehors de Google Cloud, Le projet Google Cloud doit authentifier votre application. En règle générale, vous configurez l'authentification en créant un compte de service pour votre projet et en configurant une variable d'environnement.
Pour en savoir plus sur la création d'un compte de service, consultez la page Premiers pas avec l'authentification.
Installer OpenCensus
Pour utiliser les métriques collectées par OpenCensus dans votre projet Google Cloud, vous devez Mettre à disposition les bibliothèques de métriques OpenCensus et l'exportateur Stackdriver à votre application. L'exportateur Stackdriver exporte les métriques OpenCensus collecte des données dans votre projet Google Cloud. Vous pouvez ensuite utiliser Cloud Monitoring pour les représenter sous forme de graphique ou de surveillance.
Go
Pour vous authentifier auprès de Monitoring, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
L'utilisation d'OpenCensus nécessite Go version 1.11 ou ultérieure. Les dépendances sont gérées automatiquement à votre place.Java
Pour vous authentifier auprès de Monitoring, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Pour Maven, ajoutez le code suivant à l'élémentdependencies
de votre
Fichier pom.xml
:
Node.js
Pour vous authentifier auprès de Monitoring, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
- Avant d'installer les bibliothèques principales et d'exportateurs OpenCensus, assurez-vous d'avoir préparé votre environnement pour le développement Node.js.
- Le moyen le plus simple d'installer OpenCensus est d'utiliser npm :
npm install @opencensus/core npm install @opencensus/exporter-stackdriver
- Placez les instructions
require
indiquées ci-dessous en haut du point d'entrée ou du script principal de votre application, avant tout autre code :
Python
Pour vous authentifier auprès de Monitoring, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Installez les bibliothèques principales d'OpenCensus et celles de l'exportateur Stackdriver à l'aide de la commande la commande suivante:pip install -r opencensus/requirements.txt
Le fichier requirements.txt
se trouve dans le dépôt GitHub pour ces exemples.
python-docs-samples.
Écrire des métriques définies par l'utilisateur avec OpenCensus
Pour instrumenter votre code afin d'utiliser OpenCensus pour les métriques, vous devez étapes:
- Importez les statistiques OpenCensus et les packages OpenCensus de l'exportateur Stackdriver.
- Initialisez l'exportateur Stackdriver.
- Utiliser l'API OpenCensus pour instrumenter votre code
L'exemple suivant est un programme minimal qui écrit des données de métriques à l'aide de OpenCensus. Le programme exécute une boucle et collecte les mesures de latence. la boucle est terminée, les statistiques sont exportées vers Cloud Monitoring et le système se ferme:
Go
Pour vous authentifier auprès de Monitoring, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour vous authentifier auprès de Monitoring, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour vous authentifier auprès de Monitoring, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès de Monitoring, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Le programme crée une view (vue) OpenCensus.
qui s'appelle task_latency_distribution
. Cette chaîne fait partie du
le nom du
lors de son exportation vers Cloud Monitoring. Pour découvrir comment la view (vue) OpenCensus est réalisée en tant que descripteur de métrique Cloud Monitoring, consultez la section Récupérer des descripteurs de métrique.
Vous pouvez donc utiliser le nom de la view comme chaîne de recherche lors de la sélection d'une métrique à représenter graphiquement.
- </ph>
-
Dans la console Google Cloud, accédez à la page leaderboardExplorateur de métriques :
Accéder à l'explorateur de métriques
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.
- Dans l'élément Métrique, développez le menu Sélectionner une métrique, saisissez
OpenCensus/task_latency_distribution
dans la barre de filtre, puis utilisez les sous-menus pour sélectionner un type de ressource et des métriques spécifiques :- Dans le menu Ressources actives, sélectionnez la ressource surveillée. Si vous exécutez le programme dans un environnement local, puis sélectionnez Monde.
- Dans le menu Catégories de métriques actives, sélectionnez Personnalisée.
- Dans le menu Métriques actives, sélectionnez Répartition de la latence des tâches.
- Cliquez sur Appliquer.
La capture d'écran suivante montre les séries temporelles collectées après l'exécution de dans un environnement local:
Chaque barre de la carte de densité représente une seule exécution du programme. Les composants colorés de chaque barre représentent les buckets de la répartition de la latence.
Lire les métriques OpenCensus dans Cloud Monitoring
Vous utilisez des métriques définies par l'utilisateur, y compris celles écrites par OpenCensus, comme des métriques intégrées. Vous pouvez les représenter sous forme de graphique, et les surveiller.
Cette section explique comment utiliser l'explorateur d'API pour effectuer les opérations suivantes : pour lire les données de métriques. Pour en savoir plus sur la lecture des données de métrique à l'aide de l'API Cloud Monitoring ou à l'aide de bibliothèques clientes, consultez les documents suivants:
- Répertorier les types de métriques et de ressources : explique comment répertorier et examiner les types de ressources et de métriques de votre système.
- Découvrez comment récupérer les données de séries temporelles. comment récupérer des données de séries temporelles à partir de métriques à l'aide de API Monitoring.
Par exemple, la capture d'écran de la section précédente depuis l'Explorateur de métriques. Lorsque vous utilisez des outils de graphique, nous vous recommandons Utilisez le nom de la vue OpenCensus pour filtrer la liste des métriques. Pour en savoir plus, consultez Sélectionnez des métriques lorsque vous utilisez l'Explorateur de métriques.
Récupérer des descripteurs de métrique
Pour récupérer les données de métriques en utilisant directement l'API Monitoring,
vous devez connaître les noms
vers lequel les métriques OpenCensus ont été exportées. Vous pouvez déterminer ces noms
en récupérant les descripteurs de métrique créés par l'exportateur,
en examinant le champ type
. Pour en savoir plus sur les descripteurs de métrique, consultez la page MetricDescriptor
.
Pour afficher les descripteurs de métrique créés pour les métriques exportées, procédez comme suit:
- Accédez à la page de référence sur
metricDescriptors.list
. Dans le widget Essayer cette API de la page de référence, procédez comme suit : :
Saisissez le nom de votre projet dans le champ
name
. Utilisez le la structure de noms suivanteprojects/PROJECT_ID
. Ce document utilise un projet portant l'IDa-gcp-project
.Saisissez un filtre dans le champ
filter
. Il existe de nombreuses métriques de descripteurs dans un projet. Le filtrage vous permet de les éliminer les descripteurs qui ne présentent pas d'intérêt.Par exemple, comme le nom de la vue OpenCensus devient une partie nom de la métrique, vous pouvez ajouter un filtre comme celui-ci:
metric.type=has_substring("task_latency_distribution")
La clé
metric.type
est un champ d'un type intégré à un de séries temporelles. Pour en savoir plus, consultez la pageTimeSeries
.Cliquez sur Exécuter.
Les lignes suivantes affichent le descripteur de métrique renvoyé :
{ "metricDescriptors": [ { "name": "projects/a-gcp-project/metricDescriptors/custom.googleapis.com/opencensus/task_latency_distribution", "labels": [ { "key": "opencensus_task", "description": "Opencensus task identifier" } ], "metricKind": "CUMULATIVE", "valueType": "DISTRIBUTION", "unit": "ms", "description": "The distribution of the task latencies", "displayName": "OpenCensus/task_latency_distribution", "type": "custom.googleapis.com/opencensus/task_latency_distribution" } ] }
Cette ligne du descripteur de métrique indique le nom du type de métrique dans Cloud Monitoring :
"type": "custom.googleapis.com/opencensus/task_latency_distribution"
Vous disposez désormais des informations nécessaires pour récupérer manuellement les données
associées au type de métrique. La valeur du champ type
est également
indiqué dans la console Google Cloud lorsque vous représentez la métrique sous forme de graphique.
Récupérer des données de métriques
Pour récupérer manuellement des données de séries temporelles à partir d'un type de métrique, procédez comme suit:
- Accédez à la page de référence sur
timeSeries.list
. Dans le widget Essayer cette API de la page de référence, procédez comme suit : :
- Saisissez le nom de votre projet dans le champ
name
. Utilisez le la structure de noms suivanteprojects/PROJECT_ID
. Dans le champ
filter
, saisissez la valeur suivante :metric.type="custom.googleapis.com/opencensus/task_latency_distribution"
Renseignez les champs
interval.startTime
etinterval.endTime
. Ces valeurs doivent être saisies sous forme de code temporel (par exemple,2018-10-11T15:48:38-04:00
Assurez-vous que la valeurstartTime
est antérieure que la valeurendTime
.Cliquez sur le bouton Exécuter.
- Saisissez le nom de votre projet dans le champ
Les lignes suivantes affichent le résultat d'une récupération de ce type :
{ "timeSeries": [ { "metric": { "labels": { "opencensus_task": "java-3424@docbuild" }, "type": "custom.googleapis.com/opencensus/task_latency_distribution" }, "resource": { "type": "gce_instance", "labels": { "instance_id": "2455918024984027105", "zone": "us-east1-b", "project_id": "a-gcp-project" } }, "metricKind": "CUMULATIVE", "valueType": "DISTRIBUTION", "points": [ { "interval": { "startTime": "2019-04-04T17:49:34.163Z", "endTime": "2019-04-04T17:50:42.917Z" }, "value": { "distributionValue": { "count": "100", "mean": 2610.11, "sumOfSquaredDeviation": 206029821.78999996, "bucketOptions": { "explicitBuckets": { "bounds": [ 0, 100, 200, 400, 1000, 2000, 4000 ] } }, "bucketCounts": [ "0", "0", "1", "6", "13", "15", "44", "21" ] } } } ] }, [ ... data from additional program runs deleted ...] ] }
Les données de métriques renvoyées incluent les éléments suivants:
- Informations relatives à la ressource surveillée sur laquelle les données ont été collectées
OpenCensus peut détecter automatiquement les ressources surveillées
gce_instance
,k8s_container
etaws_ec2_instance
. Ces données provenaient d'un programme exécuté sur une instance de Compute Engine. Pour en savoir plus sur l'utilisation d'autres ressources surveillées, consultez la page Définir une ressource surveillée pour l'exportateur. - Description du type de métrique et du type des valeurs
- Les points de données réels collectés dans l'intervalle de temps demandé
Comment Monitoring représente les métriques OpenCensus
L'utilisation directe de l'API Cloud Monitoring pour les métriques définies par l'utilisateur est possible. son utilisation est décrite dans Créer des métriques définies par l'utilisateur avec l'API En fait, l'exportateur OpenCensus pour Cloud Monitoring utilise cette API pour vous. Cette section fournit des informations sur le fonctionnement de Cloud Monitoring qui représente les métriques écrites par OpenCensus.
Les constructions utilisées par l'API OpenCensus diffèrent de celles utilisées par Cloud Monitoring, tout comme l'utilisation de la terminologie. Lorsque Cloud Monitoring fait référence à des "métriques", OpenCensus fait parfois référence à des "stats" (statistiques). Par exemple, le composant OpenCensus qui envoie des données métriques à Cloud Monitoring est appelé "stats exporter for Stackdriver" (exportateur de stats pour Stackdriver).
Pour en savoir plus sur le modèle OpenCensus pour les métriques, consultez Métriques OpenCensus
Les modèles de données pour les stats OpenCensus et les métriques Stackdriver Monitoring n'affichent pas une correspondance parfaite. Bon nombre des mêmes concepts existent chez chacun, mais ils ne sont pas directement interchangeables.
Une view (vue) OpenCensus est analogue à la vue
MetricDescriptor
dans l'API Monitoring. Elle décrit la manière de collecter et d'agréger des "measurements" individuels. Balises sont incluses dans toutes les mesures enregistrées.Un tag (balise) OpenCensus est une paire clé/valeur, Une balise OpenCensus correspond généralement à
LabelDescriptor
dans l'API Monitoring. Les tags vous permettent de capturer des informations contextuelles que vous pouvez utiliser pour filtrer et regrouper les métriques.Une measure (type de mesure) OpenCensus décrit les données métriques à enregistrer. Une aggregation (agrégation) OpenCensus est une fonction appliquée aux données utilisées pour les résumer. Ces fonctions sont utilisées lors de l'exportation pour déterminer
MetricKind
,ValueType
et unité indiquées dans le descripteur de la métrique Cloud Monitoring.Un measurement (mesure) OpenCensus est un point de données collecté. Les measurements doivent être agrégées dans des views. Sinon, les measurements individuels sont supprimés. Une mesure OpenCensus est analogue à un
Point
dans l'API Monitoring. Lorsque les measurements sont agrégés dans des views, les données agrégées sont stockées en tant que view data (données de vue), à la manière d'une ressourceTimeSeries
dans l'API Monitoring.
Étape suivante
OpenCensus fournit la documentation de référence primaire pour son API relative aux métriques et pour l'exportateur Stackdriver. Le tableau suivant fournit des liens vers ces documents de référence :
Langage Documentation de référence sur les API Documentation sur l'exportateur Démarrage rapide Go API Go Stats and Trace Exporters (Exportateurs de statistiques et de traces) Métriques Java API Java Stats Exporter (Exportateur de statistiques) Métriques NodeJS API NodeJS Stats Exporter (Exportateur de statistiques) Métriques Python API Python Stats Exporter (Exportateur de statistiques) Métriques