En este documento, se describe cómo ejecutar el recopilador de OpenTelemetry integrado en Google en Google Kubernetes Engine para recopilar registros, métricas y seguimientos de OTLP de aplicaciones instrumentadas y, luego, exportar esos datos a Google Cloud.
Antes de comenzar
La ejecución del recopilador de OpenTelemetry integrado en Google requiere los siguientes recursos:
- Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Telemetry, Cloud Logging, Cloud Monitoring, and Cloud Trace APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Telemetry, Cloud Logging, Cloud Monitoring, and Cloud Trace APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.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:
gcloudkubectl
Las herramientas
gcloudykubectlforman parte de la Google Cloud CLI. Para obtener información sobre cómo instalarlos, consulta Administra los componentes de la CLI de Google Cloud. Para ver los componentes de gcloud CLI que instalaste, ejecuta el siguiente comando:gcloud components list
Configura los permisos para el recopilador
Si inhabilitaste la identidad de carga de trabajo de GKE, puedes omitir esta sección.
Para garantizar que la cuenta de servicio de Kubernetes del recopilador de OpenTelemetry tenga los permisos necesarios para exportar la telemetría, pídele a tu administrador que le otorgue los siguientes roles de IAM a la cuenta de servicio de Kubernetes del recopilador de OpenTelemetry en tu proyecto:
- Escritor de métricas de Monitoring (
roles/monitoring.metricWriter) - Escritor de registros de Logging (
roles/logging.logWriter) - Agente de Cloud Trace (
roles/cloudtrace.agent)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Es posible que tu administrador también pueda otorgar a la cuenta de servicio de Kubernetes del recopilador de OpenTelemetry los permisos necesarios a través de roles personalizados o con otros roles predefinidos.
Para configurar los permisos, usa los siguientes
add-iam-policy-binding
comandos:
gcloud projects add-iam-policy-binding projects/PROJECT_ID \
--role=roles/logging.logWriter \
--member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/opentelemetry/sa/opentelemetry-collector
gcloud projects add-iam-policy-binding projects/PROJECT_ID \
--role=roles/monitoring.metricWriter \
--member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/opentelemetry/sa/opentelemetry-collector
gcloud projects add-iam-policy-binding projects/PROJECT_ID \
--role=roles/cloudtrace.agent \
--member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/opentelemetry/sa/opentelemetry-collector
Antes de ejecutar los comandos, reemplaza las siguientes variables:
- PROJECT_ID: Es el identificador del proyecto.
- PROJECT_NUMBER: Es el Google Cloud número del proyecto.
Implementa el recopilador
La canalización del recopilador se puede implementar directamente desde los ejemplos verificados que proporciona el repositorio de transferencia de OTLP de Kubernetes autoadministrado. Puedes implementar directamente desde GitHub con los siguientes comandos después de reemplazar PROJECT_ID por el ID de tu Google Cloud proyecto:
export GOOGLE_CLOUD_PROJECT=PROJECT_ID export PROJECT_NUMBER=PROJECT_NUMBER kubectl kustomize https://github.com/GoogleCloudPlatform/otlp-k8s-ingest.git/k8s/base | envsubst | kubectl apply -f -
Antes de ejecutar los comandos, reemplaza las siguientes variables:
- PROJECT_ID: Es el identificador del proyecto.
- PROJECT_NUMBER: Es el identificador numérico del proyecto.
Configura el recopilador
Te proporcionamos una configuración del recopilador de OpenTelemetry para que la uses con el recopilador integrado en Google. Esta configuración está diseñada para entregar grandes volúmenes de métricas, registros y seguimientos de OTLP con metadatos coherentes de GKE y Kubernetes adjuntos. Esta configuración también está diseñada para evitar problemas comunes de transferencia. Puedes agregar a la configuración, pero te recomendamos que no quites elementos.
En esta sección, se describe la configuración proporcionada, los componentes clave, como exportadores, procesadores, receptores y otros componentes disponibles.
Configuración del recopilador proporcionada
Puedes encontrar la configuración del recopilador para entornos de Kubernetes en elotlp-k8s-ingest repositorio:
Exportadores
La configuración del recopilador usa lo siguiente:
- El exportador de gRPC de OTLP para enviar registros, métricas y seguimientos a la API de Telemetry (OTLP).
- El
googleclientauthextensionpara la autenticación de la API.
Procesadores
La configuración del recopilador incluye los siguientes procesadores:
batch:Se configura para solicitudes de telemetría por lotes en la Google Cloud cantidad máxima de entradas por solicitud o en el Google Cloud intervalo mínimo de 5 segundos (lo que ocurra primero).memory_limiter: Limita el uso de memoria del recopilador para evitar fallas por memoria insuficiente mediante la eliminación de datos cuando se supera el límite.resourcedetection: Detecta automáticamente Google Cloud las etiquetas de recursos, comoproject_idycluster_name.k8sattributes: Asigna de forma automática los atributos de recursos de Kubernetes a etiquetas de telemetría.transform: Cambia el nombre de las etiquetas de métricas que entran en conflicto con las etiquetas de los Google Cloud recursos supervisados.
Receptores
La configuración del recopilador solo incluye el
otlp receptor.
Para obtener información sobre cómo instrumentar tus aplicaciones para enviar seguimientos de OTLP
y métricas al extremo de OTLP del recopilador, consulta
Elige un enfoque de instrumentación.
Componentes disponibles
El recopilador de OpenTelemetry integrado en Google contiene los componentes que la mayoría de los usuarios necesitarán para habilitar una experiencia enriquecida en Google Cloud Observability. Para obtener una lista completa de
los componentes disponibles, consulta
Componentes
en el opentelemetry-operations-collector repositorio.
Para solicitar cambios o adiciones a los componentes disponibles,
abre una solicitud de función.
en el repositorio opentelemetry-operations-collector.
Genera 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 Google Cloud consola de para cada indicador.
Visualiza la telemetría
El recopilador de OpenTelemetry integrado en Google envía métricas, registros y seguimientos de tus aplicaciones instrumentadas a Google Cloud Observability. El recopilador también envía métricas de autoobservabilidad. En las siguientes secciones, se describe cómo ver esta telemetría.
Consulta tus métricas
El recopilador de OpenTelemetry integrado en Google recopila métricas de Prometheus que puedes ver mediante el Explorador de métricas. Las métricas recopiladas dependen de la instrumentación de la app, aunque el recopilador integrado en Google también escribe algunas métricas propias.
Para ver las métricas recopiladas por el recopilador de OpenTelemetry integrado en Google, haz lo siguiente:-
En la Google Cloud consola de, accede a la leaderboard Explorador de métricas página:
Acceder al Explorador 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 de la Google Cloud consola de, elige el Google Cloud proyecto. Para las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de administración de la carpeta habilitada para apps.
- En el elemento Métrica, expande el menú Seleccionar una métrica, ingresa
Prometheus Targeten la barra de filtros y, luego, usa los submenús para seleccionar un métrica y tipo de recurso específicos:- En el menú Recursos activos, elige Destino de Prometheus.
- Para seleccionar una métrica, usa los menús Categorías de métricas activas y Métricas activas.
Las métricas recopiladas por el recopilador de OpenTelemetry integrado en Google tienen el prefijo
prometheus.googleapis.com. - Haz clic en Aplicar.
Para agregar filtros, que quitan series temporales de los resultados de la consulta, usa el Filtro elemento.
- Configura cómo se ven los datos.
Cuando las mediciones de una métrica son acumulativas, el Explorador de métricas normaliza automáticamente los datos medidos por el período de alineación, lo que hace que el gráfico muestre una frecuencia. Para obtener más información, consulta Categorías, tipos y conversiones.
Cuando se miden valores de números enteros o dobles, como con las métricas
counter, el Explorador de métricas suma automáticamente todas las series temporales. Para cambiar este comportamiento, establece el primer menú de la entrada Agregación como Ninguna.Para obtener más información sobre la configuración de un gráfico, consulta elige métricas cuando uses el Explorador de métricas.
Ve tus seguimientos
Para ver tus datos de seguimiento, haz lo siguiente:
-
En la Google Cloud consola de, ve a la
Explorador de seguimientos página:
Ir al Explorador de seguimientos
También puedes usar la barra de búsqueda para encontrar esta página.
- En la barra de herramientas de la Google Cloud consola, elige el Google Cloud proyecto. Para las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de administración.
- En la sección de la tabla de la página, selecciona una fila.
En el diagrama de Gantt del panel Detalles de seguimiento , selecciona un intervalo.
Se abre un panel que muestra información sobre la solicitud rastreada. Estos detalles incluyen el método, el código de estado, la cantidad de bytes y el usuario-agente del emisor.
Para ver los registros asociados con este seguimiento, selecciona la pestaña Registros y eventos.
La pestaña muestra registros individuales. Para ver los detalles de la entrada de registro, expande la entrada de registro. También puedes hacer clic en Ver registros y ver el registro con el Explorador de registros.
Si deseas obtener más información para usar el explorador de Cloud Trace, consulta Busca y explora seguimientos.
Mira los registros
En el Explorador de registros, puedes inspeccionar tus registros y, también, puedes ver los seguimientos asociados, cuando existen.
-
En la Google Cloud consola de, ve a la Explorador de registros del segmento:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
Busca una entrada de registro de tu app instrumentada. Para ver los detalles, expande la entrada de registro.
Haz clic en
Seguimientos en una entrada de registro con un mensaje de seguimiento
y, luego, selecciona Ver detalles de seguimiento.Se abrirá el panel Detalles de seguimiento y se mostrará el seguimiento seleccionado.
Para obtener más información sobre el uso del Explorador de registros, consulta Visualiza registros con el Explorador de registros.
Observa y depura el recopilador
El recopilador de OpenTelemetry integrado en Google proporciona automáticamente métricas de autoobservabilidad 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 Google Cloud consola de, accede a la Paneles página:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- Haz clic en Plantillas de panel.
- Busca el panel Recopilador de OpenTelemetry.
- Opcional: Para obtener una vista previa del panel, selecciónalo.
Haz clic en playlist_add Agregar panel a tu lista y luego, completa el cuadro de diálogo.
El cuadro de diálogo te permite seleccionar el nombre del panel y agregarle etiquetas.
Para obtener más información sobre la instalación de paneles, consulta Instala una plantilla de panel.