Usa el Agente de operaciones y el protocolo OpenTelemetry (OTLP)

En este documento, se describe cómo usar el agente de operaciones y el receptor del protocolo OpenTelemetry (OTLP) para recopilar métricas y seguimientos definidos por el usuario de aplicaciones instrumentadas con OpenTelemetry y que se ejecutan en Compute Engine.

Este documento está organizado de la siguiente manera:

Descripción general del uso del receptor OTLP

Con el receptor de OTLP del agente de operaciones, puedes hacer lo siguiente:

  • Instrumenta tu aplicación con uno de los SDK específicos para cada lenguaje para OpenTelemetry. Para obtener información de los lenguajes compatibles, consulta Instrumentación de OpenTelemetry. La combinación de los SDKs de OpenTelemetry y el agente de operaciones hace lo siguiente:
    • Recopila métricas de OTLP desde tu aplicación y las envía a Cloud Monitoring para su análisis.
    • Recopila intervalos de OTLP (datos de seguimiento) de la aplicación y, luego, los envía a Cloud Trace para analizarlos.
  • Recopila seguimientos de aplicaciones de terceros que tengan compatibilidad integrada en OTLP o complementos con aplicaciones compatibles, como Nginx. El receptor de OTLP en el agente de operaciones puede recopilar esos seguimientos. Para ver un ejemplo, consulta el módulo de nginx de OpenTelemetry.
  • Usa la Instrumentación personalizada de OpenTelemetry.
  • Usa la instrumentación automática de OpenTelemetry.

Puedes usar el receptor para recopilar métricas, seguimientos o ambos. Una vez que el agente de operaciones haya recopilado tus métricas, puedes usar las funciones de Cloud Monitoring, incluidos los gráficos, los paneles y las políticas de alertas, para supervisarlas. Si tu aplicación también envía datos de seguimiento, puedes usar Cloud Trace para analizarlos.

Beneficios

Antes de que se encontrara disponible el complemento OTLP para el agente de operaciones, las principales formas de instrumentar tus aplicaciones para recopilar métricas y seguimientos definidos por el usuario incluían las siguientes:

  • Usar bibliotecas cliente que implementen la API de Monitoring o la API de Trace
  • Usar las bibliotecas anteriores de OpenCensus.

El uso de OpenTelemetry con el receptor de OTLP tiene varios beneficios sobre estos métodos, incluidos los siguientes:

  • OpenTelemetry es el reemplazo de OpenCensus. El proyecto de OpenCensus se archivará. Para obtener más información, consulta ¿Qué es OpenTelemetry?.
  • La transferencia se controla a nivel del agente, por lo que no tienes que volver a implementar tus aplicaciones si la configuración del agente cambia.
  • Tus aplicaciones no necesitan configurar las credenciales de Google Cloud; toda la autorización se maneja a nivel del agente.
  • El código de la aplicación no contiene código de supervisión o seguimiento específico de Google Cloud. No es necesario que uses la API de Monitoring ni la API de Trace de forma directa.
  • Tu aplicación envía datos al agente de operaciones y, si falla, no se pierden los datos que haya recopilado el agente de operaciones.

Limitaciones

El objeto de escucha de OTLP que expone el receptor del agente de operaciones admite el transporte de gRPC. No se admite HTTP, que se usa de forma principal para los clientes de JavaScript Para obtener más información del protocolo OpenTelemetry, consulta Detalles del protocolo.

El receptor de OTLP no recopila registros. Puedes recopilar registros con el agente de operaciones y otros receptores. Además, puedes incluir información de registro en los intervalos de OTLP, pero el receptor de OTLP no admite la recopilación directa de registros. Si deseas obtener información del uso del agente de operaciones para recopilar registros, consulta Opciones de configuración del registro.

Requisitos previos

Para recopilar métricas y seguimientos de OTLP con el receptor de OTLP y el agente de operaciones, debes instalar el agente de operaciones versión 2.37.0 o posterior.

En este documento, se supone que ya tienes una aplicación basada en OpenTelemetry escrita con uno de los SDK de OpenTelemetry. En este documento, no se abarca el uso de los SDK de OpenTelemetry. Para obtener información de los SDK y los lenguajes compatibles, consulta Instrumentación de OpenTelemetry.

Configurar el agente de operaciones

