Políticas de muestra

En esta página, se proporciona una recopilación de políticas de alertas específicas que se pueden usar como inspiración y para el arranque de políticas de tu propio diseño.

Representa políticas en formato JSON o YAML

Puedes representar las políticas de alertas en dos formatos de datos: JSON y YAML. SDK de Cloud puede leer y escribir ambos formatos. La API de REST puede leer JSON.

Para generar representaciones YAML (predeterminadas) de tus políticas de alertas y canales de notificación existentes, usa los comandos gcloud alpha monitoring policies list y describe o los comandos gcloud alpha monitoring channels list y describe respectivamente.

Por ejemplo, este comando recupera una sola política y captura el resultado en el archivo test-policy.yaml:

gcloud alpha monitoring policies describe projects/a-gcp-project/alertPolicies/12669073143329903307 > test-policy.yaml

Sigue los pasos a continuación para generar representaciones JSON de tus políticas de alertas y canales de notificación existentes:

Copia políticas

Como se ilustra en el ejemplo de copia de seguridad y restablecer, puedes usar políticas guardadas para crear copias nuevas de estas políticas. También puedes usarlas como punto de partida para crear políticas similares.

Puedes usar una política guardada en un proyecto para crear una política nueva o similar en otro proyecto. Sin embargo, primero debes realizar los siguientes cambios en una copia de la política guardada:

  • Quita los siguientes campos de cualquier canal de notificación:
    • name
    • verificationStatus
  • Crea canales de notificación antes de consultar los canales en las políticas de alertas (necesitas los identificadores de canal nuevos).
  • Quita los siguientes campos de cualquiera de las políticas de alertas que vuelvas a crear:
    • name
    • condition.name
    • creationRecord
    • mutationRecord

Muestras de política

Aquí, las políticas se organizan con la misma terminología que usa la consola de Stackdriver Monitoring, por ejemplo, la "política de tasa de cambio", pero realmente solo hay dos tipos de condiciones subyacentes en todas estas clasificaciones:

  • Una condición de umbral: Casi todos los tipos de política mencionados en la IU son variantes en una condición de umbral.
  • Una condición de ausencia

En las siguientes muestras, estas se indican con las condiciones conditionThreshold y conditionAbsent. Consulta la página de referencia Condition para obtener más información.

Política de umbral de métrica

Una política de umbral de métrica es aquella que detecta cuando algún valor cruza un límite predeterminado. Las políticas de umbral te permiten saber que algo se acerca a un punto importante, para que puedas realizar alguna acción. Por ejemplo, cuando el espacio en el disco disponible cae por debajo del 10 por ciento del espacio total en el disco y tu sistema puede quedarse sin espacio en el disco pronto.

La siguiente política emplea el uso de CPU promedio como un indicador del estado de un grupo de VM. Esta provoca una alerta cuando el uso promedio de la CPU de un grupo de VM en una instancia y zona, medida en intervalos de 60 segundos, supera un umbral de uso del 90 por ciento durante 15 minutos (600 segundos):

{
    "displayName": "Very high CPU usage",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "CPU usage is extremely high",
            "conditionThreshold": {
                "aggregations": [
                    {
                        "alignmentPeriod": "60s",
                        "crossSeriesReducer": "REDUCE_MEAN",
                        "groupByFields": [
                            "project",
                            "resource.label.instance_id",
                            "resource.label.zone"
                        ],
                        "perSeriesAligner": "ALIGN_MAX"
                    }
                ],
                "comparison": "COMPARISON_GT",
                "duration": "900s",
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\"
                           AND resource.type=\"gce_instance\"",
                "thresholdValue": 0.9,
                "trigger": {
                    "count": 1
                }
            }
        }
    ],
}

Política de ausencia de métricas

Una política de ausencia de métricas se activa cuando no se escribe ningún dato en una métrica para la duración especificada.

Una forma de demostrar esto es crear una métrica personalizada en la que nunca se escriba nada. No necesitas una métrica personalizada para este tipo de política, pero con fines de demostración, es fácil garantizar que nada la use realmente.

