Introducción a Cloud Monitoring

En esta página, se proporciona una descripción general de las herramientas y el modelo de datos de Cloud Monitoring. Con Cloud Monitoring, puedes responder preguntas importantes como las siguientes:

  • ¿Cuál es la carga de mi servicio?
  • ¿Se puede acceder a mi sitio web y responder correctamente?
  • ¿Mi servicio funciona correctamente?

Esta página está dirigida a los desarrolladores y administradores del sistema que necesitan supervisar el rendimiento de un servicio o sistema.

Descripción general de Cloud Monitoring

Cloud Monitoring recopila medidas de tu servicio y los recursos de Google Cloud que usas. En esta sección, se proporciona una descripción general de las herramientas de Cloud Monitoring que puedes usar para visualizar y supervisar estas mediciones.

Políticas de alertas y verificaciones de tiempo de actividad

Si te interesa recibir una notificación cuando el rendimiento de un servicio no cumpla con los criterios que definas, crea una política de alertas. Por ejemplo, puedes crear una política de alertas que notifique a tu equipo de llamada si el percentil 90 de la latencia de las respuestas 200 HTTP de tu servicio supera los 100 ms.

Si quieres recibir una notificación si no se puede acceder a un servicio implementado o si no responde de manera correcta, configura una verificación de tiempo de actividad y adjunta una Política de alertas:

  • La verificación de tiempo de actividad sondea el servicio de forma periódica y almacena el éxito y la latencia de ese sondeo como datos de métrica.
  • La política de alertas supervisa el estado del éxito de la verificación del tiempo de actividad y te notifica cuando falla un sondeo.

Gráficos y paneles

Para comprender la carga actual en un servicio o ver los datos de rendimiento de tu servicio el mes pasado, usa las herramientas de gráficos y paneles. Cloud Monitoring propaga los paneles según los servicios y recursos que usa tu servicio Sin embargo, también puedes crear paneles personalizados para dibujar datos, indicadores de visualización o texto para mostrar.

Puedes graficar y supervisar cualquier dato (numérico) de métricas que recopila tu proyecto de Google Cloud, incluidos los siguientes:

  • Métricas del sistema generadas por los servicios de Google Cloud. Estas métricas proporcionan información sobre cómo funciona el servicio. Por ejemplo, Compute Engine informa más de 25 métricas únicas para cada instancia de máquina virtual (VM). Para obtener una lista completa de las métricas, consulta Métricas de Google Cloud.

  • Métricas del sistema y de aplicaciones que recopila el agente de Cloud Monitoring. Estas métricas proporcionan información adicional sobre los recursos del sistema y las aplicaciones que se ejecutan en instancias de Compute Engine y en las instancias de Amazon Elastic Compute Cloud (Amazon EC2). De manera opcional, puedes configurar el agente para recopilar métricas de complementos de terceros, como servidores web de Apache o Nginx, o bases de datos MongoDB o PostgreSQL.

  • Métricas personalizadas que tu servicio escribe con la API de Cloud Monitoring o con una biblioteca como OpenCensus.

  • Métricas basadas en registros, que recopilan información numérica sobre los registros escritos en Cloud Logging. Las métricas basadas en registros definidas por Google incluyen el recuento de errores que detecta tu servicio y la cantidad total de entradas de registro que recibió tu proyecto de Google Cloud. También puedes definir métricas basadas en registros. Por ejemplo, puedes crear una métrica que cuente la cantidad de errores 404 Not Found de una aplicación implementada en App Engine.

Información sobre las métricas y series temporales

En esta sección, se presenta el modelo de datos de Cloud Monitoring:

  • Una métrica describe algo que se mide. Algunos ejemplos de métricas incluyen el uso de CPU de una VM y el porcentaje de un disco que se usa.

  • Una serie temporal es una estructura de datos que contiene mediciones con marca de tiempo de una métrica y la información sobre la fuente y el significado de esas medidas.

Por ejemplo, lo siguiente ilustra una serie temporal:

  "timeSeries": [
    {
      "points": [
        {
          "interval": {
            "startTime": "2020-07-27T20:20:21.597143Z",
            "endTime": "2020-07-27T20:20:21.597143Z"
          },
          "value": {
            "doubleValue": 0.473005
          }
        },
        {
          "interval": {
            "startTime": "2020-07-27T20:19:21.597239Z",
            "endTime": "2020-07-27T20:19:21.597239Z"
          },
          "value": {
            "doubleValue": 0.473025
          }
        },
      ],
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
      },
      "metric": {
        "labels": {
          "device": "sda1",
          "state": "free"
        },
        "type": "agent.googleapis.com/disk/percent_used"
      },
      "metricKind": "GAUGE",
      "valueType": "DOUBLE",

    },

