Si escribes aplicaciones, puedes instrumentar tu código para generar telemetría y obtener una observabilidad detallada del comportamiento interno de tiempo de ejecución de tu aplicación. En esta página, se presentan los conceptos de instrumentación en el proceso, se explican los beneficios de los frameworks independientes del proveedor, como OpenTelemetry, y se te dirige a guías y ejemplos de código específicos del lenguaje para Google Cloud Observability.
¿Qué son la instrumentación y la observabilidad?
La instrumentación hace referencia al código específico que genera o recopila datos sobre el comportamiento de tiempo de ejecución de tu aplicación. Dentro de la aplicación, la instrumentación, como la que proporciona OpenTelemetry, puede recopilar información específica del dominio sobre el entorno de ejecución del lenguaje, el framework o la lógica de aplicación y, luego, enviar esos datos a un Google Cloud proyecto o a otro destino. Estos datos, también conocidos como telemetría, incluyen registros, métricas y seguimientos.
Las métricas a nivel del sistema, como el uso de CPU, uso de memoria y uso de disco, son valiosas para detectar problemas con la aplicación, pero no proporcionan mucha información sobre los problemas a nivel de la aplicación. La instrumentación puede ayudar a que la aplicación genere los datos que necesitas para diagnosticar la causa raíz de un problema, ya que la telemetría resultante te muestra lo que sucede dentro de la aplicación. Por ejemplo, los registros suelen incluir contexto sobre tu programa, como un mensaje de error o seguimiento de pila específicos, y la ubicación en tu código fuente. Del mismo modo, los seguimientos distribuidos te ayudan a comprender cómo interactúan varios servicios cuando procesan solicitudes. Las métricas te permiten determinar cuándo la aplicación no se comporta correctamente.
Instrumentar tu aplicación implica generar telemetría y enviarla a un sistema en el que se puedan almacenar y consultar los datos. Por ejemplo, tu instrumentación puede enviar telemetría a un Google Cloud proyecto. Los servicios en Google Cloud Observability te ayudan a recopilar, analizar y correlacionar los datos de telemetría. También proporcionan valores predeterminados integrados para ayudarte a comenzar más rápido, como paneles predeterminados y políticas de alertas. Para obtener más información sobre Google Cloud Observability, consulta Observabilidad en Google Cloud.
En la siguiente figura, se ilustra cómo una aplicación usa la instrumentación para generar y enviar telemetría a un sistema de almacenamiento:
Como se ilustra en la figura anterior, el código de instrumentación existe dentro del proceso de la aplicación y, además, interactúa con la aplicación para generar datos de telemetría. Luego, el framework de instrumentación exporta tu telemetría a un sistema de almacenamiento configurado. En la figura, el sistema de almacenamiento es el Google Cloud proyecto.
Por qué deberías usar frameworks de instrumentación independientes del proveedor
Incluso si planeas enviar telemetría solo a Google Cloud, te recomendamos que uses un framework de instrumentación de código abierto independiente del proveedor para instrumentar tus aplicaciones. Estos tipos de frameworks tienen algunos beneficios clave:
- Sin dependencia de un proveedor
- Los frameworks neutrales del proveedor no están vinculados a ningún proveedor en particular y proporcionan su propio modelo de datos para la telemetría generada. Por lo tanto, puedes enviar datos a varios proveedores y, por lo general, puedes cambiar el proveedor que usas sin modificar tu código.
- Procedimientos estandarizados para recopilar telemetría
- Los frameworks bien diseñados, como OpenTelemetry, proporcionan un enfoque estandarizado para recopilar telemetría de aplicaciones. Puedes usar el mismo framework para las aplicaciones escritas en lenguajes compatibles. Además, debido a que el framework está estandarizado, puedes recopilar y comparar la telemetría de todos tus servicios.
- Bibliotecas interoperables
- Los frameworks de instrumentación incluyen un ecosistema variado de bibliotecas que recopilan señales de telemetría, y estas bibliotecas son interoperables. Por ejemplo, OpenTelemetry proporciona bibliotecas para recopilar datos de seguimiento y recopilar datos de métricas. Puedes usar la biblioteca o ambas.
Determina tu estrategia de instrumentación
- Elige un enfoque de instrumentación proporciona recomendaciones de instrumentación basadas en tu plataforma de procesamiento Google Cloud y requisitos de telemetría.
- ¿Qué es OpenTelemetry? describe la misión y los objetivos de OpenTelemetry.
- Observabilidad en Google Cloud proporciona información general.
Muestras y guías de implementación
Descripción general de la muestra describe la arquitectura y los roles de Identity and Access Management necesarios para los siguientes ejemplos de código basados en el recopilador:
Migra del exportador de Trace al extremo de OTLP describe cómo actualizar una aplicación que usa la exportación directa para enviar datos de seguimiento con formato OTLP.
Usa la instrumentación de código cero de OpenTelemetry para cargas de trabajo de Java en GKE describe cómo recopilar telemetría sin modificar tu aplicación de Java.