Para configurar el agente de operaciones para que use el receptor de OTLP, haz lo siguiente:

  1. Modifica el archivo de configuración del usuario para que el agente de operaciones incluya el receptor de OTLP.
  2. Reinicia el Agente de operaciones.

En las siguientes secciones, se describe cada paso.

Modifica el archivo de configuración del usuario del agente de operaciones

Agrega los elementos de configuración del receptor de OTLP al archivo de configuración del usuario para el agente de operaciones:

  • Para Linux: /etc/google-cloud-ops-agent/config.yaml
  • Para Windows: C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml

Para obtener información general sobre la configuración del agente, consulta Modelo de configuración.

El receptor de OTLP presenta la sección de configuración combined para el agente de operaciones. El uso del receptor requiere que configures los servicios para las métricas y los seguimientos, incluso si no usas ambos.

En las siguientes secciones, se describen los pasos de configuración del receptor de OTLP.

Agrega la sección del receptor combined

Coloca el receptor para las métricas y los seguimientos de OTLP en la sección combined. No se permiten procesadores ni servicios en la sección combined. No debes configurar ningún otro receptor con el mismo nombre que un receptor en la sección combined. En el siguiente ejemplo, se usa otlp como el nombre del receptor.

La configuración mínima de combined para OTLP se ve de la siguiente manera:

combined:
  receivers:
    otlp:
      type: otlp

El receptor otlp tiene las siguientes opciones de configuración:

  • type: Obligatorio. Debe ser otlp
  • grpc_endpoint: Opcional Es el extremo de gRPC en el que escucha el receptor de OTLP. La configuración predeterminada es 0.0.0.0:4317.
  • metrics_mode: Opcional La configuración predeterminada es googlemanagedprometheus, lo que significa que el receptor envía métricas de OTLP como métricas con formato de Prometheus con la API de Prometheus que también usa el servicio administrado para Prometheus.

    Para enviar las métricas como métricas personalizadas de Cloud Monitoring mediante la API de Monitoring, configura la opción metrics_mode en el valor googlecloudmonitoring.

    Esta elección afecta la forma en que se transfieren tus métricas y cómo se miden para la facturación. Para obtener más información de los formatos de las métricas, consulta Formatos de transferencia para métricas de OTLP.

Agrega canalizaciones de OTLP a tus servicios

El receptor de OTLP puede recopilar métricas y seguimientos, por lo que debes definir un servicio para las métricas y los seguimientos. Si no vas a recopilar métricas ni seguimientos, puedes crear servicios vacíos. Si ya tienes servicios con otras canalizaciones, puedes agregarles la canalización de OTLP.

A continuación, se muestran los servicios metrics y traces con el receptor de OTLP incluido en las canalizaciones:

combined:
  receivers:
    otlp:
      type: otlp
metrics:
  service:
    pipelines:
      otlp:
        receivers: [otlp]
traces:
  service:
    pipelines:
      otlp:
        receivers: [otlp]

Si no quieres usar el servicio metrics o traces para la recopilación de OTLP, deja el receptor de OTLP fuera de la canalización del servicio. El servicio debe existir, incluso si no tiene canalización. Si tu aplicación envía datos de un tipo determinado y no hay una canalización correspondiente que incluya el receptor, el agente de operaciones descarta los datos.

Reinicia el Agente de operaciones

Para aplicar los cambios de configuración, debes reiniciar el agente de operaciones.

Linux

  1. Para reiniciar el agente, ejecuta el siguiente comando en tu instancia:
    sudo systemctl restart google-cloud-ops-agent
    
  2. Para confirmar que el agente se reinició, ejecuta el siguiente comando y verifica que los componentes “Agente de métricas” y “Agente de Logging” se iniciaron:
    sudo systemctl status "google-cloud-ops-agent*"
    

Windows

  1. Conéctate a tu instancia con RDP o una herramienta similar y accede a Windows.
  2. Haz clic con el botón derecho en el ícono de PowerShell y selecciona Ejecutar como administrador para abrir una terminal de PowerShell con privilegios de administrador.
  3. Para reiniciar el agente, ejecuta el siguiente comando de PowerShell:
    Restart-Service google-cloud-ops-agent -Force
    
  4. Para confirmar que el agente se reinició, ejecuta el siguiente comando y verifica que los componentes “Agente de métricas” y “Agente de Logging” se iniciaron:
    Get-Service google-cloud-ops-agent*
    