Aquí hay un descriptor de muestra para una métrica personalizada. Puedes crear la métrica con el Explorador de API.

{
  "description": "Number of times the pipeline has run",
  "displayName": "Pipeline runs",
  "metricKind": "GAUGE",
  "type": "custom.googleapis.com/pipeline_runs",
  "labels": [
    {
      "description": "The name of the pipeline",
      "key": "pipeline_name",
      "valueType": "STRING"
    },
  ],
  "unit": "1",
  "valueType": "INT64"
}

Consulta Usa métricas personalizadas para obtener más información.

La siguiente política de alertas se activa si no se escriben datos en esta métrica durante un período de aproximadamente una hora: En otras palabras, tu canalización por hora no se pudo ejecutar. Ten en cuenta que la condición que se usa aquí es conditionAbsent.

{
    "displayName": "Data ingestion functioning",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Hourly pipeline is up",
            "conditionAbsent": {
                "duration": "3900s",
                "filter": "resource.type=\"global\"
                           AND metric.type=\"custom.googleapis.com/pipeline_runs\"
                           AND metric.label.pipeline_name=\"hourly\"",
            }
        }
    ],
}

Política de tasa de cambio

Esta política te alerta cuando la tasa de uso de CPU aumenta rápidamente:

{
  "displayName": "High CPU rate of change",
  "combiner": "OR",
  "conditions": [
    {
      "displayName": "CPU usage is increasing at a high rate",
      "conditionThreshold": {
         "aggregations": [
           {
             "alignmentPeriod": "900s",
             "perSeriesAligner": "ALIGN_PERCENT_CHANGE",
           }],
        "comparison": "COMPARISON_GT",
        "duration": "180s",
        "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\"",
        "thresholdValue": 0.5,
        "trigger": {
          "count": 1
         }
      }
    }
  ],
}

Política de grupo agregado

Esta política te alerta cuando el uso de CPU promedio supera un umbral a través de un clúster de Google Kubernetes Engine:

{
    "displayName": "CPU utilization across GKE cluster exceeds 10 percent",
    "combiner": "OR",
    "conditions": [
         {
            "displayName": "Group Aggregate Threshold across All Instances in Group GKE cluster",
            "conditionThreshold": {
                "filter": "group.id=\"3691870619975147604\" AND metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\"",
                "comparison": "COMPARISON_GT",
                "thresholdValue": 0.1,
                "duration": "300s",
                "trigger": {
                    "count": 1
                },
                "aggregations": [
                    {
                        "alignmentPeriod": "60s",
                        "perSeriesAligner": "ALIGN_MEAN",
                        "crossSeriesReducer": "REDUCE_MEAN",
                        "groupByFields": [
                              "project",
                              "resource.label.instance_id",
                              "resource.label.zone"
                        ]
                    },
                    {
                        "alignmentPeriod": "60s",
                        "perSeriesAligner": "ALIGN_SUM",
                        "crossSeriesReducer": "REDUCE_MEAN"
                    }
                ]
            },
        }
    ],
}

Esta política supone la existencia del siguiente grupo:

{
    "name": "projects/a-gcp-project/groups/3691870619975147604",
    "displayName": "GKE cluster",
    "filter": "resource.metadata.name=starts_with(\"gke-kuber-cluster-default-pool-6fe301a0-\")"
}

A fin de identificar los campos equivalentes para tus grupos, haz una lista de los detalles de tu grupo con el Explorador de API en la página de referencia project.groups.list.

Política de verificaciones de tiempo de actividad

El estado de verificaciones de tiempo de actividad aparece en la consola de Stackdriver Monitoring, pero puedes usar una política de alertas para notificarte directamente si falla la verificación de tiempo de actividad.

Por ejemplo, el siguiente JSON describe una verificación de tiempo de actividad en el sitio de Google Cloud Platform. Este verifica la disponibilidad cada 5 minutos.

