Introduction :
Création d’instances Compute Engine personnalisées, de mesures personnalisées et de séries temporelles personnalisées sur la plateforme Google Cloud à l’aide de Python, et création de tableaux de bord pour des mesures personnalisées à l’aide de Terraform.
Points clés :
- Créer une instance à l’aide de Python
- Créer des mesures personnalisées et des séries temporelles personnalisées à l’aide de Python
- Écrire des modèles pour des tableaux de bord pour des mesures personnalisées à l’aide de Terraform
- Voir les résultats dans le service Monitoring dans Tableaux de bord sur la plateforme Google Cloud
Prérequis
- Google Cloud
- Connaissances de Terraform
- Python
- Compte de facturation
- Activer l’API Monitoring
- API de compte de service
- Variables d’environnement
On doit disposer d’un projet cloud avec la facturation activée et les API de surveillance requises doivent être activées et authentifiées auprès de notre application avec un compte de service en configurant une variable d’environnement.
Surveillance dans le cloud et tableaux de bord
- La surveillance Cloud est également un service sur la plateforme Google Cloud et elle fournit l’analyse de différents types de mesures comme l’utilisation du CPU, l’utilisation du processeur, le trafic réseau, l’utilisation du disque et l’E/S du disque des machines virtuelles, etc. Elle affiche les résultats et les reflète sur les tableaux de bord avec des représentations graphiques telles que des graphiques linéaires, des graphiques de surface empilés, des graphiques à barres empilées et des cartes thermiques.
- La capture d’écran suivante est un exemple d’image d’un graphique linéaire :

Création de l’instance
Création de l’instance et configuration de la machine, c’est-à-dire la zone, le nom de l’image, le type d’image, etc., avec la fonction create_instance() en langage Python.
Cela précise le disque d’amorçage et l’interface réseau pour accéder à Internet public et permet à l’instance d’accéder au stockage en nuage et à la journalisation.

Ainsi, nous pouvons créer une instance sur la plateforme Google Cloud.

Créer des mesures personnalisées et des séries temporelles
Pour créer une mesure personnalisée, nous définissons un objet Descripteur de mesure qui précise diverses informations sur la mesure. Lorsque nous écrivons des données de mesures, Monitoring crée le descripteur de mesure en fonction de la structure des données que nous fournissons.
Création d’un descripteur de mesure
Déterminer la structure du descripteur de mesure
- Spécifiez le nom de la mesure, le nom d’affichage et le descripteur d’une mesure personnalisée. Le nom d’affichage est utilisé dans la console.
- Spécifiez le projet dans lequel la mesure personnalisée est définie. Si on souhaite utiliser ces mesures personnalisées dans différents projets, il faut les nommer de façon unique dans chaque projet.

- Configurez le type et le genre de la mesure, les étiquettes, types de valeur et descriptions des mesures.
- Lors de la création d’un objet descripteur de mesure, vous devez transmettre l’argument pour appeler la méthode metricDescriptors.create.

Séries temporelles
- Les mesures personnalisées n’écrivent des données que pour les types de mesures associées à des séries temporelles. Créez une méthode pour écrire les données, celle-ci vérifie si la série temporelle existe. Si une série temporelle est disponible, la méthode ajoute les données, sinon elle en crée de nouvelles. Les objets de séries temporelles sont identifiés par les valeurs de mesure et les champs de ressources.
- Chaque objet de la série temporelle contient seulement un objet :
- La définition du type de mesure s’applique à la valeur du point et à l’intervalle de temps. Consultez les informations sur les intervalles de temps pour différents types de mesures.
- L’intervalle de temps du point correspond à un instant dans la série temporelle.
- Le temps de fin de l’intervalle doit être inférieur à 25 h dans l’enregistrement précédent et à 5 min dans l’intervalle ultérieur.
- Indiquez l’ID de l’instance dans les étiquettes, qui a été créée précédemment.

Pour supprimer une mesure personnalisée, on supprime le descripteur de mesure, mais on ne peut pas supprimer les données des séries temporelles, qui restent stockées dans le projet Google Cloud. Les données du descripteur deviennent inaccessibles une fois le descripteur supprimé.
Terraform
Terraform est l’un des outils d’infrastructure comme code (IaC) les plus populaires qui vous permet de construire, modifier et versionner l’infrastructure de façon sécuritaire et efficace, utilisé par les équipes DevOps pour automatiser les tâches d’infrastructure.
Il sert aussi à automatiser le provisionnement de nos ressources cloud. Il s’agit d’un outil open-source développé par HashiCorp et écrit en langage GO sous forme de modèles (templates). À l’aide de ces modèles, nous pouvons créer une infrastructure pour toutes les ressources dont nous avons besoin.
Tableaux de bord et graphiques personnalisés
Les tableaux de bord personnalisés sont aussi des tableaux de bord, mais créés seulement pour nos mesures personnalisées. Ces tableaux de bord affichent les résultats d’information sur nos mesures personnalisées. Ils affichent le résultat qui se reflète sur les tableaux de bord sous forme graphique comme les graphiques linéaires, les graphiques de surface empilée, les graphiques à barres empilées et les cartes thermiques.
Création des tableaux de bord en utilisant le code Terraform et la conception du graphique linéaire doit être mentionnée dans le fichier .json. Ce fichier JSON indique aussi le chemin de notre mesure personnalisée et le nom de l’instance à la place du filtre comme suit.
"filter": "metric.type=\"custom.googleapis.com/ss_metric\" resource.type=\"gce_instance\"",
Écrivez le code pour la création de graphiques linéaires à l’aide du fichier dashboard.Json comme suit :

Modifiez le fichier main.tf pour créer des tableaux de bord
Dans ce fichier, le fournisseur est mentionné comme Google avec la version 4.11.0. sous la ressource indiquée, l’ID du projet et le fichier JSON du tableau de bord.

Exécutez nos fichiers à l’aide de commandes Terraform telles que
- terraform init
- terraform plan
- terraform apply
- Lorsque nous exécutons la commande terraform init , elle initialise le répertoire de travail
- Lorsque nous exécutons la commande terraform plan. Elle prévoit la création des ressources.
- Lorsque nous exécutons terraform apply, terraform déploie alors toutes les ressources nécessaires.
Sortie dans la console
La capture d’écran suivante montre le tableau de bord des mesures personnalisées sur des séries temporelles

Référence
Surveillance Cloud : Guide de démarrage rapide : Surveillez une machine virtuelle Compute Engine | Cloud Monitoring | Google Cloud
Tableaux de bord : https://cloud.google.com/monitoring/custom-metrics/creating-metrics
Terraform :https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/monitoring_dashboard

