En esta página, se describe cómo migrar las reglas de alertas de Prometheus a políticas de alertas basadas en PromQL en Cloud Monitoring. El proceso de migración es útil si usas PromQL en entornos fuera de Google Cloud. Si migras tus reglas de alertas de Prometheus a Cloud Monitoring, podrás administrar todas tus políticas de alertas en un solo entorno.
Para obtener información general sobre las políticas de alertas basadas en PromQL, consulta Descripción general de las alertas de PromQL.
También puedes importar paneles de Grafana. Para obtener más información, consulta Importa paneles de Grafana a Cloud Monitoring.
Cómo funciona la migración
En gcloud CLI, puedes migrar tus reglas de alertas y receptores existentes para crear políticas de alertas y canales de notificación de Cloud Monitoring. Gcloud CLI puede realizar los siguientes tipos de migración:
Si proporcionas un archivo de configuración de Prometheus con una regla de alertas, gcloud CLI creará una política de alertas basada en PromQL.
Puedes proporcionar varios archivos de configuración de Prometheus al mismo tiempo para crear varias políticas de alertas basadas en PromQL.
Si proporcionas un archivo de Alertmanager de Prometheus con al menos un receptor, gcloud CLI convertirá cada receptor en un canal de notificaciones equivalente en Monitoring.
Si proporcionas un archivo de Prometheus Alertmanager y un archivo de configuración de Prometheus al mismo tiempo, gcloud CLI creará la política de alertas y los canales de notificación, y, luego, asociará cada canal de notificación nuevo con la nueva política de alertas.
Si proporcionas varios archivos de configuración con reglas de alertas, gcloud CLI asignará cada canal de notificación del archivo de Alertmanager a cada política de alertas nueva.
Si tu regla de alertas de Prometheus hace referencia a una métrica personalizada, gcloud CLI requiere un descriptor de métrica equivalente para crear la política de alertas.
Los archivos de configuración de Prometheus y los archivos de Alertmanager de Prometheus deben tener el formato de archivos de reglas válidos de Prometheus en YAML o JSON.
Asignación de campos
Gcloud CLI asigna los campos entre una regla de alertas de Prometheus y una política de alertas de Cloud Monitoring de la siguiente manera:
| Regla de alerta de Prometheus | Política de alertas de Cloud Monitoring |
|---|---|
alert |
conditionPrometheusQueryLanguage.alertRule |
expr |
conditionPrometheusQueryLanguage.query |
for |
conditionPrometheusQueryLanguage.duration |
labels |
conditionPrometheusQueryLanguage.labels |
annotations: "summary" |
documentation.subject |
annotations: "description" |
documentation.content |
Google Cloud Variables de documentación en reglas de alertas de Prometheus migradas
Prometheus usa plantillas de campos de alertas para configurar variables en las anotaciones y etiquetas de las reglas de alertas. Cuando migras reglas de alertas de Prometheus que tienen plantillas de campos de alertas, Cloud Monitoring convierte las plantillas en variables de documentación de Cloud Monitoring de la siguiente manera:
| Plantilla de campo de alerta de Prometheus | Variable de documentación de Cloud Monitoring |
|---|---|
{{$value}} |
Esta variable es una implementación de |
{{humanize $value}} |
Esta variable es una implementación de |
{{$labels}} |
${metric_or_resource.labels} |
{{humanize $labels}} |
${metric_or_resource.labels} |
{{$labels.key}} |
Aparece como
|
{{humanize $labels.<key>}} |
Aparece como
|
Migra reglas de alertas y receptores de Prometheus
Para migrar tus reglas de alertas de Prometheus a las políticas de alertas basadas en PromQL de Cloud Monitoring, usa el comando gcloud monitoring policies
migrate. Este comando también te permite migrar tus receptores de Prometheus a los canales de notificación de Cloud Monitoring.
- Para migrar una regla de alertas, debes tener un archivo de reglas de Prometheus en formato YAML o JSON que contenga la regla de alertas.
Para migrar un receptor, debes tener un archivo YAML o JSON de Alertmanager de Prometheus que contenga el receptor.
Google Cloud no admite la migración de reglas de grabación de Prometheus. Para usar reglas de grabación, te recomendamos que uses un evaluador de reglas autoimplementado.
Crea una política de alertas a partir de un archivo de configuración de Prometheus
Para crear una política de alertas a partir de un archivo de configuración de Prometheus, ejecuta el siguiente comando. Puedes crear varias políticas de alertas proporcionando varias rutas de acceso a archivos:
gcloud monitoring policies migrate \ --policies-from-prometheus-alert-rules-yaml=PATH_TO_FILE_1,PATH_TO_FILE_2
Crea canales de notificación a partir de un archivo de configuración de Prometheus Alertmanager
Para crear canales de notificaciones a partir de un archivo de configuración de Alertmanager de Prometheus, ejecuta el siguiente comando:
gcloud monitoring policies migrate \ --channels-from-prometheus-alertmanager-yaml=PATH_TO_FILE
Cómo crear políticas de alertas y canales de notificación al mismo tiempo
Para crear políticas de alertas a partir de archivos de configuración de Prometheus y crear canales de notificaciones a partir de un archivo de configuración de Prometheus Alertmanager al mismo tiempo, ejecuta el siguiente comando:
gcloud 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
Ejemplo
Tienes un archivo de configuración de Prometheus con una regla de alerta que envía una alerta cuando el uso de CPU permanece en más del 75% durante un minuto. La regla de alerta se configura de la siguiente manera:
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%"
También tienes un archivo de Prometheus AlertManager que contiene receptores de correo electrónico, PagerDuty y 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
Para crear la política de alertas y el canal de notificaciones, ejecuta el siguiente comando:
gcloud monitoring policies migrate \ --policies-from-prometheus-alert-rules-yaml=PATH_TO_CONFIG_FILE \ --channels-from-prometheus-alertmanager-yaml=PATH_TO_ALERTMANAGER_FILE
Luego, gcloud CLI crea una política de alertas como la del siguiente ejemplo:
{
"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"
]
}
Migra reglas de alerta desde Managed Service para Prometheus
Google Cloud configura la evaluación de reglas administradas para Managed Service para Prometheus con los recursos personalizados Rules, ClusterRules y GlobalRules.
Para migrar estos recursos a una política de alertas basada en Google Cloud PromQL, haz lo siguiente:
Copia la sección
groupsdel recurso personalizado en un archivo de reglas nuevo de Prometheus.Migra el archivo de reglas con la CLI de gcloud.
Por ejemplo, tienes el siguiente recurso personalizado de Rules:
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
El archivo de reglas de Prometheus que se creó copiando groups del recurso personalizado de Rules anterior tendría el siguiente aspecto:
groups:
- name: example
interval: 30s
rules:
- alert: FewerThanTenInstancesUp
expr: sum(up) < 10
Migra varios recursos personalizados de Rules
Si deseas migrar varias reglas, CustomRules o GlobalRules, te recomendamos que construyas y migres un archivo de reglas independiente para cada recurso. Para obtener más información, consulta la documentación de Prometheus.
Administra las expresiones de filtro y agregación
Las reglas y ClusterRules filtran automáticamente sus expresiones de alerta de Prometheus según ciertas etiquetas. Para conservar este comportamiento en la consulta de una política de alertas migrada, debes incluir explícitamente estas etiquetas en un filtro o una expresión de agregación en tu archivo de reglas de Prometheus antes de migrar el archivo.
Por ejemplo, el evaluador de reglas administrado para Managed Service for Prometheus ejecuta la expresión sum(up) < 10 de la siguiente manera:
sum(up{project_id="test-project", cluster="test-cluster", namespace="NAMESPACE_NAME"}) < 10
Sin embargo, si una política de alertas tiene la consulta de PromQL sum(up) < 10, Cloud Monitoring ejecuta la consulta solo como sum(up) < 10. Esta búsqueda se aplica a cada Google Cloud proyecto, clúster y espacio de nombres en tu permiso de métricas. Para evitar este comportamiento, te recomendamos que agregues etiquetas en tu consulta para asegurarte de que Cloud Monitoring la ejecute según lo previsto. Por ejemplo, cuando creas tu archivo de reglas a partir del recurso personalizado Rules, puedes cambiar sum(up) < 10 por la siguiente expresión:
sum (up) by (project_id, cluster, namespace) < 10
La expresión anterior genera una serie temporal separada para cada proyecto, clúster y espacio de nombres deGoogle Cloud , y, luego, compara cada serie temporal con el umbral de alerta de <10.
En la siguiente tabla, se muestra el orden de evaluación de los filtros de expresiones de alerta para las reglas y las ClusterRules:
| Tipo de recurso de regla | Filtrar etiquetas |
|---|---|
| Regla |
|
| ClusterRule |
|
Para obtener más información sobre el comportamiento del filtrado en las expresiones de Prometheus, consulta Selectores de vectores instantáneos.