Recopila métricas de OTLP

Cuando usas el receptor de OTLP para recopilar métricas de tus aplicaciones de OpenTelemetry, la opción de configuración principal para el receptor es la API que deseas usar a fin de transferir las métricas.

Esta elección se realiza con el cambio de la opción metrics_mode en la configuración del receptor otlp o con el valor predeterminado. La elección afecta la forma en que se transfieren tus métricas de OTLP a Cloud Monitoring y cómo se miden esos datos para fines de facturación.

La opción metrics_mode no afecta la capacidad de crear gráficos, paneles y políticas de alertas en Monitoring.

En las siguientes secciones, se describen las diferencias en los formatos que usan los modos de métricas y cómo consultar los datos transferidos para usarlos en Monitoring.

Formatos de transferencia para métricas de OTLP

El receptor de OTLP proporciona la opción metrics_mode, que especifica la API que se usa para transferir los datos de métrica. De forma predeterminada, el receptor usa la API de Prometheus; el valor predeterminado para la opción metrics_mode es googlemanagedprometheus. Las métricas se transfieren con la misma API que usa el servicio administrado para Prometheus.

Puedes configurar el receptor para que envíe tus datos de métricas a la API de Cloud Monitoring. Para enviar datos a la API de Monitoring, configura el valor de la opción metrics_mode en googlecloudmonitoring, como se muestra en el siguiente ejemplo:

combined:
  receivers:
    otlp:
      type: otlp
      metrics_mode: googlecloudmonitoring

El formato de transferencia que usas determina cómo se asignan las métricas de OTLP en Cloud Monitoring. Puedes crear gráficos, paneles y políticas de alertas en Monitoring para métricas de cualquier formato, pero te refieres a las métricas de forma diferente en las consultas.

El formato de transferencia también determina el modelo de precios que se usa para la transferencia de datos.

En las siguientes secciones, se describen los precios, las diferencias estructurales entre una métrica transferida por la API de Prometheus y la misma métrica transferida por la API de Monitoring, y cómo hacer referencia a las métricas en las consultas.

Precios y cuota

El formato de transferencia que usas determina cómo se cobran las métricas de OTLP:

  • API de Prometheus: Cuando usas la API de Prometheus para transferir las métricas de tu aplicación, los datos están sujetos a precios basados en muestra, como si las métricas vinieran con Managed Service for Prometheus

  • API de Monitoring: Cuando usas la API de Monitoring para transferir las métricas de tu aplicación, los datos están sujetos a precios basados en el volumen, como los datos de otras integraciones con el agente de operaciones.

Las métricas transferidas con el receptor de OTLP se consideran tipos de métricas “personalizadas” cuando se transfieren a Cloud Monitoring y están sujetas a las cuotas y los límites de las métricas personalizadas.

Estructura de las métricas

Cloud Monitoring describe el formato de los datos de las métricas con un esquema llamado descriptor de métrica. El descriptor de métrica incluye el nombre de la métrica, el tipo de datos de los valores de la métrica, cómo se relaciona cada valor con los valores anteriores y cualquier etiqueta asociada con los valores. Si configuras el receptor de OTLP para transferir métricas con la API de Prometheus, el descriptor de métricas que se crea difiere del descriptor de métricas creado cuando usas la API de Monitoring.

API de Prometheus: Cuando usas la API de Prometheus para transferir las métricas de tu aplicación, cada métrica se transforma con el uso del estándar Transformación de OpenTelemetry a Prometheus y se asigna a un tipo de recurso supervisado de Cloud Monitoring.

  • La transformación incluye los siguientes cambios:
    • El nombre de la métrica de OTLP tiene el prefijo prometheus.googleapis.com/.
    • Los caracteres que no sean alfanuméricos, como los puntos (.), en el nombre de la métrica de OTLP se reemplazan por guiones bajos (_).
    • El nombre de la métrica de OTLP se fija con una string que indica el tipo de métrica, como /gauge o /counter.
  • Las siguientes etiquetas, propagadas con valores del recurso OTLP, se agregan a la métrica:
    • instance_name: Es el valor del atributo de recurso host.name.
    • machine_type: El valor del atributo de recurso host.type.
  • El recurso supervisado registrado con las mediciones de las métricas es el tipo genérico prometheus_target. La serie temporal de Prometheus generada incluye las siguientes etiquetas del recurso prometheus_target, propagadas con valores del recurso OTLP:

    • location: Es el valor del atributo del recurso cloud.availability_zone.
    • namespace: Es el valor del atributo de recurso host.id.

    El tipo de recurso prometheus_target también incluye estas etiquetas:

    • project_id: Es el identificador del proyecto de Google Cloud, como my-project, en el que se ejecuta el agente de operaciones.
    • cluster: El valor es siempre __gce__ cuando el agente de operaciones recopila métricas.

