Acerca de las etiquetas específicas de la aplicación
Las etiquetas específicas de la aplicación se refieren a etiquetas o atributos que se insertan en los datos de registro, métrica 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 que genera la infraestructura compatible incluye estas etiquetas de forma automática. Con la instrumentación, las métricas y los seguimientos escritos por 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 seguimiento 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 la métrica
http.server.request.duration, que recopila automáticamente la biblioteca cliente HTTP de
OpenTelemetry.
El exportador googlemanagedprometheus convierte la métrica de OpenTelemetry http.server.request.duration 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 de Google Cloud contiene la métrica http_server_request_duration_seconds,
los paneles de Supervisión de aplicaciones muestran el nivel de tráfico,
la tasa de errores de servidor y la latencia de las solicitudes HTTP.
Para aprender a 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 los parámetros de configuración 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 Observabilidad para desarrolladores de aplicaciones.
- Para obtener vínculos a 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 configúralo de la siguiente manera:
- Exporta datos de métricas con el exportador
googlemanagedprometheus. - Configura el procesador
k8sattributespara extraer metadatos, comonamespace, 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 creado por Google. Para obtener más información sobre este recopilador, consulta Implementa el recopilador de OpenTelemetry creado por Google en GKE.- Exporta datos de métricas con el exportador
Registra las cargas de trabajo de tu aplicación con 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 con 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 descubrimiento 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 que generan tus cargas de trabajo de Cloud Run, haz lo siguiente:
Instrumenta tu aplicación con OpenTelemetry o el sidecar 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 con App Hub.
Verifica las etiquetas de las 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 quitan las 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 menú 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 la 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 ejecutas 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 de tu recopilador. Tu recopilador debe hacer lo siguiente:
- Exporta datos de métricas con el exportador
googlemanagedprometheus. - Configura el procesador
k8sattributespara extraer metadatos, comonamespace, 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 aplicación a los intervalos de seguimiento
No instrumentas tu aplicación de modo que los atributos específicos de la aplicación se adjunten a los intervalos que se envían a tu proyecto de Google Cloud . En su lugar, Google Cloud Observability usa los atributos de recursos de OpenTelemetry y la API de App Hub para identificar la aplicación de App Hub asociada con 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 tu aplicación, haz todo 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).
Recomendamos una exportación basada en recopiladores. En los siguientes documentos, se describen los recopiladores que adjuntan todos los atributos obligatorios a los datos del intervalo:
- Implementa el recopilador de OpenTelemetry creado 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 con 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 recolectores recomendados. Por ejemplo, es posible que quieras escribir tu propio recolector o que prefieras exportar directamente tus datos de seguimiento.
Atributos que identifican tu proyecto y la ubicación del recurso
Establece los siguientes atributos:
cloud.provider: Configurado como"gcp".cloud.account.id: Establece el ID del proyecto.cloud.availability_zoneocloud.region: Configura 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- Go:detector de recursos de Google Cloud
- 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 hagan lo siguiente:
- Extrae metadatos, como el
namespace, del entorno. - Extraer metadatos relevantes del procesador
k8sattributes - Establece los atributos
project_id,location,clusterynamespacepara las métricas. - Establece las etiquetas
top_level_controller_nameytop_level_controller_typepara las métricas.
Para ver un ejemplo basado en un 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, esa VM debe estar asociada con 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