Aquí encontrarás algunos detalles sobre lo que contiene una serie temporal:

  • El arreglo points contiene las medidas con marcas de tiempo.

    En el ejemplo anterior, el arreglo points contiene dos valores:

      "points": [
        {
          "interval": {
            "startTime": "2020-07-27T20:20:21.597143Z",
            "endTime": "2020-07-27T20:20:21.597143Z"
          },
          "value": {
            "doubleValue": 0.473005
          }
        },
        {
          "interval": {
            "startTime": "2020-07-27T20:19:21.597239Z",
            "endTime": "2020-07-27T20:19:21.597239Z"
          },
          "value": {
            "doubleValue": 0.473025
          }
        },
      ],
    

    Para comprender el significado de un valor, debes consultar los otros datos incluidos en la serie temporal y las definiciones de esos datos.

  • El campo resource describe el componente de hardware o software que se supervisa. En Cloud Monitoring, el componente de hardware o software se conoce como el recurso supervisado. Algunos ejemplos de recursos supervisados son las instancias de Compute Engine y las aplicaciones de App Engine. Para obtener una lista completa de los recursos supervisados, consulta la lista de recursos supervisados.

    En el ejemplo anterior, el campo resource es como se muestra a continuación:

      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
    
    • El campo type enumera el recurso supervisado como un gce_instance, que indica que estas mediciones se toman en una instancia de VM de Compute Engine.

    • El campo labels contiene pares clave-valor que proporcionan información adicional sobre el recurso supervisado. Para un tipo gce_instance, las etiquetas identifican la instancia de VM que se supervisa.

  • El campo metric describe lo que se está midiendo.

    En el ejemplo anterior, el campo metric es como se muestra a continuación:

      "metric": {
        "labels": {
          "device": "sda1",
          "state": "free"
        },
        "type": "agent.googleapis.com/disk/percent_used"
      },
    
    • En los servicios de Google, el campo type especifica el servicio y lo que se supervisa. En este ejemplo, el agente de Cloud Monitoring es el servicio y mide el porcentaje del disco que se usa. Si el campo type comienza con custom o external, la métrica es una métrica personalizada o una definida por un tercero.

    • El campo labels contiene pares clave-valor que proporcionan información adicional sobre la medición. Estas etiquetas se definen como parte del MetricDescriptor, que es una estructura de datos que define los atributos de los datos medidos. El MetricDescriptor para la métrica agent.googleapis.com/disk/percent_used incluye las etiquetas device y state.

  • El campo metricKind describe la relación entre las mediciones adversas dentro de una serie temporal:

    • Las métricas de GAUGE almacenan el valor de lo que se mide en un momento determinado, por ejemplo, un registro de temperatura por hora.

    • Las métricas CUMULATIVE almacenan el valor acumulado de lo que se mide en un momento determinado, por ejemplo, un odómetro en un vehículo.

    • Las métricas de DELTA almacenan el cambio en el valor de la medición que se mide durante un período especificado, por ejemplo, un resumen de acciones que muestra las ganancias o pérdidas de la acción.

  • El campo valueType describe el tipo de datos para la medición: INT64, DOUBLE, BOOL, STRING, o DISTRIBUTION.

Cloud Monitoring escribe una serie temporal para cada combinación de valores de etiquetas de recursos y métricas. Puedes usar estas etiquetas para agrupar y filtrar series temporales. Por ejemplo, si tienes un proyecto de Google Cloud con varias instancias de VM de Compute Engine, el uso del disco para cada instancia de VM es una serie temporal única. A continuación, te mostramos algunas de las maneras en las que puedes mostrar estos datos:

  • Puedes mostrar el uso del disco de cada instancia de VM.
  • Puedes agrupar por las instancias de VM por la etiqueta state y, luego, mostrar el uso promedio del disco. En la siguiente captura de pantalla, se muestra un gráfico con esta configuración:

    Uso promedio del disco agrupado por estado.

  • Puedes mostrar el uso del disco de una instancia de VM específica si filtras la serie temporal para un solo valor de la etiqueta instance_id. En la siguiente captura de pantalla, se muestra un gráfico con esta configuración:

    Porcentaje usado del disco para un disco específico.