Si a los datos de OTLP entrantes les faltan los atributos de recursos usados para los valores de etiquetas, los valores se toman de la información de la VM que ejecuta el agente de operaciones. Este comportamiento significa que los datos de OTLP sin estos atributos de recursos aparecen con las mismas etiquetas que los datos recopilados por el receptor de Prometheus del agente de operaciones.

API de Monitoring: Cuando usas la API de Monitoring para transferir las métricas de tu aplicación, cada métrica se controla de la siguiente manera:

  • El nombre de la métrica de OTLP tiene el prefijo workload.googleapis.com/ con la string, a menos que el nombre de la métrica de OTLP ya contenga esta string o algún otro dominio de métrica válido, como custom.googleapis.com. Te recomendamos usar el dominio “carga de trabajo”.
  • El recurso supervisado registrado con las mediciones de las métricas es el tipo de máquina virtual gce_instance de Compute Engine.

En los siguientes ejemplos, se muestran los descriptores de métricas para un par de métricas de OpenTelemetry. Las métricas se crean con una aplicación que usa la biblioteca de métricas de OpenTelemetry de Go. En la pestaña API de Prometheus, se muestra el descriptor de métricas creado cuando el receptor de OTLP usa el modo de métricas predeterminado de Prometheus. En la pestaña API de Monitoring, se muestra el descriptor de métrica creado cuando el receptor de OTLP usa el modo de métrica googlecloudmonitoring.

No cambia nada en la aplicación que crea la métrica. El único cambio es el modo de métrica que usa el receptor de OTLP.

La aplicación crea una métrica de indicador de OTLP, otlp.test.gauge, que registra valores de punto flotante de 64 bits. En las siguientes pestañas, se muestra el descriptor de métrica que crea cada API de transferencia:

API de Prometheus

{
  "name": "projects/PROJECT_ID/metricDescriptors/prometheus.googleapis.com/otlp_test_gauge/gauge",
  "labels": [
    {
      "key": "instance_name"
    },
    {
      "key": "machine_type"
    }
  ],
  "metricKind": "GAUGE",
  "valueType": "DOUBLE",
  "type": "prometheus.googleapis.com/otlp_test_gauge/gauge",
  "monitoredResourceTypes": [
    "prometheus_target"
  ]
}

API de Monitoring

{
  "name": "projects/PROJECT_ID/metricDescriptors/workload.googleapis.com/otlp.test.gauge",
  "labels": [
    {
      "key": "instrumentation_source"
    }
  ],
  "metricKind": "GAUGE",
  "valueType": "DOUBLE",
  "type": "workload.googleapis.com/otlp.test.gauge",
  "monitoredResourceTypes": [
    "gce_instance",
    ...many other types deleted...
  ]
}

La aplicación crea una métrica de contador OTLP, otlp.test.cumulative, que registra valores cada vez más altos de punto flotante de 64 bits. En las siguientes pestañas, se muestra el descriptor de métrica que crea cada API de transferencia:

API de Prometheus

{
  "name": "projects/PROJECT_ID/metricDescriptors/prometheus.googleapis.com/otlp_test_cumulative/counter",
  "labels": [
    {
      "key": "instance_name"
    },
    {
      "key": "machine_type"
    }
  ],
  "metricKind": "CUMULATIVE",
  "valueType": "DOUBLE",
  "type": "prometheus.googleapis.com/otlp_test_cumulative/counter",
  "monitoredResourceTypes": [
    "prometheus_target"
  ]
}

API de Monitoring

{
  "name": "projects/PROJECT_ID/metricDescriptors/workload.googleapis.com/otlp.test.cumulative",
  "labels": [
    {
      "key": "instrumentation_source"
    }
  ],
  "metricKind": "CUMULATIVE",
  "valueType": "DOUBLE",
  "type": "workload.googleapis.com/otlp.test.cumulative",
  "monitoredResourceTypes": [
    "gce_instance",
    ...many other types deleted...
  ]
}