La verificación del tiempo de actividad se creó con la consola de Stackdriver Monitoring. La siguiente representación JSON se creó mediante la lista de verificaciones de tiempo de actividad en el proyecto con la API de supervisión, puedes consultar uptimeCheckConfigs.list. También puedes crear verificaciones de tiempo de actividad con la API de supervisión.

{
    "name": "projects/a-gcp-project/uptimeCheckConfigs/uptime-check-for-google-cloud-site",
    "displayName": "Uptime check for Google Cloud site",
    "monitoredResource": {
        "type": "uptime_url",
        "labels": {
            "host": "cloud.google.com"
      }
    },
    "httpCheck": {
        "path": "/index.html",
        "port": 80,
        "authInfo": {}
    },
    "period": "300s",
    "timeout": "10s",
    "contentMatchers": [
        {}
    ]
}

A fin de crear una política de alertas para una verificación de tiempo de actividad, consulta la verificación de tiempo de actividad por su UPTIME_CHECK_ID. Este ID se establece cuando se crea la verificación, aparece como el último componente del campo name y no es visible en la IU. Si usas la API de supervisión, el método uptimeCheckConfigs.create muestra el ID.

El ID se deriva del displayName que se estableció en la IU en este caso. Se puede verificar con la lista de verificaciones de tiempo de actividad y cuando observas el valor del name.

El ID para la verificación de tiempo de actividad descrita anteriormente es uptime-check-for-google-cloud-site.

La siguiente política de alertas se activa si falla la verificación de tiempo de actividad y envía una notificación al canal de notificación especificado.

{
    "displayName": "Google Cloud site uptime failure",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Failure of uptime check_id uptime-check-for-google-cloud-site",
            "conditionThreshold": {
                "aggregations": [
                    {
                        "alignmentPeriod": "1200s",
                        "perSeriesAligner": "ALIGN_NEXT_OLDER",
                        "crossSeriesReducer": "REDUCE_COUNT_FALSE",
                        "groupByFields": [ "resource.label.*" ]
                    }
                ],
                "comparison": "COMPARISON_GT",
                "duration": "600s",
                "filter": "metric.type=\"monitoring.googleapis.com/uptime_check/check_passed\"
                           AND metric.label.check_id=\"uptime-check-for-google-cloud-site\"
                           AND resource.type=\"uptime_url\"",
                "thresholdValue": 1,
                "trigger": {
                    "count": 1
                }
            }
        }
    ],
}

El filtro en la política de alertas especifica la métrica que se supervisa por su tipo y etiqueta. El tipo de métrica es monitoring.googleapis.com/uptime_check/check_passed. La etiqueta de métrica identifica la verificación de tiempo de actividad específica que se supervisa. En este ejemplo, el campo de la etiqueta check_id contiene el ID de verificación de tiempo de actividad.

AND metric.label.check_id=\"uptime-check-for-google-cloud-site\"

Consulta los filtros de supervisión para obtener más información.

Política de estado del proceso

Una política de estado del proceso puede notificarte si la cantidad de procesos que coinciden con un patrón supera un umbral. Esto se puede usar para decirte, por ejemplo, que un proceso se dejó de ejecutar.

Esta política envía una notificación al canal de notificación especificado cuando ningún proceso que coincide con la string nginx que se ejecute como usuario www ha estado disponible durante más de 5 minutos:

{
    "displayName": "Server health",
    "combiner": "OR",
    "conditions": [
        {
            "displayName": "Process 'nginx' is not running",
            "conditionThreshold": {
                "filter": "select_process_count(\"has_substring(\\\"nginx\\\")\", \"www\") AND resource.type=\"gce_instance\"",
                "comparison": "COMPARISON_LT",
                "thresholdValue": 1,
                "duration": "300s"
            }
        }
    ],
}

Para ver otro ejemplo, consulta el estado del proceso.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Stackdriver Monitoring
Si necesitas ayuda, visita nuestra página de asistencia.