Descripción general de Cloud Monitoring

En este documento, se proporciona una descripción general de Cloud Monitoring, que forma parte del operations suite de Google Cloud. Cloud Monitoring se integra en la mayoría de los servicios de Google Cloud y recopila y almacena automáticamente información sobre el rendimiento de esos servicios. También puede recopilar métricas de sistemas y aplicaciones de aplicaciones de terceros. Las herramientas de visualización y análisis de datos que proporciona Cloud Monitoring te ayudan a responder preguntas importantes, como las siguientes:

  • ¿Cuál es la carga de mi servicio?
  • ¿Mi sitio web responde correctamente?
  • ¿Mi servicio funciona bien?

Cloud Monitoring proporciona compatibilidad con la consola y la API de Google Cloud para la mayoría de sus servicios, y las páginas de referencia de la API de Cloud Monitoring, como la página alertPolicies.list, te permiten experimentar con las llamadas a la API directamente desde la página de referencia.

Este documento está dirigido a desarrolladores y administradores de sistemas que necesitan supervisar el rendimiento de un servicio o sistema.

Supervise la carga de un servicio

Para comprender la carga actual de un servicio o ver los datos de rendimiento de tu servicio del mes pasado, usa las herramientas de gráficos. Puedes graficar y supervisar los datos de métricas (numéricos) 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 el funcionamiento del 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 la aplicación que recopilan los agentes de Google Cloud's operations suite. Estas métricas proporcionan información adicional sobre los recursos del sistema y las aplicaciones que se ejecutan en instancias de Compute Engine. De manera opcional, puedes configurar el agente de modo que recopile métricas de complementos de terceros, como los servidores web Apache o Nginx, o las bases de datos de MongoDB o PostgreSQL.

  • Métricas definidas por el usuario que tu servicio escriba mediante la API de Cloud Monitoring o una biblioteca como OpenTelemetry.

  • 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 recuentos de errores que tu servicio detecta 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.

Para visualizar tus datos y ver las tendencias, identificar valores atípicos y ver otros detalles sobre tus datos, puedes usar las siguientes herramientas:

  • Paneles de Google Cloud: Cloud Monitoring crea automáticamente estos paneles según los recursos que usa tu proyecto de Google Cloud.

    Por ejemplo, cuando un proyecto de Google Cloud contiene instancias de VM de Compute Engine, los paneles para esas instancias de VM y discos se crean automáticamente. Mediante el panel Instancias de VM, puedes ver detalles como el uso del disco y la memoria, identificar direcciones IP y, además, 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 proporcionan 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. Por ejemplo, puedes mostrar datos de métricas, políticas de alertas y registros almacenados en tu proyecto de Google Cloud. Puedes mostrar datos de series temporales en un gráfico, con un indicador o cuadro de evaluación, o en formato tabular. Los paneles también admiten widgets de texto. Puedes crear un panel personalizado con la API de Dashboards o la consola de Google Cloud.

  • Gráficos: Puedes agregar gráficos a un panel personalizado o puedes usar el Explorador de métricas, una herramienta de gráficos diseñada para permitirte crear gráficos y explorar datos de series temporales con rapidez. Puedes guardar gráficos creados con el Explorador de métricas en un panel personalizado.

Cuando creas un gráfico, debes seleccionar los datos de serie temporal que deseas ver. Por ejemplo, puedes configurar un gráfico para que muestre datos de instancias de VM de Compute Engine que se encuentran en la zona us-east-1d.

La configuración del gráfico te permite comparar los datos actuales con los datos anteriores, mostrar valores atípicos y percentiles, y mostrar varias métricas. Por ejemplo, la siguiente captura de pantalla muestra un gráfico que muestra la cantidad de bytes leídos y escritos por una sola VM:

El Explorador de métricas muestra bytes de lectura y escritura en el disco.

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

Supervisa la disponibilidad del sitio web

Para supervisar si un sitio web responde, configura una verificación de tiempo de actividad. Estas verificaciones sondean periódicamente el servicio de un modo que imita la forma en que los clientes acceden a él y, luego, registran el éxito y la latencia del sondeo.

Para ver información sobre tus verificaciones de tiempo de actividad, Cloud Monitoring proporciona un panel que resume el estado de cada verificación de tiempo de actividad y un panel con información detallada de cada una. En la vista de detalles de una verificación de tiempo de actividad, se muestra el éxito o el fracaso de la respuesta y la latencia de la respuesta, junto con los detalles sobre la verificación del 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.

Recibe notificaciones cuando un servicio no tenga un buen rendimiento

Si deseas recibir una notificación cuando el rendimiento de un servicio cumpla con los criterios que definiste, crea una política de alertas. Por ejemplo, puedes crear una política de alertas que notifique a tu equipo de guardia cuando el percentil 90 de la latencia de las respuestas HTTP 200 de tu servicio supere los 100 ms. De manera similar, puedes recibir una notificación cuando falla una verificación de tiempo de actividad.

