Recopila métricas y seguimientos del 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 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 OTLP en el Agente de operaciones puede recopilar esos seguimientos. Para ver un ejemplo, consulta Módulo 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 supervisar tus métricas. Si tu aplicación también envía datos de seguimiento, puedes usar Cloud Trace para analizarlos.

Ventajas

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.

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

  • OpenTelemetry es el reemplazo de OpenCensus. Se está archivando el proyecto de OpenCensus. 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 cambia la configuración del agente.
  • 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 ni de 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 pierde cualquier dato que haya recopilado el Agente de operaciones.

Limitaciones

El objeto de escucha de OTLP expuesto por 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 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 de usuario del Agente de operaciones

Agrega los elementos de configuración del receptor OTLP al archivo de configuración de 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 cómo configurar el agente, consulta Modelo de configuración.

El receptor OTLP presenta la sección de configuración combined para el Agente de operaciones. Para usar el receptor, debes configurar servicios de métricas y seguimientos, incluso si no estás usando ambos.

En las siguientes secciones, se describen los pasos de configuración para el receptor 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 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 El extremo de gRPC que escucha el receptor 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 con la API de Monitoring, establece la opción metrics_mode en el valor googlecloudmonitoring.

    Esta opción afecta cómo 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 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 OTLP.

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

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

Si no deseas usar el servicio metrics o traces para la recopilación de OTLP, deja el receptor OTLP fuera de la canalización para el servicio. El servicio debe existir, incluso si no tiene canalizaciones. 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 a través de 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 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 para 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 cómo se transfieren las 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 OTLP

El receptor OTLP proporciona la opción metrics_mode, que especifica la API que se usa para transferir tus 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 mediante 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, establece 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 OTLP a Cloud Monitoring. Puedes crear gráficos, paneles y políticas de alertas en Monitoring para las métricas de cualquier formato de métrica, pero puedes hacer referencia a las métricas de manera 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 que transfiere la API de Prometheus y la misma métrica que transfiere 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 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 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 métrica, cómo se relaciona cada valor con los valores anteriores y las etiquetas asociadas 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 OTLP tiene la cadena prometheus.googleapis.com/ como prefijo.
    • Cualquier carácter que no sea alfanumérico, como los puntos (.), en el nombre de la métrica OTLP, se reemplaza por guiones bajos (_).
    • El nombre de la métrica OTLP tiene un sufijo con una cadena 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 del recurso host.name.
    • machine_type: Es el valor del atributo del recurso host.type.
  • El recurso supervisado que se registra con las mediciones de la métrica es del tipo prometheus_target genérico. La serie temporal de Prometheus generada incluye las siguientes etiquetas del recurso prometheus_target, propagadas con los valores del recurso OTLP:

    • location: Es el valor del atributo del recurso cloud.availability_zone.
    • namespace: Es el valor del atributo del 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 siempre es __gce__ cuando el Agente de operaciones recopila las 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 que recopila 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 que se registra con las mediciones de la métrica 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étrica creado cuando el receptor 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 OTLP usa el modo de métrica googlecloudmonitoring.

Nada cambia en la aplicación que crea la métrica; el único cambio es el modo de métrica que usa el receptor 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 la métrica prometheus.googleapis.com workload.googleapis.com
Nombre de la métrica OTLP Modificado durante la transferencia Se usa tal como se proporciona
Recurso supervisado prometheus_target gce_instance

Consultas y formatos de transferencia

El modo de métricas que se usa en el receptor OTLP afecta la forma en que consultas las métricas resultantes en Cloud Monitoring cuando creas 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 para los datos en los que operan 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 compilada en herramientas como el Explorador de métricas, la interfaz del compilador de paneles y la interfaz de configuración de la política de alertas.
  • Lenguaje de consulta de Monitoring (MQL): Es 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étricas:

  • 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. Estos ejemplos usan el Explorador de métricas, pero los principios son los mismos para paneles y 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 incluyen el recurso supervisado prometheus_target, que se muestra con el nombre visible “Prometheus Target” 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 consultar 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 consultar 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 consultar 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 consultar 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 cadena prometheus.googleapis.com/ con prefijo ni el tipo postfijo.

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 triviales de PromQL 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 consultar 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 consultar 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 con el valor googlecloudmonitoring.

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

  • 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. Estos ejemplos usan el Explorador de métricas, pero los principios son los mismos para paneles y 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 mostrarán 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 consultar 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 consultar 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 consultar 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 consultar 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 básicas de asignación incluyen las siguientes:

  • 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 necesitas especificar el recurso. Las métricas de ejemplo se escriben en el tipo de recurso supervisado gce_instance, pero como se describe en Estructura de la 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 triviales de PromQL 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 consultar 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 consultar 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 cobrables 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.
  • Uso de métricas en políticas de alertas y paneles personalizados.
  • Tasa de errores de escritura de métricas.

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

  1. En el panel de navegación de la consola de Google Cloud, selecciona Monitoring y, luego,  Administración de métricas.

    Ir a Administración de métricas

  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.

Cómo recopilar registros 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 necesaria de Cloud Trace.

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"

Es posible que veas un resultado como el siguiente:

ROLE
roles/logging.logWriter
roles/monitoring.metricWriter

Si el resultado incluye roles/cloudtrace.agent o roles/cloudtrace.admin, significa que la cuenta de servicio tiene permisos suficientes para escribir seguimientos. 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 esta función 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 haya realizado 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 ejecutes tu aplicación basada en OpenTelemetry, los seguimientos aparecerán en Cloud Trace:

En un panel de detalles de seguimiento, se muestra un seguimiento 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 parte del Agente de operaciones, haz lo siguiente:

  1. Quita la configuración 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 transferir las métricas y los seguimientos de tu aplicación, puedes usar la consola de Google Cloud para supervisar y analizar tus datos.