Visualiza datos de series temporales con gráficos y paneles

Cloud Monitoring te proporciona varias formas de visualizar tus datos de series temporales:

  • Paneles predefinidos: Cloud Monitoring crea automáticamente estos paneles en función de los recursos que usa tu proyecto de Google Cloud.

    Por ejemplo, si tu proyecto de Google Cloud contiene instancias de VM de Compute Engine, los paneles de esas instancias y discos de VM se crean de forma automática. Con el panel Instancias de VM, puedes ver detalles como el uso de memoria y de disco, identificar direcciones IP y, también, identificar qué VM están descartando paquetes de red. En este panel, también se muestra información sobre tu uso del agente de Cloud Monitoring y se brindan sugerencias para la instrumentación.

  • Paneles personalizados: Puedes crear o instalar estos paneles. Los paneles personalizados te permiten definir qué datos quieres ver y cómo verlos. En tus paneles, puedes agregar widgets que muestren gráficos, texto, medidores o cuadros de evaluación. Puedes crear un panel personalizado con la API de paneles o con Cloud Console.

  • Gráficos: Puedes agregar gráficos a un panel personalizado o puedes usar el Explorador de métricas, que es una herramienta de gráficos diseñada para que puedas generar gráficos y explorar datos de series temporales con rapidez. Si creas un gráfico con el Explorador de métricas, puedes guardarlo en un panel personalizado.

Cuando creas un gráfico, seleccionas el recurso supervisado y el tipo de métrica cuyos datos de serie temporal quieres ver. Después de realizar estas selecciones, puedes aplicar filtros para seleccionar series temporales que coincidan con ciertos valores de etiqueta, y puedes agrupar datos por etiqueta. Por ejemplo, puedes agregar un filtro para que solo un gráfico muestre la serie temporal de las instancias de VM de Compute Engine que se encuentran en laus-east-1d zona las rutas "a GCP".

La configuración del gráfico te permite comparar los datos actuales con los datos anteriores y crear gráficos que muestren los datos de series temporales de varias métricas. Por ejemplo, la siguiente captura de pantalla muestra un gráfico que muestra la cantidad de bytes que leen y escriben desde una sola VM:

Explorador de métricas que muestra bytes de lectura y escritura del disco.

Para obtener más información sobre los datos de series temporales, consulta Usa los paneles y gráficos.

Configura alertas

Si creas una política de alertas, puedes recibir una notificación cuando una sola serie temporal cumpla con una condición determinada o cuando varias series temporales cumplan con esa condición. Las políticas de alertas pueden ser simples o complejas, por ejemplo:

  • Notificarme si alguna verificación de tiempo de actividad del dominio example.com falla durante al menos 3 minutos.

  • Notifica al equipo de guardia si el percentil 90 de respuestas 200 HTTP de 3 o más servidores web en 2 ubicaciones diferentes de Google Cloud supera la latencia de respuesta de 100 ms, siempre que haya menos de 15 QPS en el servidor.

  • Notificarme si la carga de CPU de cualquier instancia de VM en mi proyecto de Google Cloud es superior a un umbral de 0.6. En la siguiente captura de pantalla, se muestra esta política de alertas:

    Política de alertas que supervisa la carga de la CPU

Puedes crear políticas de alertas con la API de Cloud Monitoring y con Google Cloud Console. En ambos casos, puedes administrar y ver tus políticas en Google Cloud Console mediante la página Alertas.

Las condiciones son el componente central de una política de alertas. Una condición describe un posible problema con tu sistema que deseas que Cloud Monitoring mire. Por ejemplo, puedes describir condiciones como las que se muestran a continuación:

  • Cualquier verificación de tiempo de actividad del dominio example.com falla durante al menos tres minutos.
  • El espacio libre de cualquier instancia de VM supervisada es inferior al 10%.

Si se cumplen las condiciones de una política de alertas, por ejemplo, si cada verificación de tiempo de actividad del dominio example.com falla durante tres minutos, Cloud Monitoring abre un incidente y emite notificaciones:

  • Un incidente es un registro persistente que almacena información sobre los recursos supervisados cuando se cumplió la condición. Cuando la condición deja de cumplirse, el incidente se cierra automáticamente. Puedes ver todos los incidentes, abiertos y cerrados, mediante el panel de alertas.
  • Debes especificar quién recibe notificaciones cuando configuras una política de alertas. Monitoring admite canales de notificaciones comunes, como correo electrónico, Cloud Mobile App y servicios como PagerDuty o Slack. Para ver una lista completa de los canales de notificación, consulta Opciones de notificación.

