Cette page explique comment migrer des règles d'alerte Prometheus vers Cloud Monitoring. des règles d'alerte avec une condition basée sur PromQL. Le processus de migration est utile si vous utilisez PromQL dans des environnements extérieurs à Google Cloud. En migrant vos règles d'alerte Prometheus vers Cloud Monitoring, vous pouvez gérer toutes vos règles d'alerte dans un seul environnement.
Pour obtenir des informations générales sur les règles d'alerte avec des conditions basées sur PromQL, consultez la page Règles d'alerte avec PromQL.
Vous pouvez également importer des tableaux de bord Grafana. Pour en savoir plus, consultez Importez des tableaux de bord Grafana dans Cloud Monitoring.
Fonctionnement de la migration
Dans la gcloud CLI, vous pouvez migrer vos règles d'alerte existantes récepteurs pour créer des règles d'alerte et des canaux de notification Cloud Monitoring. La gcloud CLI peut effectuer les types de migration suivants:
Si vous fournissez un fichier de configuration Prometheus avec une règle d'alerte, la gcloud CLI crée une règle d'alerte avec une condition basée sur PromQL.
Vous pouvez fournir plusieurs fichiers de configuration Prometheus en même temps pour créer plusieurs règles d'alerte avec une condition basée sur PromQL ;
Si vous fournissez un fichier Alertmanager Prometheus avec au moins un récepteur, la gcloud CLI convertit chaque récepteur en canal de notification équivalent dans Monitoring.
Si vous fournissez un fichier Prometheus Alertmanager et un de configuration Prometheus. la gcloud CLI crée la règle d'alerte et la notification canaux de notification, puis associe chaque nouveau canal de notification règle d'alerte.
Si vous fournissez plusieurs fichiers de configuration avec des règles d'alerte, la gcloud CLI attribue chaque canal de notification du fichier Alertmanager à chaque nouvelle règle d'alerte.
Si votre règle d'alerte Prometheus fait référence à une métrique personnalisée, la CLI gcloud nécessite un descripteur de métrique équivalent pour créer la règle d'alerte.
Les fichiers de configuration Prometheus et les fichiers Prometheus Alertmanager doivent être formatés en tant que fichiers de règles Prometheus valides au format YAML ou JSON.
Mappage de champ
La gcloud CLI mappe les champs entre les alertes Prometheus et une règle d'alerte Cloud Monitoring comme suit:
Règle d'alerte Prometheus | Règle d'alerte Cloud Monitoring |
---|---|
alert |
conditionPrometheusQueryLanguage.alertRule |
expr |
conditionPrometheusQueryLanguage.query |
for |
conditionPrometheusQueryLanguage.duration |
labels |
conditionPrometheusQueryLanguage.labels |
annotations: "summary" |
documentation.subject |
annotations: "description" |
documentation.content |
Variables de la documentation Google Cloud dans les règles d'alerte Prometheus migrées
Prometheus utilise des modèles de champ d'alerte pour configurer les variables. dans les annotations et les étiquettes des règles d'alerte. Lorsque vous migrez des règles d'alerte Prometheus comportant des modèles de champs d'alerte, Cloud Monitoring convertit les modèles aux variables de documentation Cloud Monitoring comme suit:
Modèle de champ d'alerte Prometheus | Variable de documentation Cloud Monitoring |
---|---|
{{$value}} |
Cette variable est une implémentation de |
{{humanize $value}} |
Cette variable est une implémentation de |
{{$labels}} |
${metric_or_resource.labels} |
{{humanize $labels}} |
${metric_or_resource.labels} |
{{$labels.key}} |
Apparaît sous la forme
|
{{humanize $labels.<key>}} |
Apparaît sous la forme
|
Migrer des règles d'alerte et des récepteurs depuis Prometheus
Migrer vos règles d'alerte Prometheus vers des règles d'alerte Cloud Monitoring
avec des conditions basées sur PromQL, utilisez
gcloud alpha monitoring policies
migrate
. Cette commande vous permet également
migrer vos récepteurs Prometheus vers Cloud Monitoring ;
canaux de notification.
- Pour migrer une règle d'alerte, vous devez disposer d'un Prometheus YAML ou JSON fichier de règles contenant le fichier d'alerte.
Pour migrer un récepteur, vous devez disposer d'un fichier Alertmanager Prometheus YAML ou JSON contenant le récepteur.
Google Cloud n'est pas compatible avec la migration de Prometheus règles d'enregistrement. Pour utiliser des règles d'enregistrement, nous vous recommandons d'utiliser un évaluateur de règle auto-déployé.
Créer une règle d'alerte à partir d'un fichier de configuration Prometheus
Pour créer une règle d'alerte à partir d'un fichier de configuration Prometheus, exécutez la commande suivante. Vous pouvez créer plusieurs règles d'alerte en fournissant plusieurs chemins d'accès aux fichiers :
gcloud alpha monitoring policies migrate \ --policies-from-prometheus-alert-rules-yaml=PATH_TO_FILE_1,PATH_TO_FILE_2
Créer des canaux de notification à partir d'un fichier de configuration Prometheus Alertmanager
Pour créer des canaux de notification à partir d'un fichier de configuration Prometheus Alertmanager, exécutez la commande suivante :
gcloud alpha monitoring policies migrate \ --channels-from-prometheus-alertmanager-yaml=PATH_TO_FILE
Créer des règles d'alerte et des canaux de notification en même temps
Pour créer des règles d'alerte à partir de fichiers de configuration Prometheus et des canaux de notification à partir d'un fichier de configuration Prometheus Alertmanager en même temps, exécutez la commande suivante :
gcloud alpha monitoring policies migrate \ --policies-from-prometheus-alert-rules-yaml=PATH_TO_FILE_1,PATH_TO_FILE_2 \ --channels-from-prometheus-alertmanager-yaml=PATH_TO_FILE
Exemple
Vous disposez d'un fichier de configuration Prometheus avec une règle d'alerte qui envoie une alerte lorsque l'utilisation du CPU reste supérieure à 75% pendant une minute. La règle d'alerte est configurée comme suit :
groups: - name: Utilization_Alerts interval: 30s rules: - alert: CPU_Utilization_Over_75 expr: compute_googleapis_com:instance_cpu_utilization > 75 for: 60s labels: severity: page annotations: subject: "Subject: ${metric.label.value}" description: "CPU utilization is over 75%"
Vous avez aussi un fichier Prometheus AlertManager contenant par e-mail, PagerDuty et par webhook.
receivers: - name: 'team-emails' email_configs: - to: EMAIL_ADDRESS - name: 'team-pager' pagerduty_configs: - service_key: SERVICE_KEY - name: 'team-webhook' webhook_configs: - url: WEBHOOK_ADDRESS
Pour créer la règle d'alerte et le canal de notification, exécutez la commande suivante :
gcloud alpha monitoring policies migrate \ --policies-from-prometheus-alert-rules-yaml=PATH_TO_CONFIG_FILE \ --channels-from-prometheus-alertmanager-yaml=PATH_TO_ALERTMANAGER_FILE
La gcloud CLI crée ensuite une règle d'alerte comme dans l'exemple suivant :
{ "name": "projects/PROJECT_ID/alertPolicies/POLICY_ID", "displayName": "Utilization_Alerts/CPU_Utilization_Over_75", "documentation": { "content": "CPU utilization is over 75%", "mimeType": "text/markdown", "subject": "Subject: ${metric.label.value}" }, "userLabels": {}, "conditions": [ { "name": "projects/PROJECT_ID/alertPolicies/POLICY_ID/conditions/CONDITION_ID", "displayName": "CPU_Utilization_Over_75" "conditionPrometheusQueryLanguage": { "alertRule": "CPU_Utilization_Over_75", "duration": "60s", "evaluationInterval": "30s", "labels": { "severity": "page" }, "query": "compute_googleapis_com:instance_cpu_utilization > 75", "ruleGroup": "Utilization_Alerts" } } ], "alertStrategy": {}, "combiner": "OR", "enabled": true, "notificationChannels": [ "projects/google.com:PROJECT_ID/notificationChannels/CHANNEL_ID_1", "projects/google.com:PROJECT_ID/notificationChannels/CHANNEL_ID_2", "projects/google.com:PROJECT_ID/notificationChannels/CHANNEL_ID_3" ] }
Migrer des règles d'alerte depuis Managed Service pour Prometheus
Google Cloud configure L'évaluation des règles gérées pour Managed Service pour Prometheus à l'aide des règles, ClusterRules et Ressources personnalisées GlobalRules.
Pour migrer ces ressources vers une règle d'alerte Google Cloud avec une Pour une condition basée sur PromQL, procédez comme suit:
Copiez la section
groups
de la ressource personnalisée dans un Nouveau fichier de règles Prometheus.Migrez le fichier de règles à l'aide de la gcloud CLI.
Par exemple, vous disposez de la ressource personnalisée "Rules" (Règles) suivante:
apiVersion: monitoring.googleapis.com/v1 kind: Rules metadata: namespace: NAMESPACE_NAME name: example-rules spec: groups: - name: example interval: 30s rules: - alert: FewerThanTenInstancesUp expr: sum(up) < 10
Le fichier de règles Prometheus créé en copiant groups
des règles précédentes
la ressource personnalisée se présente comme suit:
groups: - name: example interval: 30s rules: - alert: FewerThanTenInstancesUp expr: sum(up) < 10
Migrer plusieurs ressources personnalisées de règles
Si vous souhaitez migrer plusieurs règles, règles personnalisées ou règles globales, nous vous recommandons de créer et de migrer un fichier de règles distinct pour chaque ressource. Pour en savoir plus, consultez les Documentation Prometheus.
Gérer les expressions de filtre et d'agrégation
Les règles et ClusterRules filtrent automatiquement leur alerte Prometheus en fonction de certaines étiquettes. Pour conserver ce comportement dans la requête d'alerte, vous devez explicitement inclure ces étiquettes dans un filtre une expression d'agrégation fichier de règles Prometheus avant de migrer le fichier.
Par exemple :
Évaluateur de règles gérées pour Managed Service pour Prometheus
exécute l'expression sum(up) < 10
comme suit:
sum(up{project_id="test-project", cluster="test-cluster", namespace="NAMESPACE_NAME"}) < 10
Toutefois, si une règle d'alerte contient la requête PromQL sum(up) < 10
, Cloud Monitoring n'exécute la requête que sous la forme sum(up) < 10
. Cette requête est appliquée à chaque projet, cluster
et l'espace de noms dans le champ d'application des métriques. Pour éviter cela, nous vous recommandons
en agrégeant les données par étiquette dans votre requête pour vous assurer que Cloud Monitoring
votre requête comme prévu. Par exemple, lorsque vous créez un fichier de règles à partir de
Ressource personnalisée des règles, vous pouvez remplacer sum(up) < 10
par ce qui suit
expression:
sum (up) by (project_id, cluster, namespace) < 10
L'expression précédente génère une série temporelle distincte pour chaque
le projet, le cluster et l'espace de noms Google Cloud, puis compare chaque série temporelle aux
le seuil d'alerte de <10
.
Le tableau suivant indique l'ordre d'évaluation des filtres d'expression d'alerte pour les règles et les règles de cluster :
Type de ressource de règle | Filtrer les étiquettes |
---|---|
Règle |
|
ClusterRule |
|
Pour en savoir plus sur le comportement du filtrage dans les expressions Prometheus, consultez la section Sélecteurs de vecteur instantanés.