En la siguiente tabla, se resumen algunas de las diferencias de formato que imponen las APIs que se usan para transferir las métricas de OTLP:

  API de Prometheus API de Monitoring
Dominio de métrica prometheus.googleapis.com workload.googleapis.com
Nombre de la métrica de OTLP Modificado durante la transferencia Se usa tal como se proporciona
Recurso supervisado prometheus_target gce_instance

Formatos y consultas de transferencia

El modo de métricas que se usa en el receptor de OTLP afecta la forma en que consultas las métricas resultantes en Cloud Monitoring cuando compilas gráficos, paneles y políticas de alertas.

Cuando configuras un gráfico, un panel o una política de alertas en Cloud Monitoring, la configuración incluye una consulta de los datos en los que opera el gráfico, el panel o la política de alertas.

Cloud Monitoring admite las siguientes herramientas para consultar datos de métricas:

  • Una interfaz basada en el compilador de consultas integrada en herramientas como el Explorador de métricas, la interfaz del Creador de paneles y la interfaz de configuración de políticas de alertas.
  • Lenguaje de consulta de Monitoring (MQL): Un lenguaje de consulta basado en texto específico de Cloud Monitoring.
  • Lenguaje de consulta de Prometheus (PromQL): el lenguaje de consulta basado en texto que usa Prometheus de código abierto.

Para obtener información para consultar las métricas de OTLP con estas herramientas, consulta los siguientes vínculos:

Consulta las métricas de OTLP transferidas con la API de Prometheus

En esta sección, se ilustra cómo consultar las métricas de OTLP transferidas con la API de Prometheus, que es el modo de métrica predeterminado para el receptor de OTLP.

Las consultas se basan en las métricas de OTLP que se describen en Estructura de métrica:

  • otlp.test.gauge: una métrica de indicador OTLP que registra valores de punto flotante de 64 bits.
  • otlp.test.cumlative: una métrica de contador de OTLP que registra valores de punto flotante de aumento de 64 bits.

Estas métricas se transfieren a Cloud Monitoring con los siguientes tipos de métricas, que funcionan como nombres:

  • prometheus.googleapis.com/otlp_test_gauge/gauge
  • prometheus.googleapis.com/otlp_test_cumulative/counter

Las métricas transferidas con la API de Prometheus se escriben en el tipo de recurso supervisado prometheus_target.

En las pestañas, se muestra cómo se ven las consultas básicas cuando se consultan las métricas con la consola de Google Cloud. En estos ejemplos, se usa el Explorador de métricas, pero los principios son los mismos para los paneles y las políticas de alertas

Interfaz del compilador de consultas

Para usar una interfaz del compilador de consultas para consultar los datos de las métricas, especifica el tipo de métrica y el tipo de recurso supervisado con la escritura en los campos habilitados para la búsqueda. Hay muchos menos tipos de recursos que tipos de métricas, por lo que es más eficaz buscar el tipo de recurso y usar el menú de métricas asociadas para encontrar el tipo de métrica.

Si ingresas “prometheus” en el campo de búsqueda, los resultados incluirán el recurso supervisado prometheus_target, que se muestra con el nombre visible “Destino de Prometheus” y el conjunto de métricas que escriben en el recurso. Las métricas se clasifican por nombre. Las dos métricas de ejemplo aparecen como la categoría Otlp. Puedes seleccionar Prometheus/otlp_test_cumulative/counter o Prometheus/otlp_test_gauge/gauge.

Para obtener más información del uso del compilador de consultas, visita Compila consultas con menús.

En la siguiente captura de pantalla, se muestra el resultado de la consulta de la métrica prometheus.googleapis.com/otlp_test_gauge/gauge:

Gráfico del Explorador de métricas basado en el compilador para la métrica del indicador OTLP transferida con la API de Prometheus.

En la siguiente captura de pantalla, se muestra el resultado de la consulta a la métrica prometheus.googleapis.com/otlp_test_cumulative/counter:

Gráfico del Explorador de métricas basado en compilador para la métrica de contador de OTLP transferida con la API de Prometheus.

MQL

