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:
- Una descripción general que describe los casos de uso del receptor OTLP.
- Requisitos previos para usar el receptor de OTLP.
- Configurar el agente para que use el receptor de OTLP
- Usa el receptor para recopilar métricas En esta sección, se describe cómo consultar tus métricas de OpenTelemetry en Cloud Monitoring.
- Usar el receptor para recopilar seguimientos. En esta sección, se describe cómo autorizar una cuenta de servicio para escribir datos a Cloud Trace.
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:
- Modifica el archivo de configuración del usuario para que el agente de operaciones incluya el receptor de OTLP.
- 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 serotlp
grpc_endpoint
: Opcional Es el extremo de gRPC en el que escucha el receptor de OTLP. La configuración predeterminada es0.0.0.0:4317
.metrics_mode
: Opcional La configuración predeterminada esgooglemanagedprometheus
, 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 valorgooglecloudmonitoring
.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
- Para reiniciar el agente, ejecuta el siguiente comando en tu instancia:
sudo systemctl restart google-cloud-ops-agent
- 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
- Conéctate a tu instancia con RDP o una herramienta similar y accede a Windows.
- 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.
- Para reiniciar el agente, ejecuta el siguiente comando de PowerShell:
Restart-Service google-cloud-ops-agent -Force
- 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.
- Para obtener información sobre cómo crear gráficos y paneles, consulta Descripción general de los paneles y los gráficos.
- Para obtener información de las políticas de alertas, consulta Descripción general de alertas.
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
- Para conocer los precios actuales, consulta el Resumen de precios de Cloud Monitoring.
- Para obtener más información sobre cómo contar muestras y estimar los costos, consulta Ejemplos de precios basados en muestras transferidas.
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.
- Para conocer los precios actuales, consulta Resumen de precios de Cloud Monitoring.
- Para obtener más información del volumen de transferencia y la estimación de costos, consulta Ejemplos de precios basados en bytes transferidos.
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
.
- El nombre de la métrica de OTLP tiene el prefijo
- Las siguientes etiquetas, propagadas con valores del recurso OTLP, se agregan a la métrica:
instance_name
: Es el valor del atributo de recursohost.name
.machine_type
: El valor del atributo de recursohost.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 recursoprometheus_target
, propagadas con valores del recurso OTLP:location
: Es el valor del atributo del recursocloud.availability_zone
.namespace
: Es el valor del atributo de recursohost.id
.
El tipo de recurso
prometheus_target
también incluye estas etiquetas:project_id
: Es el identificador del proyecto de Google Cloud, comomy-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, comocustom.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
- Consulta las métricas de OTLP transferidas con la API de Monitoring
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
:
En la siguiente captura de pantalla, se muestra el resultado de la consulta a la métrica prometheus.googleapis.com/otlp_test_cumulative/counter
:
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
:
En la siguiente captura de pantalla, se muestra el resultado de la consulta de la métrica prometheus.googleapis.com/otlp_test_cumulative/counter
:
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
:
En la siguiente captura de pantalla, se muestra el resultado de la consulta a la métrica prometheus.googleapis.com/otlp_test_cumulative/counter
:
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
:
En la siguiente captura de pantalla, se muestra el resultado de la consulta a la métrica workload.googleapis.com/otlp.test.cumulative
:
MQL
Para consultar datos de métricas con MQL, usa una declaraciónfetch
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
:
En la siguiente captura de pantalla, se muestra el resultado de la consulta de la métrica workload.googleapis.com/otlp.test.cumulative
:
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
:
En la siguiente captura de pantalla, se muestra el resultado de la consulta a la métrica workload.googleapis.com/otlp.test.cumulative
:
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:
-
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.
- 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:
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:
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 serviciometrics
. - Quita la canalización
otlp
del serviciotraces
.
- Quita la canalización
Para inhabilitar la recopilación de métricas y seguimientos de OTLP por el agente de operaciones, haz lo siguiente:
Quita la configuración de OTLP del archivo de configuración del usuario:
- Borra toda la sección
combined
, que incluye el receptorotlp
. - Quita la canalización
otlp
del serviciometrics
. - Borra todo el servicio
traces
.
- Borra toda la sección
¿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.
- Para obtener información de los paneles y los tipos de gráficos que puedes crear, consulta Paneles y gráficos.
- Para obtener información de las políticas de alertas, consulta Usa políticas de alertas.
- Para obtener más información sobre el análisis de datos de seguimiento, consulta Busca y explora seguimientos.