En este documento, se muestra cómo ejecutar el Recopilador de OpenTelemetry en un clúster de GKE para recopilar registros, métricas y seguimientos de OTLP de aplicaciones instrumentadas y exportar esos datos a Google Cloud.
Antes de comenzar
La ejecución del recopilador de OpenTelemetry en GKE requiere los siguientes recursos:
Un proyecto de Google Cloud con la API de Cloud Monitoring, la API de Cloud Trace y la API de Cloud Logging habilitadas.
Si no tienes un proyecto de Google Cloud, haz lo siguiente:
En la consola de Google Cloud, ve a Proyecto Nuevo:
En el campo Nombre del proyecto, ingresa un nombre para tu proyecto y, luego, haz clic en Crear.
Ve a facturación:
Selecciona el proyecto que acabas de crear si aún no está seleccionado en la parte superior de la página.
Se te solicitará que elijas un perfil de pagos existente o que crees uno nuevo.
La API de Monitoring, la API de Trace y la API de Logging están habilitadas de forma predeterminada para los proyectos nuevos.
Si ya tienes un proyecto de Google Cloud, asegúrate de que la API de Monitoring, la API de Trace y la API de Logging estén habilitadas:
Ve a API y servicios:
Elige tu proyecto.
Haz clic en add Habilitar APIs y servicios.
Busca cada API por nombre.
En los resultados de la búsqueda, haz clic en la API con nombre. La API de Monitoring aparece como “API de Stackdriver Monitoring”.
Si no se muestra "API habilitada", haz clic en el botón Habilitar.
Un clúster de Kubernetes. Si no tienes un clúster de Kubernetes, sigue las instrucciones en la Guía de inicio rápido para GKE.
Las siguientes herramientas de línea de comandos:
gcloud
kubectl
Las herramientas
gcloud
ykubectl
forman parte de la CLI de Google Cloud. Para obtener información sobre cómo instalarlos, consulta Administra los componentes de la CLI de Google Cloud. Para ver los componentes de la CLI de gcloud que instalaste, ejecuta el siguiente comando:gcloud components list
Implementa el recopilador
La canalización del colector se puede implementar directamente desde GitHub con los siguientes comandos después de reemplazar PROJECT_ID por el ID de tu proyecto de Google Cloud:
export GCLOUD_PROJECT=PROJECT_ID kubectl kustomize https://github.com/GoogleCloudPlatform/otlp-k8s-ingest.git/k8s/base | envsubst | kubectl apply -f -
Observa y depura el recopilador
El recopilador de OpenTelemetry proporciona métricas de autoobservabilidad listas para usar para ayudarte a supervisar su rendimiento y garantizar un tiempo de actividad continuo de la canalización de transferencia de OTLP.
Para supervisar el recopilador, instala el panel de muestra para el recopilador. Este panel ofrece estadísticas resumidas sobre varias métricas del recopilador, incluidos el tiempo de actividad, el uso de memoria y las llamadas a la API de Google Cloud Observability.
Para instalar el panel, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página Paneles.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- Selecciona la pestaña Biblioteca de muestra.
- Selecciona la categoría Recopilador de OpenTelemetry.
- Selecciona el panel “Recopilador de OpenTelemtry”.
- Haz clic en Importar.
Para obtener más información sobre el proceso de instalación, consulta Instala paneles de muestra.
Configura el recopilador
La canalización de transferencia de OTLP autoadministrada incluye una configuración predeterminada del recopilador de OpenTelemetry que está diseñada para entregar grandes volúmenes de métricas, registros y seguimientos de OTLP con metadatos coherentes de GKE y Kubernetes adjuntos. También está diseñado para evitar problemas comunes de transferencia.
Sin embargo, es posible que tengas necesidades únicas que requieran la personalización de la configuración predeterminada. En esta sección, se describen los valores predeterminados enviados con la canalización y cómo puedes personalizarlos para que se adapten a tus necesidades.
La configuración predeterminada del recopilador se encuentra en GitHub como config/collector.yaml
:
Exportadores
Los exportadores predeterminados incluyen el exportador googlecloud
(para registros y seguimientos) y el exportador googlemanagedprometheus
(para métricas).
El exportador googlecloud
se configura con un nombre de registro predeterminado. El exportador googlemanagedprometheus
no requiere ninguna configuración predeterminada. Consulta Comienza a usar el recopilador de OpenTelemetry en la documentación de Google Cloud Managed Service para Prometheus a fin de obtener más información sobre cómo configurar este exportador.
Procesadores
La configuración predeterminada incluye los siguientes procesadores:
batch
: Se configura para solicitudes de telemetría por lotes en la cantidad máxima de entradas por solicitud o en el intervalo mínimo de Google Cloud de 5 segundos (lo que ocurra primero).k8sattributes
: Asigna de forma automática los atributos de recursos de Kubernetes a etiquetas de telemetría.memory_limiter
: Limita el uso de memoria del colector a un nivel razonable para evitar fallas por memoria insuficiente mediante la eliminación de datos más allá de este nivel.resourcedetection
: Detecta de forma automática las etiquetas de recursos de Google Cloud, como el nombre del clúster y el ID del proyecto.transform
: Cambia el nombre de las etiquetas de métricas que entrarían en conflicto con los campos de recursos supervisados de Google Cloud.
Receptores
La configuración predeterminada solo incluye el receptor otlp
.
Consulta Elige un enfoque de instrumentación para obtener instrucciones detalladas sobre cómo instrumentar tus aplicaciones para enviar seguimientos y métricas de OTLP al extremo de OTLP del recopilador.
Próximos pasos: Recopila y visualiza la telemetría
En esta sección, se describe cómo implementar una aplicación de ejemplo y cómo apuntar esa aplicación al extremo de OTLP del recopilador y cómo ver la telemetría en Google Cloud. La aplicación de muestra es un generador pequeño que exporta seguimientos, registros y métricas al recopilador.
Si ya tienes una aplicación instrumentada con un SDK de OpenTelemetry, puedes apuntar tu aplicación al extremo del recopilador.
Para implementar la aplicación de muestra, ejecuta el siguiente comando:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/otlp-k8s-ingest/main/sample/app.yaml
Para apuntar a las aplicaciones existentes que usan el SDK de OpenTelemetry en el extremo del recopilador, establece la variable de entorno OTEL_EXPORTER_OTLP_ENDPOINT
en http://opentelemetry-collector.opentelemetry.svc.cluster.local:4317
.
Después de unos minutos, la telemetría que genera la aplicación comienza a fluir a través del recopilador hacia la consola de Google Cloud para cada indicador.