Para consultar datos de métricas con MQL, usa una declaración fetch y especifica el tipo de métrica y el tipo de recurso supervisado, con :: entre ellos. Las consultas de MQL triviales para las métricas de ejemplo se ven de la siguiente manera:

  • fetch prometheus.googleapis.com/otlp_test_gauge/gauge::prometheus_target
  • fetch prometheus.googleapis.com/otlp_test_cumulative/counter::prometheus_target

Para obtener más información para crear consultas de MQL, consulta Ejemplos de consultas de MQL.

En la siguiente captura de pantalla, se muestra el resultado de la consulta de la métrica prometheus.googleapis.com/otlp_test_gauge/gauge:

Gráfico del explorador de métricas de MQL para la métrica del indicador OTLP transferida con la API de Prometheus.

En la siguiente captura de pantalla, se muestra el resultado de la consulta de la métrica prometheus.googleapis.com/otlp_test_cumulative/counter:

Gráfico del Explorador de métricas de MQL para la métrica de contador de OTLP transferida con la API de Prometheus.

PromQL

Cuando usas PromQL para consultar datos de métricas que se transfirieron con la API de Prometheus, solo debes especificar el formato modificado del nombre de la métrica OTLP original. No es necesario especificar la string con el prefijo prometheus.googleapis.com/ ni el tipo de sufijo.

Cuando la métrica se puede escribir en un solo tipo de recurso supervisado, no necesitas especificar el recurso. Como se describe en Estructura de métrica, las métricas de OTLP transferidas con la API de Prometheus se escriben solo en el tipo de recurso supervisado prometheus_target. Las consultas de PromQL triviales para las métricas de ejemplo se ven de la siguiente manera:

  • otlp_test_gauge
  • otlp_test_cumulative

Si deseas obtener más información para usar PromQL en Cloud Monitoring para consultar las métricas transferidas con la API de Prometheus, consulta Datos de Google Cloud Managed Service para Prometheus en Cloud Monitoring. Para obtener información del lenguaje PromQL, consulta Consulta Prometheus.

En la siguiente captura de pantalla, se muestra el resultado de la consulta a la métrica prometheus.googleapis.com/otlp_test_gauge/gauge:

Gráfico del Explorador de métricas de PromQL para la métrica del indicador OTLP transferida con la API de Prometheus.

En la siguiente captura de pantalla, se muestra el resultado de la consulta a la métrica prometheus.googleapis.com/otlp_test_cumulative/counter:

Gráfico del Explorador de métricas de PromQL para la métrica de contador de OTLP transferida con la API de Prometheus.

Consulta las métricas de OTLP que se transfieren con la API de Monitoring

En esta sección, se ilustra cómo consultar las métricas de OTLP transferidas con la API de Monitoring. Para seleccionar la API de Cloud Monitoring, configura el campo metrics_mode del receptor OTLP en el valor googlecloudmonitoring.

Las consultas se basan en las métricas de OTLP descritas en Estructura de métrica:

  • otlp.test.gauge: una métrica de indicador OTLP que registra valores de punto flotante de 64 bits.
  • otlp.test.cumlative: una métrica de contador de OTLP que registra valores de punto flotante de aumento de 64 bits.

Estas métricas se transfieren a Cloud Monitoring con los siguientes tipos de métricas, que funcionan como nombres:

  • workload.googleapis.com/otlp.test.gauge
  • workload.googleapis.com/otlp.test.cumulative

Las métricas transferidas con la API de Monitoring se escriben en el tipo de recurso supervisado gce_instance.

En las pestañas, se muestra cómo se ven las consultas básicas cuando se consultan las métricas con la consola de Google Cloud. En estos ejemplos, se usa el Explorador de métricas, pero los principios son los mismos para los paneles y las políticas de alertas

Interfaz del compilador de consultas

Para usar una interfaz del compilador de consultas para consultar los datos de las métricas, especifica el tipo de métrica y el tipo de recurso supervisado con la escritura en los campos habilitados para la búsqueda. Hay muchos menos tipos de recursos que tipos de métricas, por lo que es más eficaz buscar el tipo de recurso y usar el menú de métricas asociadas para encontrar el tipo de métrica.

