Agregar instrumentación personalizada de OpenTelemetry al código de tu aplicación te permite registrar intervalos de seguimiento y métricas personalizados que miden el comportamiento específico de la aplicación más allá de lo que recopilan las bibliotecas de frameworks estándar. Puedes aplicar los conceptos de este documento a las aplicaciones escritas en cualquier lenguaje compatible con OpenTelemetry. Para obtener información general, consulta Observabilidad para desarrolladores de aplicaciones y Elige un enfoque de instrumentación.
En los ejemplos de este documento, se usa la aplicación de muestra de Go que se describe en Muestra de instrumentación de Go, que está disponible en GitHub.
Antes de comenzar
Habilita las APIs de Cloud Logging, Cloud Monitoring y Cloud Trace, si aún no están habilitadas.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso serviceusage.services.enable. Si
creaste el proyecto, es probable que ya tengas este permiso a través del
rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del
rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin).
Obtén información para otorgar roles.
Crea seguimientos personalizados
Para generar seguimientos personalizados desde tu aplicación, agrega código de instrumentación que crea intervalos de OpenTelemetry. En OpenTelemetry, los intervalos son los componentes básicos de los seguimientos.
Para crear un intervalo, haz lo siguiente:
Modifica tu app para adquirir un
Tracerde OpenTelemetry. En OpenTelemetry, un rastreador es un creador de intervalos. Puedes adquirir un rastreador como se muestra en el siguiente código. Para ver la muestra completa, selecciona el logotipo de GitHub en la barra de herramientas de la muestra.El nombre del rastreador, que se representa con
scopeName, identifica el alcance de la instrumentación de los seguimientos generados.Usa la instancia
tracerpara crear intervalos. En la siguiente muestra de código, la funcióncomputeSubrequestsgenera un intervalo cada vez que se la llama:En la muestra de código anterior, el intervalo generado a partir de la función
computeSubrequestsrepresenta el trabajo que realizó toda la función. Esto se debe a que el primer paso de la función es iniciar un intervalo nuevo usandotracer.Start, y la palabra clavedeferantes despan.End()garantiza que el intervalo finalice justo antes de que salga la función.
Crea métricas personalizadas
Para generar metricas desde la aplicación, agrega un código de instrumentación que registre las mediciones realizadas durante la ejecución de la app.
Para crear métricas, haz lo siguiente:
Modifica tu app para adquirir un
Meterde OpenTelemetry. En OpenTelemetry, un medidor 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 medidor, que se representa con
scopeName, identifica el alcance de la instrumentación de las métricas generadas.Usa la instancia
meterpara crear instrumentos que puedan registrar métricas. Por ejemplo, en el siguiente código, se usameterpara crear un histograma de OpenTelemetry:El código anterior genera un histograma llamado
sleepHistogram.Usa la instancia
sleepHistogrampara registrar el tiempo de suspensión, 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.
¿Qué sigue?
- Correlaciona las métricas y los seguimientos con ejemplares
- OpenTelemetry
- Instrumentación de OpenTelemetry
- Modelo de datos de métricas de OpenTelemetry