Basado en código

Learn the essential steps in setting up code-based instrumentation

Importa la API y el SDK de OpenTelemetry

Primero tendrás que importar OpenTelemetry en el código de tu servicio. Si estás desarrollando una librería u otro componente destinado a ser consumido por un ejecutable binario, solo necesitarías la dependencia de la API. Si tu artefacto es un proceso o servicio independiente, entonces necesitarías la dependencia tanto de la API como del SDK. Para más información sobre la API y el SDK de OpenTelemetry, consulta la especificación.

Configura la API de OpenTelemetry

Para poder crear trazas o métricas, primero deberás crear un provider de tipo tracer y/o un meter. En general, recomendamos que el SDK proporcione un único proveedor predeterminado para estos objetos. Luego, obtendrás una instancia de tracer o meter de ese proveedor y le darás un nombre y una versión. El nombre que elijas aquí debe identificar exactamente lo que se está instrumentando – si estás escribiendo una librería, por ejemplo, deberías darle el nombre de tu librería (por ejemplo, com.example.myLibrary), ya que este nombre pondrá en un espacio de nombres todos los spans o eventos de métricas producidos. También se recomienda que proporciones una cadena de versión (por ejemplo, semver:1.0.0) que se corresponda con la versión actual de tu librería o servicio.

Configura el SDK de OpenTelemetry

Si estás construyendo un proceso de servicio, también deberás configurar el SDK con las opciones apropiadas para exportar tus datos de telemetría a algún backend de análisis. Recomendamos que esta configuración se gestione de forma programática a través de un archivo de configuración o algún otro mecanismo. También hay opciones de ajuste específicas para cada lenguaje que podrías aprovechar.

Crea datos de telemetría

Una vez que hayas configurado la API y el SDK, podrás crear trazas y eventos de métricas a través de los objetos tracer y meter que obtuviste del proveedor. Haz uso de las librerías de instrumentación para tus dependencias – consulta el registro o el repositorio de tu lenguaje para más información sobre estas.

Exporta datos

Una vez que hayas creado los datos de telemetría, querrás enviarlos a algún lugar. OpenTelemetry soporta dos métodos principales para exportar datos desde tu proceso a un backend de análisis: directamente desde un proceso o haciendo proxy a través del OpenTelemetry Collector.

La exportación desde el proceso requiere que importes y tengas una dependencia en uno o más exportadores, librerías que traducen los objetos span y de métricas en memoria de OpenTelemetry al formato apropiado para herramientas de análisis de telemetría como Jaeger o Prometheus. Además, OpenTelemetry soporta un protocolo de comunicación conocido como OTLP, que es compatible con todos los SDK de OpenTelemetry. Este protocolo puede usarse para enviar datos al OpenTelemetry Collector, un proceso binario independiente que puede ejecutarse como un proxy o sidecar para las instancias de tu servicio, o en un host separado. El colector puede configurarse para reenviar y exportar estos datos a las herramientas de análisis de tu elección.

Además de las herramientas de código abierto como Jaeger o Prometheus, una lista creciente de empresas soporta la ingesta de datos de telemetría de OpenTelemetry. Para más detalles, consulta Vendors.