En este documento se describe cómo añadir código de observabilidad a una aplicación mediante OpenTelemetry. OpenTelemetry proporciona bibliotecas de instrumentación que generan telemetría para frameworks populares. Puedes aumentar la telemetría generada por la biblioteca añadiendo instrumentación personalizada que mida el comportamiento específico de tu aplicación.
Los principios y conceptos descritos en este documento se pueden aplicar a aplicaciones escritas en todos los lenguajes admitidos por OpenTelemetry. Para obtener más información sobre la instrumentación, consulta los siguientes documentos:
El código de muestra, que es la misma aplicación Go que se describe en el ejemplo de instrumentación de Go, está disponible en GitHub. Para ver el ejemplo completo, haz clic en more_vert Más y, a continuación, selecciona Ver en GitHub.
Antes de empezar
Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
Crear trazas personalizadas
Para generar traces personalizados desde tu aplicación, añade código de instrumentación que cree intervalos de OpenTelemetry. En OpenTelemetry, los spans son los componentes fundamentales de las trazas.
Para crear un intervalo, sigue estos pasos:
Modifica tu aplicación para adquirir un
Tracer
de OpenTelemetry. En OpenTelemetry, un tracer es un creador de spans. Puedes obtener un tracer como se muestra en el siguiente código:El nombre del rastreador, representado por
scopeName
, identifica el ámbito de instrumentación de los rastreos generados.Usa la instancia
tracer
para crear intervalos. En el siguiente código de ejemplo, la funcióncomputeSubrequests
genera un elemento "span" cada vez que se llama:En el ejemplo de código anterior, el intervalo generado a partir de la función
computeSubrequests
representa el trabajo realizado por toda la función. Esto se debe a que el primer paso de la función es iniciar un nuevo intervalo contracer.Start
y la palabra clavedefer
antes de quespan.End()
asegure que el intervalo finalice justo antes de que se cierre la función.
Crear métricas personalizadas
Para generar métricas de tu aplicación, añade código de instrumentación que registre las mediciones tomadas durante la ejecución de tu aplicación.
Para crear métricas, siga estos pasos:
Modifica tu aplicación para adquirir un
Meter
de OpenTelemetry. En OpenTelemetry, un contador proporciona acceso a instrumentos de métricas para registrar métricas. Puedes adquirir un medidor como se muestra en el siguiente código:El nombre del contador, representado por
scopeName
, identifica el ámbito de instrumentación de las métricas generadas.Usa la instancia
meter
para crear instrumentos que puedan registrar métricas. Por ejemplo, en el siguiente código, usamosmeter
para crear un histograma de OpenTelemetry:El código anterior genera un histograma llamado
sleepHistogram
.Usa la instancia
sleepHistogram
para registrar el tiempo de sueño, que se determina cuando se invoca la funciónrandomSleep
:Las métricas registradas de estos instrumentos se exportan desde tu aplicación en función de la configuración del exportador de OpenTelemetry.
Siguientes pasos
- Correlacionar métricas y trazas mediante ejemplares
- OpenTelemetry
- Instrumentación de OpenTelemetry
- Modelo de datos de métricas de OpenTelemetry