GSP1027

Présentation
Le service Google Cloud Managed Service pour Prometheus facture le nombre d'échantillons ingérés dans Cloud Monitoring et les requêtes de lecture adressées à l'API Monitoring. Le nombre d'échantillons ingérés est le principal facteur de coût.
Dans cet atelier, vous allez découvrir les mécanismes de contrôle des coûts lorsque vous utilisez Managed Service pour Prometheus sur Google Cloud.
Objectifs
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Déployer Google Managed Prometheus (GMP) dans un cluster Google Kubernetes Engine (GKE) ainsi qu'une application Python
- Réduire le nombre de métriques de séries temporelles que vous envoyez au service géré en filtrant les données de métriques générées
- Réduire le nombre d'échantillons collectés en modifiant l'intervalle de scraping
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :
- Le bouton "Ouvrir la console Google Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Activer Cloud Shell
Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
Passez les fenêtres suivantes :
- Accédez à la fenêtre d'informations de Cloud Shell.
- Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET : . Le résultat contient une ligne qui déclare l'ID_PROJET pour cette session :
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Remarque : Pour consulter la documentation complète sur gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Déployer un cluster GKE
- Déployer un cluster GKE de base pour configurer l'atelier :
gcloud beta container clusters create gmp-cluster --num-nodes=1 --zone {{{project_0.default_zone|ZONE}}} --enable-managed-prometheus
gcloud container clusters get-credentials gmp-cluster --zone={{{project_0.default_zone|ZONE}}}
Tâche 2 : Déployer la collecte gérée
Configurer une ressource PodMonitoring
Le fichier manifeste suivant définit une ressource PodMonitoring, prom-example
, dans l'espace de noms gmp-test
. La ressource utilise un sélecteur d'étiquettes Kubernetes pour trouver tous les pods de l'espace de noms portant l'étiquette app
avec la valeur prom-example
. Les pods correspondants sont scrapés sur un port nommé metrics
, toutes les 30 secondes, sur le chemin HTTP /metrics
.
apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
namespace: gmp-system
name: collector
labels:
app.kubernetes.io/name: collector
app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
selector:
matchLabels:
app.kubernetes.io/name: collector
endpoints:
- port: prom-metrics
interval: 10s
- port: cfg-rel-metrics
interval: 10s
- Pour appliquer cette ressource, exécutez la commande suivante :
kubectl -n gmp-system apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/main/examples/self-pod-monitoring.yaml
Votre collecteur géré scrape désormais les pods correspondants.
Déployer l'exemple d'application
Le service géré fournit un fichier manifeste pour un exemple d'application qui émet des métriques Prometheus sur son port "metrics". L'application utilise trois instances répliquées.
- Pour déployer l'exemple d'application, exécutez la commande suivante :
kubectl -n gmp-system apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/main/examples/example-app.yaml
Vérifier si Prometheus a été déployé
Tâche 3 : Cloud Monitoring
Pour afficher les données Managed Service pour Prometheus en tant que séries temporelles Cloud Monitoring, utilisez l'explorateur de métriques. Pour configurer l'explorateur de métriques afin d'afficher les métriques, procédez comme suit :
- Depuis Cloud Console, accédez à la page Monitoring.
- Dans le volet de navigation "Monitoring", cliquez sur
Explorateur de métriques.
- Spécifiez les données à afficher dans le graphique. Pour cela, vous pouvez utiliser l'éditeur MQL.
-
Pour utiliser l'onglet MQL, procédez comme suit :
a. Cliquez sur PromQL en haut à droite et sélectionnez l'option radio MQL dans une nouvelle requête.
b. Saisissez la requête suivante :
fetch prometheus_target::prometheus.googleapis.com/up/gauge
c. Cliquez sur Exécuter la requête.
Tâche 4 : Remplir un graphique
-
Accédez à Monitoring > Explorateur de métriques et créez une autre requête.
-
Sélectionnez l'option PromQL et exécutez la requête ci-dessous en cliquant sur Exécuter la requête pour afficher les métriques :
go_memstats_heap_alloc_bytes
Un graphique semblable à celui ci-dessous s'affiche lorsque vous sélectionnez cette option.

Tâche 5 : Filtrer les métriques exportées
Si vous collectez une grande quantité de données, vous pouvez empêcher l'envoi de certaines séries temporelles à Managed Service pour Prometheus afin de limiter les coûts.
Pour filtrer les métriques exportées, vous pouvez configurer un ensemble de sélecteurs de séries PromQL dans la ressource OperatorConfig. Une série temporelle est exportée vers Managed Service pour Prometheus si elle répond à au moins l'un des sélecteurs.
- Ouvrez la ressource
OperatorConfig
pour la modifier :
kubectl -n gmp-public edit operatorconfig config
- Après la ligne "apiVersion", appuyez sur "i" pour passer en mode Insertion. Accédez à la dernière ligne et appuyez sur Entrée pour passer à la ligne suivante. Assurez-vous qu'il n'y a pas de retrait au début de la ligne. Collez ensuite le code suivant :
collection:
filter:
matchOneOf:
- '{job="prom-example"}'
- '{__name__=~"job:.+"}'
Le fichier doit se présenter comme illustré ci-dessous.

