En este documento, se describe OpenTelemetry administrado para Google Kubernetes Engine (GKE), que te permite enviar registros, métricas y seguimientos de OpenTelemetry Protocol (OTLP) a Google Cloud Observability desde aplicaciones que se ejecutan en GKE. OpenTelemetry administrado proporciona la única solución administrada de Google Cloud para recopilar datos de seguimiento en GKE.
Para usar Managed OpenTelemetry en Google Kubernetes Engine (GKE), las aplicaciones ya deben estar instrumentadas para generar indicadores con el protocolo de OpenTelemetry. Para obtener más información, consulta Cargas de trabajo compatibles.
OpenTelemetry administrado para GKE tiene dos componentes:
- Recopilación administrada: El recopilador administrado proporciona un extremo del protocolo OpenTelemetry en el clúster como destino para que las cargas de trabajo envíen seguimientos, métricas y registros en formato OTLP, sin tener que administrar un recopilador.
Configuración automática: Un recurso personalizado llamado
Instrumentationpermite una configuración automática para que tus cargas de trabajo de GKE generen y transfieran registros, métricas y seguimientos correlacionados de OpenTelemetry. Este enfoque admite el Kit de desarrollo de agentes (ADK).Puedes usar el recurso personalizado
Instrumentationpara las cargas de trabajo que usan el SDK de OpenTelemetry y están configuradas con variables de entorno estándar de OpenTelemetry. Este recurso personalizadoInstrumentation,instrumentations.telemetry.googleapis.com, es diferente del recursoInstrumentationpara el operador de OpenTelemetry.
Para conocer los pasos para usar Managed OpenTelemetry para GKE, consulta Implementa Managed OpenTelemetry para GKE.
OpenTelemetry administrado para GKE te permite recopilar telemetría de OTLP sin tener que administrar ni operar un recopilador de OpenTelemetry. Ejecutar tu propio recopilador puede generar una sobrecarga, lo que incluye la autenticación, la configuración, las actualizaciones y la supervisión. Sin embargo, si necesitas filtrado y controles a nivel del recopilador, puedes usar el recopilador de OpenTelemetry integrado en Google en lugar de este servicio administrado.
OpenTelemetry proporciona APIs, bibliotecas y SDKs para generar registros, métricas y seguimientos distribuidos para la supervisión de aplicaciones. Para obtener más información sobre OpenTelemetry, consulta la documentación sobre OpenTelemetry y el protocolo OpenTelemetry (OTLP). Para obtener más detalles sobre cómo generar y recopilar los datos del comportamiento del tiempo de ejecución de tu aplicación, consulta Instrumentación y observabilidad.
Cómo funciona OpenTelemetry administrado para GKE
OpenTelemetry administrado para GKE tiene dos componentes: recopilación administrada y configuración automática.
Recopilación administrada
La recopilación administrada proporciona un extremo de OTLP en el clúster implementando un recopilador de OpenTelemetry administrado en tu clúster. Este extremo de OTLP dentro del clúster recibe registros, métricas y seguimientos en formato OTLP. Para recibir datos de una carga de trabajo, esta debe configurarse para enviar datos al recopilador.
El extremo del recopilador administrado es http://opentelemetry-collector.gke-managed-otel.svc.cluster.local:4318.
La recopilación administrada envía los datos recopilados a Google Cloud Observability. Luego, los datos están disponibles en los siguientes servicios:
El recopilador administrado se puede habilitar para un clúster de GKE con la consola o gcloud CLI. Si quieres obtener instrucciones, consulta Habilita OpenTelemetry administrado para GKE en un clúster.
Configuración automática
La configuración automática permite que GKE configure las cargas de trabajo que se ejecutan en GKE para enviar indicadores al extremo del recopilador administrado.
Existen diferentes métodos que se pueden usar para configurar una carga de trabajo. La configuración automática usa variables de entorno insertadas en el contenedor de la carga de trabajo para que esta envíe indicadores al recopilador administrado. Si configuras la carga de trabajo de forma manual, puedes usar otros métodos. Para obtener más información, consulta Configuración manual.
Cuando usas la configuración automática, defines la configuración con el recurso personalizado Instrumentation. Luego, GKE inyecta variables de entorno, como el extremo del exportador de OTLP, en los contenedores de la carga de trabajo. Cuando los contenedores de la carga de trabajo tienen estas variables de entorno, a medida que se ejecuta la carga de trabajo, los datos de OpenTelemetry se envían al recopilador administrado.
La configuración automática está disponible para las cargas de trabajo que admiten OpenTelemetry de forma nativa, lo que significa que usan el SDK de OpenTelemetry y se configuran con variables de entorno estándar de OpenTelemetry. Para obtener más detalles, consulta Cargas de trabajo compatibles.
Para obtener instrucciones para configurar tu aplicación con la configuración automática, consulta Configura tu aplicación para usar el recopilador administrado de OpenTelemetry.
El recurso personalizado Instrumentation
Usas el recurso personalizado Instrumentation para hacer lo siguiente:
- Especifica si se deben insertar las variables de entorno en los contenedores de los Pods seleccionados o de todos los Pods en un espacio de nombres.
- Controlar el tipo de datos que se recopilan (registros, métricas y seguimientos)
- Controla la frecuencia con la que se envían los datos de métricas al recopilador administrado.
- Controlar la tasa de muestreo de los datos de seguimiento
Para obtener detalles sobre cómo usar el recurso personalizado Instrumentation, consulta Cómo modificar la configuración.
Cómo incorporar variables de entorno automáticamente
Para insertar automáticamente variables de entorno de OpenTelemetry en tus cargas de trabajo de GKE, debes configurar un objeto Instrumentation en tu clúster.
Luego, cuando implementas la aplicación en el clúster con el objeto Instrumentation, GKE inserta las variables.
El objeto Instrumentation debe estar en el clúster cuando se implementa la aplicación y se crean los Pods. Si implementaste la aplicación antes de crear el objeto Instrumentation, debes reiniciar los Pods de la aplicación para activar la inserción automática de las variables de entorno.
Variables de entorno
Cuando se implementa una carga de trabajo en el espacio de nombres en el que está habilitada la configuración automática, GKE inserta variables de entorno en los contenedores de las cargas de trabajo. Estas variables de entorno son variables de OpenTelemetry de la configuración del SDK de OpenTelemetry.
En la siguiente lista, se incluyen todas las variables de entorno que Managed OpenTelemetry para GKE puede insertar. Las variables de entorno específicas que se insertan en un contenedor dependen de la configuración del recurso personalizado Instrumentation.
Las variables de entorno que se pueden insertar automáticamente en los contenedores son las siguientes:
- Es el extremo del exportador de OpenTelemetry.
OTEL_EXPORTER_OTLP_ENDPOINT: Es la URL de un extremo base para cualquier tipo de indicador. Este extremo siempre apunta al extremo HTTP del recopilador de OpenTelemetry administrado en el clúster para registros, métricas y seguimientos. El extremo es:http://opentelemetry-collector.gke-managed-otel.svc.cluster.local:4318.
- Es la configuración de la proporción de muestreo de registros.
OTEL_TRACES_SAMPLER: Establece el muestreador que usa el SDK para muestrear los registros en uno de los siguientes:parentbased_traceidratiocuando el muestreo de registros se configura en el recurso personalizado.parentbased_always_ones el valor predeterminado de esta variable de entorno. Se usa si esta variable de entorno no está configurada o es nula en el recurso personalizado.
OTEL_TRACES_SAMPLER_ARG: Especifica la proporción de muestreo de registros (entre 0.0 y 1.0). Si no se configura en el recurso personalizado, se usa 1.0.
- Es el intervalo de demora entre el inicio de dos exportaciones de métricas consecutivas.
OTEL_METRIC_EXPORT_INTERVAL: Es el intervalo de tiempo (en milisegundos) entre el inicio de dos intentos de exportación (mín.: 5,000, máx.: 300,000, valor predeterminado: 60,000).
- Se inhabilitó la exportación de telemetría de OTLP por tipo de indicador. Los exportadores de indicadores se inhabilitan cuando
tracer_provider,meter_providerologger_providerse establecen ennullen el archivoInstrumentation.OTEL_TRACES_EXPORTER: Inhabilita la exportación de registros cuando se establece ennone. Valor predeterminado:otlp.OTEL_METRICS_EXPORTER: Inhabilita la exportación de métricas cuando se establece ennone. Valor predeterminado:otlp.OTEL_LOGS_EXPORTER: Inhabilita la exportación de registros cuando se establece ennone. Valor predeterminado:otlp.
- Identificación de Pods hostNetwork para asociar los metadatos con el procesador de atributos de Kubernetes del recopilador de OpenTelemetry.
K8S_POD_UID: Es el UID del Pod de hostNetwork para completar el parámetro de configuraciónk8s.pod.uiden la variable de entornoOTEL_RESOURCE_ATTRIBUTES.OTEL_RESOURCE_ATTRIBUTES: El valor incluyek8s.pod.uid=$(K8S_POD_UID)para permitir que el procesador de atributos de Kubernetes asocie metadatos, comok8s.namespace.name,k8s.deployment.nameyk8s.node.name, a los Pods de hostNetwork. La asociación de metadatos y Pods hostNetwork permite agregar los metadatos extraídos a los intervalos, las métricas y los registros como atributos de recursos.
Configuración manual
Existen diferentes métodos que puedes usar para configurar una carga de trabajo para que envíe señales al extremo del recopilador administrado. Si configuras manualmente tu carga de trabajo, puedes agregar y modificar variables de entorno de forma manual, o bien usar otro método, como marcas de línea de comandos.
No recomendamos usar la configuración manual y la automática juntas para la misma carga de trabajo, ya que la configuración automática puede anular los cambios manuales. Esta combinación puede dificultar el seguimiento de los cambios en la configuración.
Para obtener detalles sobre la configuración automática, consulta Configuración automática.
Cargas de trabajo admitidas
Las cargas de trabajo admitidas son aquellas que usan OpenTelemetry para recopilar datos sobre el comportamiento del tiempo de ejecución de la aplicación. Las cargas de trabajo admiten OpenTelemetry de forma nativa si usan el SDK de OpenTelemetry y se configuran con variables de entorno estándar de OpenTelemetry. Por ejemplo, el Kit de desarrollo de agentes (ADK) admite OpenTelemetry de forma nativa.
Para obtener más detalles sobre cómo se generan y recopilan los datos de comportamiento del tiempo de ejecución de tu aplicación, consulta Instrumentación y observabilidad.
Si una carga de trabajo admite algunos tipos de datos de OTLP y otros no, Managed OpenTelemetry para GKE recopila los datos de OTLP. Por ejemplo, si una carga de trabajo usa el SDK de OpenTelemetry para implementar seguimientos, pero no lo usa para registros ni métricas, Managed OpenTelemetry para GKE no recopila datos de registros ni métricas. Para obtener detalles sobre cómo controlar el tipo de datos que se recopilan, consulta Selecciona los tipos de indicadores que se recopilarán.
La inyección de configuración de OpenTelemetry no es compatible con las cargas de trabajo privilegiadas de los socios de GKE Autopilot.
Facturación
Cuando envías datos de telemetría a Google Cloud, se te factura según el volumen de la transferencia. Las métricas se facturan según los precios de Google Cloud Managed Service para Prometheus, los registros se facturan según los precios de Cloud Logging y los registros de seguimiento se facturan según los precios de Cloud Trace.
Para obtener información sobre los costos asociados con la transferencia de registros, registros y métricas de Google Cloud Managed Service para Prometheus, consulta Precios de Google Cloud Observability.
Cuotas
Cuando usas OpenTelemetry administrado para GKE, se aplican las cuotas de los servicios de Google Cloud Observability. Si deseas obtener más información, consulta los siguientes recursos:
- Cuotas y límites de Cloud Logging
- Cuotas y límites de Cloud Monitoring
- Cuotas y límites de Cloud Trace
¿Qué sigue?
- Para implementar el recopilador, consulta Implementa OpenTelemetry administrado para GKE.
- Para obtener una alternativa autoimplementada a OpenTelemetry administrado para GKE, consulta Recopilador de OpenTelemetry integrado en Google.
- Para obtener información sobre cómo configurar la instrumentación de OpenTelemetry para generar registros, métricas y seguimientos desde tus aplicaciones, consulta lo siguiente:
- Agrega métricas y seguimientos personalizados a tu app con OpenTelemetry.