Acerca de las etiquetas específicas de la aplicación
Las etiquetas específicas de la aplicación hacen referencia a las etiquetas o los atributos que se insertan en los datos de registro, métricas o seguimiento. Estas etiquetas identifican el servicio o la carga de trabajo que generó los datos. Puedes usar etiquetas específicas de la aplicación como cualquier otra etiqueta. Por ejemplo, puedes filtrar los datos por el ID de una aplicación. La telemetría generada por la infraestructura compatible incluye automáticamente estas etiquetas. Con la instrumentación, las métricas y los registros que escribe tu aplicación pueden incluir estas etiquetas.
En esta sección, interpreta a.b.{x,y} como a.b.x y a.b.y.
Los datos de métricas de la instrumentación que agregaste a tus aplicaciones pueden incluir las siguientes etiquetas de métricas:
metric.labels.apphub_application_{container,id,location}metric.labels.apphub_workload_{criticality_type,environment_type,id}
Los intervalos de Trace generados por la instrumentación que agregaste a tus aplicaciones pueden incluir los siguientes atributos de recursos:
gcp.apphub.application.{container,id,location}gcp.apphub.{workload,service}.{criticality_type,environment_type,id}
Acerca de las métricas del servidor HTTP de OpenTelemetry
No hay métricas del sistema para las cargas de trabajo que se ejecutan en Google Kubernetes Engine que puedan informar el nivel de tráfico, la tasa de errores del servidor o la latencia de las solicitudes HTTP. Sin embargo, los valores de estos indicadores clave se pueden derivar de http.server.request.duration, que es una métrica que recopila automáticamente la biblioteca del cliente HTTP de OpenTelemetry.
El exportador googlemanagedprometheus convierte la métrica http.server.request.duration de OpenTelemetry en una métrica de Prometheus que tiene las siguientes propiedades:
- Nombre:
prometheus/http_server_request_duration_seconds/histogram - Métrica:
prometheus.googleapis.com/http_server_request_duration_seconds/histogram - Tipos de recursos:
prometheus_target - Unidad:
s - Tipo:
CUMULATIVE - Tipo de valor:
DISTRIBUTION
Cuando tu proyecto contiene la métrica Google Cloud , los paneles de supervisión de aplicaciones muestran el nivel de tráfico, la tasa de errores del servidor y la latencia de las solicitudes HTTP.http_server_request_duration_seconds
Para obtener información sobre cómo configurar tu aplicación para exportar la métrica http_server_request_duration_seconds, consulta la sección Usa OpenTelemetry en Kubernetes de este documento.
Agrega etiquetas de aplicación a los datos de métricas
Google Cloud Observability intenta identificar la fuente de las métricas de Prometheus comparando los atributos adjuntos a las métricas de Prometheus que se envían a tu proyecto con los datos que devuelve la API de App Hub. En el resto de esta sección, se enumeran las configuraciones que permiten que Google Cloud Observability identifique la aplicación de App Hub.
Usa OpenTelemetry en Kubernetes
Para que Google Cloud Observability adjunte etiquetas de aplicación a los datos de métricas que generan las cargas de trabajo de tu aplicación que se ejecutan en Google Kubernetes Engine, haz lo siguiente:
Instrumenta la aplicación con OpenTelemetry.
- Para obtener información general, consulta Instrumentación y observabilidad.
- Para obtener vínculos a las muestras de Go, Java, Node.js y Python, junto con información sobre esas muestras, consulta Descripción general de las muestras de instrumentación.
Implementa el recopilador integrado en Google o el recopilador de OpenTelemetry, y configura el recopilador de la siguiente manera:
- Exporta datos de métricas con el exportador
googlemanagedprometheus. - Configura el procesador
k8sattributespara extraer metadatos, como elnamespace, del entorno. - Configura el procesador
transform/collisionpara establecer los atributosproject_id,location,clusterynamespace. - Configura el procesador
transform/aco-gkepara propagar las etiquetastop_level_controller_nameytop_level_controller_type.
Para ver un ejemplo, consulta
otlp-k8s-ingest/config/collector.yaml, que es el archivo de configuración del recopilador integrado en Google. Para obtener más información sobre este recopilador, consulta Implementa el recopilador de OpenTelemetry integrado en Google en GKE.- Exporta datos de métricas con el exportador
Registra las cargas de trabajo de tu aplicación en App Hub.
Usa Google Cloud Managed Service para Prometheus en GKE
Para que Google Cloud Observability adjunte etiquetas de aplicación a los datos de métricas que generan las cargas de trabajo de tu aplicación que se ejecutan en clústeres de Google Kubernetes Engine, haz lo siguiente:
Usa Google Cloud Managed Service para Prometheus con la recopilación administrada.
Implementa tus cargas de trabajo en un clúster de Google Kubernetes Engine cuya versión sea al menos
1.32.1-gke.1439000.Registra las cargas de trabajo de tu aplicación en App Hub.
Google Cloud Managed Service para Prometheus descubre los valores de las etiquetas de la aplicación a través de los metadatos de detección de servicios y, luego, agrega las etiquetas top_level_controller_{name,type} a targetLabels.metadata.
Durante la transferencia de métricas, Google Cloud Observability usa las etiquetas top_level_controller_{name,type} y la API de App Hub para identificar tu aplicación de App Hub y agregar las etiquetas adecuadas a tus datos de métricas.
Usar Cloud Run
Para que Google Cloud Observability adjunte etiquetas de aplicación a los datos de métricas generados por tus cargas de trabajo de Cloud Run, haz lo siguiente:
Instrumenta tu aplicación con OpenTelemetry o el archivo adicional de Managed Service para Prometheus para Cloud Run. Para obtener información sobre estos enfoques, consulta los siguientes documentos:
Registra las cargas de trabajo de tu aplicación en App Hub.
Verifica las etiquetas de métricas
Para verificar que tu aplicación envíe métricas de Prometheus a tu proyecto, haz lo siguiente:
-
Verifica que tu aplicación envíe métricas de Prometheus a tu proyecto:
-
En la consola de Google Cloud , accede a la página leaderboard Explorador de métricas:
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 consola de Google Cloud , selecciona tu proyecto de Google Cloud . 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.
- Haz clic en Aplicar.
Para agregar filtros que quiten series temporales de los resultados de la consulta, usa el elemento Filtro.
- Configura cómo se ven los datos.
Para ver las etiquetas, expande el menú Filtro. Cada entrada del filtro corresponde a una etiqueta.
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.
Si no ves ninguna métrica de Prometheus, revisa tu configuración.
-
Si tus métricas de Prometheus no contienen etiquetas de aplicación, haz lo siguiente:
Verifica que hayas registrado tu carga de trabajo o servicio en App Hub.
Examina tus registros para determinar si hay errores.
Por ejemplo, si implementas un recopilador de OpenTelemetry o el recopilador creado por Google y se ejecuta en Google Kubernetes Engine, puedes hacer lo siguiente:
-
En la consola de Google Cloud , ve a la página Cargas de trabajo:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Kubernetes Engine.
- Selecciona la implementación del recopilador y, luego, la pestaña Registros.
-
Si usas un recopilador de OpenTelemetry o el recopilador integrado en Google, revisa la configuración del recopilador. El recopilador debe hacer lo siguiente:
- Exporta datos de métricas con el exportador
googlemanagedprometheus. - Configura el procesador
k8sattributespara extraer metadatos, como elnamespace, del entorno. - Configura el procesador
transform/collisionpara establecer los atributosproject_id,location,clusterynamespace. - Configura el procesador
transform/aco-gkepara propagar las etiquetastop_level_controller_nameytop_level_controller_type.
Para ver un ejemplo, consulta el archivo de configuración del recopilador creado por Google:
otlp-k8s-ingest/config/collector.yaml.- Exporta datos de métricas con el exportador
Agrega atributos de la aplicación a los intervalos de seguimiento
No instrumentas tu aplicación de manera que los atributos específicos de la aplicación se adjunten a los tramos que se envían a tu proyecto de Google Cloud . En cambio, Google Cloud Observability usa atributos de recursos de OpenTelemetry y la API de App Hub para identificar la aplicación de App Hub asociada a un intervalo y, luego, agrega los atributos específicos de la aplicación antes de almacenar el intervalo.
Para que Google Cloud Observability adjunte atributos de recursos específicos de la aplicación a los datos de seguimiento generados por los servicios y las cargas de trabajo de la aplicación, haz lo siguiente:
Instrumenta tu aplicación con OpenTelemetry y configura tu exportador para enviar datos de seguimiento al extremo de la API de Telemetry (OTLP).
Te recomendamos que realices una exportación basada en el recopilador. En los siguientes documentos, se describen los recopiladores que adjuntan todos los atributos obligatorios a los datos del intervalo:
- Implementa el recopilador de OpenTelemetry compilado por Google en Google Kubernetes Engine.
- Implementa el recopilador de OpenTelemetry integrado en Google en Cloud Run.
- Implementa el recopilador de OpenTelemetry en Container-Optimized OS.
Si no usas uno de los recopiladores anteriores, debes configurar tu instrumentación o recopilador para adjuntar todos los atributos obligatorios.
Implementa tus servicios y cargas de trabajo en la infraestructura compatible.
Registra tus servicios y cargas de trabajo en App Hub.
Para obtener más información sobre estos atributos, consulta Google Cloud Convenciones semánticas de App Hub.
Atributos obligatorios
Esta sección se aplica a las configuraciones en las que no usas uno de los recopiladores recomendados. Por ejemplo, es posible que desees escribir tu propio recopilador o que prefieras exportar directamente tus datos de seguimiento.
Atributos que identifican la ubicación de tu proyecto y recurso
Establece los siguientes atributos:
cloud.provider: Configurado como"gcp".cloud.account.id: Establece el ID del proyecto.cloud.availability_zoneocloud.region: Se establece en la zona o región en la que se encuentran tus recursos. Puedes establecer ambos atributos.
Los detectores de recursos pueden ayudarte a establecer los atributos anteriores:
resourcedetectionprocessor- Ir a: Google Cloud detector de recursos
- Java:
opentelemetry-java-contrib/gcp-resources - Node.js:
resource-detector-gcp - Python:
opentelemetry-resourcedetector-gcp
Atributos para las cargas de trabajo de Google Kubernetes Engine
Para una carga de trabajo de Google Kubernetes Engine, configura tu recopilador o tu instrumentación para que haga lo siguiente:
- Extrae metadatos, como
namespace, del entorno. - Extrae los metadatos pertinentes del procesador
k8sattributes. - Establece los atributos
project_id,location,clusterynamespace. - Establece las etiquetas
top_level_controller_nameytop_level_controller_type.
Para ver un ejemplo basado en el recopilador, consulta otlp-k8s-ingest/config/collector.yaml.
Ese recopilador usa el procesador k8sattributesprocessor.
Atributos para las cargas de trabajo de VM
Si implementas tu aplicación en una VM, esta debe estar asociada a un grupo de instancias administrado (MIG). También debes adjuntar los siguientes atributos:
gcp.gce.instance_group_manager.namegcp.gce.instance_group_manager.regionogcp.gce.instance_group_manager.zone