En esta página, se describe cómo migrar las reglas de alerta de Prometheus a las políticas de alertas de Cloud Monitoring con una condición basada en PromQL. El proceso de migración es útil si usas PromQL en entornos fuera de Google Cloud. Si migras tus reglas de alerta de Prometheus a Cloud Monitoring, puedes administrar todas las políticas de alertas en un entorno.
Para obtener información general sobre las políticas de alertas con condiciones basadas en PromQL, consulta Políticas de alertas con 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 receptores y reglas de alerta existentes para crear políticas de alertas y canales de notificaciones 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 crea una política de alertas con una condición basada en PromQL.
Puedes proporcionar varios archivos de configuración de Prometheus al mismo tiempo para crear varias políticas de alertas con una condición basada en PromQL.
Si proporcionas un archivo Alertmanager de Prometheus con al menos un receptor, gcloud CLI convierte 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 crea la política de alertas y los canales de notificaciones y, luego, asocia cada canal de notificaciones nuevo con la nueva política de alertas.
Si proporcionas varios archivos de configuración con reglas de alerta, gcloud CLId asigna cada canal de notificaciones del archivo Alertmanager a cada política de alertas nueva.
Si tu regla de alertas de Prometheus hace referencia a una métrica personalizada, la 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 de Prometheus válidos en YAML o JSON.
Asignación de campos
Gcloud CLI asigna campos entre una regla de alertas de Prometheus y una política de alertas de Cloud Monitoring de la siguiente manera:
Regla de alertas 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 |
Variables de documentación de Google Cloud en reglas de alerta de Prometheus migradas
Prometheus usa plantillas de campos de alerta para configurar variables en anotaciones y etiquetas de reglas de alerta. Cuando migras reglas de alerta de Prometheus que tienen plantillas de campo de alerta, Cloud Monitoring convierte las plantillas en variables de documentación de Cloud Monitoring de la siguiente manera:
Plantilla de campos 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 desde Prometheus
Para migrar tus reglas de alerta de Prometheus a las políticas de alertas de Cloud Monitoring con condiciones basadas en PromQL, usa el comando gcloud alpha monitoring policies
migrate
. Este comando también te permite migrar tus receptores de Prometheus a los canales de notificaciones de Cloud Monitoring.
- Para migrar una regla de alertas, debes tener un archivo de reglas de Prometheus YAML o JSON que contenga la regla de alerta.
Para migrar un receptor, debes tener un archivo Alertmanager de Prometheus YAML o JSON que contenga el receptor.
Google Cloud no admite la migración de reglas de grabación de Prometheus. Para usar reglas de registro, te recomendamos emplear un evaluador de reglas de implementación automática.
Crea una política de alertas desde 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 si proporcionas varias rutas de acceso a archivos:
gcloud alpha monitoring policies migrate \ --policies-from-prometheus-alert-rules-yaml=PATH_TO_FILE_1,PATH_TO_FILE_2
Crea canales de notificaciones desde un archivo de configuración de Prometheus Alertmanager
Para crear canales de notificaciones desde un archivo de configuración de Prometheus Alertmanager, ejecuta el siguiente comando:
gcloud alpha monitoring policies migrate \ --channels-from-prometheus-alertmanager-yaml=PATH_TO_FILE
Crea políticas de alertas y canales de notificaciones al mismo tiempo
Para crear políticas de alertas a partir de archivos de configuración de Prometheus y para crear canales de notificaciones a partir de un archivo de configuración de Prometheus Alertmanager al mismo tiempo, ejecuta el siguiente comando:
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
Ejemplo
Tienes un archivo de configuración de Prometheus con una regla de alertas que envía una alerta cuando el uso de CPU se mantiene superior al 75% durante un minuto. La regla de alertas 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 AlertManager de Prometheus que contiene receptores de correo electrónico, PagerDuty y webhooks.
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 alpha 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 el 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 alertas desde Managed Service para Prometheus
Google Cloud configura la evaluación de reglas administradas en el servicio administrado para Prometheus mediante los recursos personalizados Rules, ClusterRules y GlobalRules.
Para migrar estos recursos a una política de alertas de Google Cloud con una condición basada en PromQL, haz lo siguiente:
Copia la sección
groups
del recurso personalizado en un archivo de reglas de Prometheus nuevo.Migra el archivo de reglas mediante gcloud CLI.
Por ejemplo, tienes el siguiente recurso personalizado de reglas:
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 creado mediante la copia de groups
del recurso personalizado de reglas
anterior se vería de la siguiente manera:
groups: - name: example interval: 30s rules: - alert: FewerThanTenInstancesUp expr: sum(up) < 10
Migra varios recursos personalizados de reglas
Si deseas migrar varias reglas, CustomRules o GlobalRules, te recomendamos que crees y migres un archivo de reglas separado para cada recurso. Para obtener más información, consulta la documentación de Prometheus.
Administra expresiones de agregación y filtro
Las reglas y ClusterRules filtran automáticamente sus expresiones de alerta de Prometheus en función de ciertas etiquetas. Para conservar este comportamiento en la consulta de una política de alertas migrada, debes incluir de forma explícita 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 el servicio administrado para 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 sum(up) < 10
de PromQL, Cloud Monitoring ejecuta la consulta solo como sum(up) < 10
. Esta consulta se aplica a cada proyecto, clúster y espacio de nombres de Google Cloud en el permiso de las métricas. Para evitar este comportamiento, te recomendamos que agregues mediante etiquetas a tu consulta a fin de asegurarte de que Cloud Monitoring ejecute tu consulta según lo previsto. Por ejemplo, cuando creas tu archivo de reglas desde el recurso personalizado Reglas, puedes cambiar sum(up) < 10
a la siguiente expresión:
sum (up) by (project_id, cluster, namespace) < 10
La expresión anterior genera una serie temporal distinta para cada proyecto, clúster y espacio de nombres de Google 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 expresión de alerta para reglas y ClusterRules:
Tipo de recurso de la regla | Filtrar etiquetas |
---|---|
Regla |
|
ClusterRule |
|
Para obtener más información sobre el comportamiento de filtrado en expresiones de Prometheus, consulta Selectores de vectores instantáneos.