Las políticas de alertas te permiten configurar si una sola serie temporal puede hacer que se cumpla una condición o si varias series temporales deben satisfacerla antes de que se cumpla. Las políticas de alertas pueden ser simples o complejas. Por ejemplo:

  • Notificarme cuando falle una verificación de tiempo de actividad del dominio example.com durante al menos tres minutos.

  • Notifica al equipo de guardia cuando el percentil 90 de las respuestas HTTP 200 supere una latencia de 100 ms para 3 servidores web o más en 2 ubicaciones de Google Cloud, siempre que haya menos de 15 QPS en el servidor.

  • Notificarme cuando la carga de CPU de cualquier instancia de VM en mi proyecto de Google Cloud sea mayor que un umbral de 0.6

Cloud Monitoring proporciona un panel que resume el estado de tus políticas de alertas y, para cada una, proporciona información detallada. Como se muestra en la siguiente captura de pantalla, el panel detallado de una alerta muestra los datos que se supervisan, el umbral de alerta, los canales de notificaciones, una lista de incidentes y cualquier documentación definida por el usuario que se incluya en una notificación:

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

Las condiciones son el componente central de una política de alertas. Una condición describe un posible problema con el sistema que quieres que Cloud Monitoring supervise. Por ejemplo, puedes describir condiciones como las siguientes:

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

Cuando se cumplen las condiciones de una política de alertas, por ejemplo, cuando 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 el recurso que se supervisa. Por ejemplo, una política de alertas que supervisa el uso de CPU almacenará información sobre la VM cuyo uso hace que se cumpla la condición. Cuando la condición deja de cumplirse, el incidente se cierra automáticamente. Puedes ver todos los incidentes, tanto abiertos como cerrados, mediante el panel de alertas.

Tú especificas quién recibirá una notificación cuando configures una política de alertas. Monitoring admite canales comunes de notificaciones, incluidos el correo electrónico, Cloud Mobile App y servicios como PagerDuty o Slack. Para obtener una lista completa de los canales de notificaciones, consulta Cómo crear y administrar canales de notificaciones.

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

Supervisar sistemas grandes

En esta sección, se describe cómo puedes administrar los recursos como una colección y cómo supervisar las métricas que se almacenan en varios proyectos de Google Cloud.

Administra recursos como una colección

Para administrar los recursos como una colección en lugar de hacerlo de forma individual, crea 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 Google Cloud, la membresía del grupo cambia de forma automática. Los siguientes son ejemplos de grupos de recursos:

  • 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 B.

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

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

Supervisar las métricas de varios proyectos de Google Cloud

Para 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, configura el alcance de las 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 permisos. El proyecto de permisos es el que seleccionaste mediante el selector de proyectos de la consola de Google Cloud. El proyecto de alcance almacena las alertas, verificaciones de tiempo de actividad, paneles y grupos de supervisión que configures.

El proyecto de permisos también aloja un permiso de métricas. El permiso de métricas define los proyectos y las cuentas cuyas métricas son visibles para el proyecto de permisos. Puedes configurar el permiso de las métricas para incluir datos de series temporales de otros proyectos de Google Cloud y de cuentas de AWS. Si quieres obtener información para modificar el alcance de las métricas, consulta Configura el alcance de las métricas para varios proyectos.

Modelo de datos de Cloud Monitoring

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

  • Una métrica describe algo que se mide. Los 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 de una métrica con marca de tiempo y la información sobre la fuente y el significado de esas mediciones.

Por ejemplo, a continuación se muestra 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",

    },

Estos son algunos detalles sobre el contenido de una serie temporal:

  • El array points contiene las medidas con marca de tiempo.

    En el ejemplo anterior, el array 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 las series temporales y las definiciones de esos datos.

  • En el campo resource, se 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 incluyen 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"
        }
    
    • En el campo type, se muestra el recurso supervisado como un gce_instance, que indica que estas mediciones se realizan 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.

  • En el campo metric, se describe lo que se mide.

    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. Cuando 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 de 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 adyacentes dentro de una serie temporal:

    • Las métricas 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 DELTA almacenan el cambio en el valor de lo que se mide durante un período específico, por ejemplo, un resumen de acciones que muestra las ganancias o pérdidas de las acciones.

  • 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, cuando un proyecto de Google Cloud contiene varias instancias de VM de Compute Engine, el uso de CPU para cada instancia de VM es una serie temporal única. Estas son algunas de las maneras en las que puedes mostrar estos datos:

  • Puede mostrar el uso de CPU de cada instancia de VM.
  • Puedes mostrar el uso de CPU de una instancia de VM específica si filtras las series temporales por un valor único de la etiqueta instance_id.
  • Puedes agrupar por instancias de VM según la etiqueta machine_type y, luego, mostrar el uso promedio de CPU. En la siguiente captura de pantalla, se muestra un gráfico con esta configuración:

    Uso de CPU promedio agrupado por tipo de máquina.

¿Qué sigue?