- Pour enregistrer le fichier et quitter l'éditeur, appuyez sur Échap, puis saisissez :wq et appuyez sur Entrée.
Cet ajout génère uniquement les métriques de la tâche "prometheus", ainsi que les métriques produites par les règles d'enregistrement agrégées au niveau de la tâche à exporter (en suivant les bonnes pratiques de dénomination). Les échantillons de toutes les autres séries temporelles sont filtrés. Par défaut, aucun sélecteur n'est spécifié et toutes les séries temporelles sont exportées.
La section de configuration filter.matchOneOf
possède la même sémantique que les paramètres match[] pour la fédération Prometheus.
- Créez un fichier
op-config.yaml
:
vi op-config.yaml
- Copiez ce qui suit dans le fichier
op-config.yaml
:
apiVersion: monitoring.googleapis.com/v1alpha1
collection:
filter:
matchOneOf:
- '{job="prom-example"}'
- '{__name__=~"job:.+"}'
kind: OperatorConfig
metadata:
annotations:
components.gke.io/layer: addon
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"monitoring.googleapis.com/v1alpha1","kind":"OperatorConfig","metadata":{"annotations":{"components.gke.io/layer":"addon"},"labels":{"addonmanager.kubernetes.io/mode":"Reconcile"},"name":"config","namespace":"gmp-public"}}
creationTimestamp: "2022-03-14T22:34:23Z"
generation: 1
labels:
addonmanager.kubernetes.io/mode: Reconcile
name: config
namespace: gmp-public
resourceVersion: "2882"
uid: 4ad23359-efeb-42bb-b689-045bd704f295
- Importez le fichier de configuration que vous avez créé pour vérifier :
export PROJECT=$(gcloud config get-value project)
gsutil mb -p $PROJECT gs://$PROJECT
gsutil cp op-config.yaml gs://$PROJECT
gsutil -m acl set -R -a public-read gs://$PROJECT
Vérifier si le filtre de métriques a été appliqué
Tâche 6 : Exécuter la requête
-
Cliquez sur + Ajouter une requête pour créer une requête, puis saisissez up/gauge
dans le filtre de saisie Sélectionner une métrique.
-
Sélectionnez la métrique Prometheus obtenue, puis cliquez sur Appliquer.
Tâche 7 : Surveiller l'application
- Créez un fichier prom-example-config.yaml pour vérifier :
vi prom-example-config.yaml
- Copiez ce qui suit dans le fichier :
apiVersion: monitoring.googleapis.com/v1alpha1
kind: PodMonitoring
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"monitoring.googleapis.com/v1alpha1","kind":"PodMonitoring","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"prom-example"},"name":"prom-example","namespace":"gmp-test"},"spec":{"endpoints":[{"interval":"30s","port":"metrics"}],"selector":{"matchLabels":{"app":"prom-example"}}}}
creationTimestamp: "2022-03-14T22:33:55Z"
generation: 1
labels:
app.kubernetes.io/name: prom-example
name: prom-example
namespace: gmp-test
resourceVersion: "2648"
uid: c10a8507-429e-4f69-8993-0c562f9c730f
spec:
endpoints:
- interval: 60s
port: metrics
selector:
matchLabels:
app: prom-example
status:
conditions:
- lastTransitionTime: "2022-03-14T22:33:55Z"
lastUpdateTime: "2022-03-14T22:33:55Z"
status: "True"
type: ConfigurationCreateSuccess
observedGeneration: 1
- Exécutez les commandes suivantes dans Cloud Shell :
export PROJECT=$(gcloud config get-value project)
gsutil cp prom-example-config.yaml gs://$PROJECT
gsutil -m acl set -R -a public-read gs://$PROJECT
Vérifier si l'intervalle de scraping a été modifié
Cet atelier est maintenant terminé.
Félicitations
Vous avez appris à réduire les coûts associés à l'utilisation de Managed Service pour Prometheus. Vous avez déployé Prometheus et un exemple d'application. Ensuite, vous avez appliqué un filtre de métriques et modifié l'intervalle d'extraction pour réduire les coûts associés à l'ingestion de métriques à l'aide du service Google Managed Prometheus.
Étapes suivantes et informations supplémentaires
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 17 février 2025
Dernier test de l'atelier : 17 février 2025
Copyright 2025 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.