Si ingresas "gce_instance" en el campo de búsqueda, los resultados muestran el tipo de recurso por su nombre visible, "Instancia de VM", y el conjunto de métricas que escriben en el recurso. Las métricas se clasifican por nombre. Las dos métricas de ejemplo aparecen como la categoría Otlp. Puedes seleccionar Workload/otlp_test_cumulative o Workload/otlp_test_gauge.

Para obtener más información del uso del compilador de consultas, visita Compila consultas con menús.

En la siguiente captura de pantalla, se muestra el resultado de la consulta a la métrica workload.googleapis.com/otlp.test.gauge:

Gráfico del Explorador de métricas basado en el compilador para la métrica del indicador OTLP transferida con la API de Monitoring.

En la siguiente captura de pantalla, se muestra el resultado de la consulta a la métrica workload.googleapis.com/otlp.test.cumulative:

Gráfico del Explorador de métricas basado en compilador para la métrica de contador de OTLP transferida con la API de Monitoring.

MQL

Para consultar datos de métricas con MQL, usa una declaración fetch y especifica el tipo de métrica y el tipo de recurso supervisado, con :: entre ellos. Las consultas de MQL triviales para las métricas de ejemplo se ven de la siguiente manera:

  • fetch workload.googleapis.com/otlp.test.gauge::gce_instance
  • fetch workload.googleapis.com/otlp.test.cumulative::gce_instance

Para obtener más información para crear consultas de MQL, consulta Ejemplos de consultas de MQL.

En la siguiente captura de pantalla, se muestra el resultado de la consulta de la métrica workload.googleapis.com/otlp.test.gauge:

Gráfico del Explorador de métricas de MQL para la métrica del indicador OTLP transferida con la API de Monitoring.

En la siguiente captura de pantalla, se muestra el resultado de la consulta de la métrica workload.googleapis.com/otlp.test.cumulative:

Gráfico del Explorador de métricas de MQL para la métrica de contador de OTLP transferida con la API de Monitoring.

PromQL

Cuando usas PromQL para consultar datos de métricas que se transfirieron con la API de Monitoring, debes asignar el nombre de la métrica a las convenciones de PromQL. Las reglas de asignación básicas incluyen lo siguiente:

  • Reemplaza el primer / por :.
  • Reemplaza todos los demás caracteres especiales (incluidos . y otros caracteres /) por _.

Para obtener más información de las reglas de asignación, consulta Asigna métricas de Cloud Monitoring a PromQL.

Los tipos de métricas de Monitoring para las métricas de ejemplo se asignan a PromQL de la siguiente manera:

  • workload_googleapis_com:otlp_test_gauge
  • workload_googleapis_com:otlp_test_cumulative

Cuando la métrica se puede escribir en un solo tipo de recurso supervisado, no es necesario que especifiques el recurso. Las métricas de ejemplo se escriben en el tipo de recurso supervisado gce_instance, pero, como se describe en Estructura de métrica, gce_instance es solo uno de los tipos de métricas posibles. Por lo tanto, las consultas de PromQL para estas métricas deben incluir un filtro para el tipo de recurso gce_instance. Para incluir el filtro, agrega la siguiente string al final de los nombres de las métricas asignadas: {monitored_resource="gce_instance"}

Para obtener más información del uso de PromQL en Cloud Monitoring, consulta PromQL en Cloud Monitoring. Para obtener información del lenguaje PromQL, consulta Consulta Prometheus.

Las consultas de PromQL triviales para las métricas de ejemplo se ven de la siguiente manera:

  • workload_googleapis_com:otlp_test_gauge{monitored_resource="gce_instance"}
  • workload_googleapis_com:otlp_test_cumulative{monitored_resource="gce_instance"}

En la siguiente captura de pantalla, se muestra el resultado de la consulta a la métrica workload.googleapis.com/otlp.test.gauge:

Gráfico del Explorador de métricas de PromQL para la métrica del indicador OTLP transferida con la API de Monitoring.

En la siguiente captura de pantalla, se muestra el resultado de la consulta a la métrica workload.googleapis.com/otlp.test.cumulative:

Gráfico del Explorador de métricas de PromQL para la métrica de contador de OTLP transferida con la API de Monitoring.

Visualiza el uso y el diagnóstico de las métricas en Cloud Monitoring