Para obtener más información sobre las políticas de alertas, consulta Introducción a las alertas.

Cómo verificar el acceso a tu servicio

Puedes configurar Cloud Monitoring para que haga sondeos de tu servicio de forma periódica de una manera que imita la forma en que tus clientes acceden a tu servicio. Cuando configuras una verificación de tiempo de actividad, los servidores en al menos tres ubicaciones diferentes probarán tu servicio de forma periódica y, luego, registran el éxito y la latencia del sondeo. Si deseas recibir una notificación cuando falle la verificación de tiempo de actividad, puedes crear una política de alertas para supervisar la métrica uptime_check/check_passed, que registra los resultados del tiempo de actividad. .

Cloud Monitoring proporciona una página de Verificaciones de tiempo de actividad que muestra un resumen de las verificaciones del tiempo de actividad. Puedes filtrar la pantalla y usar los vínculos incorporados para ver los detalles de una verificación de tiempo de actividad específica. La vista de detalles de una verificación de tiempo de actividad muestra el éxito o la falla de la respuesta y la latencia de la respuesta, junto con los detalles de la verificación de tiempo de actividad:

Vista detallada de muestra de una verificación de tiempo de actividad.

Para obtener más información sobre este tema, consulta Administra verificaciones de tiempo de actividad.

Supervisa sistemas grandes

En esta sección, se describen las funciones diseñadas para ayudarte a supervisar sistemas grandes.

Usa grupos de recursos

Si deseas administrar tus recursos de Google Cloud o Amazon como una colección en lugar de individualmente, puedes crear un grupo de recursos. Un grupo de recursos es una colección dinámica de recursos que cumplen con algunos criterios que proporcionas. A medida que agregas y quitas recursos, por ejemplo, cuando agregas instancias de VM de Compute Engine a tu proyecto de Cloud, la membresía del grupo cambia de forma automática. A continuación, se muestran ejemplos de grupos de recursos:

  • Las instancias de Compute Engine cuyos nombres comienzan con la string prod-.
  • Recursos con la etiqueta test-cluster
  • Instancias de Amazon EC2 en la región A o la región B.

Después de definir un grupo de recursos, puedes supervisar el grupo como si fuera un recurso único. Por ejemplo, puedes configurar una verificación de tiempo de actividad para supervisar un grupo de recursos. Para gráficos y políticas de alertas, también puedes filtrar según el nombre del grupo.

Para obtener más información sobre este tema, consulta Usa grupos de recursos.

Visualiza las métricas de varios proyectos de Google Cloud

Si deseas ver y supervisar los datos de series temporales de varios proyectos de Google Cloud y cuentas de AWS a través de una sola interfaz, puedes configurar un alcance de métricas de varios proyectos.

De forma predeterminada, las páginas de Cloud Monitoring en Google Cloud Console proporcionan acceso solo a las series temporales almacenadas en el proyecto de alcance. El proyecto de alcance es el proyecto que seleccionaste con el selector de proyectos de Cloud Console. El proyecto de alcance almacena las alertas, verificaciones de tiempo de actividad, paneles y grupos de supervisión que configures.

El proyecto de alcance también aloja un alcance de métricas. El alcance de las métricas define los proyectos y las cuentas cuyas métricas son visibles para el proyecto de alcance. Puedes configurar el alcance de las métricas para incluir datos de series temporales de otros proyectos de Google Cloud y cuentas de AWS. Para obtener más información sobre cómo modificar un alcance de métricas, consulta Modifica la configuración de Cloud Monitoring de tu proyecto.

Usa interfaces programáticas y gráficas

Puedes usar Google Cloud Console para ver tus datos de métricas y crear y administrar políticas de alertas, paneles y verificaciones de tiempo de actividad.

También puedes usar la API de Cloud Monitoring directamente para escribir datos de métricas personalizadas y crear y administrar políticas de alertas, paneles y verificaciones de tiempo de actividad. Las páginas de referencia de la API de Cloud Monitoring, como la página alertPolicies.list, te permiten experimentar con llamadas a la API directamente desde la página de referencia.

¿Qué sigue?