En la página Administración de métricas de Cloud Monitoring, se proporciona información que puede ayudarte a controlar el importe que inviertes en las métricas facturables sin afectar la observabilidad. En la página Administración de métricas, se informa la siguiente información:

  • Los volúmenes de transferencia para la facturación basada en bytes y de muestra, en todos los dominios de métricas y para las métricas individuales.
  • Datos sobre etiquetas y cardinalidad de métricas.
  • Cantidad de lecturas para cada métrica
  • Uso de métricas en políticas de alertas y paneles personalizados.
  • Tasa de errores de escritura de métricas.

También puedes usar la administración de métricas para excluir las métricas innecesarias, lo que elimina el costo de transferirlas.

Para ver la página Administración de métricas, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página  Administración de métricas:

    Ir a Administración de métricas

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. En la barra de herramientas, selecciona tu período. De forma predeterminada, la página Administración de métricas muestra información sobre las métricas recopiladas en el día anterior.

Para obtener más información de la página Administración de métricas, consulta Visualiza y administra el uso de métricas.

Recopila seguimientos de OTLP

Si configuraste el agente de operaciones para que recopile seguimientos, pero no obtienes seguimientos en Cloud Trace cuando ejecutas tu aplicación, es posible que debas otorgar un rol adicional a la cuenta de servicio de Compute Engine que use el agente. De forma predeterminada, la cuenta de servicio obtiene los roles necesarios para escribir métricas y registros, pero no seguimientos.

En las siguientes secciones, se describe cómo otorgar a la cuenta de servicio la autorización de Cloud Trace necesaria.

Determina los roles otorgados a la cuenta de servicio

Para ver los roles otorgados a una cuenta de servicio, ejecuta el siguiente comando gcloud projects get-iam-policy:

gcloud projects get-iam-policy PROJECT_ID --format="table(bindings.role)" --flatten="bindings[].members" --filter="bindings.members:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com"

Deberías ver un resultado como el siguiente:

ROLE
roles/logging.logWriter
roles/monitoring.metricWriter

Si el resultado incluye roles/cloudtrace.agent o roles/cloudtrace.admin, la cuenta de servicio tiene permiso suficiente para escribir registros. Para otorgar uno de estos roles a la cuenta de servicio, consulta la siguiente sección.

Otorga el rol de Cloud Trace a la cuenta de servicio

Para una cuenta de servicio, el rol de agente de Cloud Trace, roles/cloudtrace.agent, por lo general, es adecuada. Para otorgar este rol a la cuenta de servicio, ejecuta el siguiente comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID --member "serviceAccount:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role="roles/cloudtrace.agent"

Luego, puedes ejecutar el comando gcloud projects get-iam-policy para verificar que se realizó el cambio:

gcloud projects get-iam-policy PROJECT_ID --format="table(bindings.role)" --flatten="bindings[].members" --filter="bindings.members:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com"

El resultado ahora incluye roles/cloudtrace.agent:

ROLE
roles/cloudtrace.agent
roles/logging.logWriter
roles/monitoring.metricWriter

Para obtener más información de la administración de roles de IAM, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Después de autorizar la cuenta de servicio que usa el agente de operaciones para escribir datos en Cloud Trace, cuando ejecutas tu aplicación basada en OpenTelemetry, los seguimientos aparecen en Cloud Trace:

Un panel de detalles del seguimiento muestra un seguimiento de OTLP.

Inhabilita el receptor de OTLP

Si recopilas métricas y seguimientos de OTLP con el agente de operaciones y deseas inhabilitar la recopilación de métricas o de seguimientos, pero no ambos, haz lo siguiente:

  1. Inhabilita la recopilación de métricas o de seguimientos con uno de los siguientes cambios en el archivo de configuración del usuario, config.yaml:

    • Quita la canalización otlp del servicio metrics.
    • Quita la canalización otlp del servicio traces.
  2. Reinicia el Agente de operaciones.

Para inhabilitar la recopilación de métricas y seguimientos de OTLP por el agente de operaciones, haz lo siguiente:

  1. Quita la configuración de OTLP del archivo de configuración del usuario:

    • Borra toda la sección combined, que incluye el receptor otlp.
    • Quita la canalización otlp del servicio metrics.
    • Borra todo el servicio traces.
  2. Reinicia el Agente de operaciones.

¿Qué sigue?

Después de que se hayan transferido las métricas y los seguimientos de tu aplicación, puedes usar la consola de Google Cloud para supervisar y analizar tus datos.