Uso de los paquetes NuGet OpenTelemetry.AutoInstrumentation
Usa los paquetes NuGet en los siguientes casos:
- Simplifica la implementación. Por ejemplo, un contenedor que ejecuta una sola aplicación.
- Admite la instrumentación de aplicaciones
independientes. - Facilita la experimentación de los desarrolladores con la instrumentación automática usando paquetes NuGet.
- Resuelve los conflictos de versiones entre las dependencias utilizadas por la aplicación y la instrumentación automática.
Limitaciones
Aunque los paquetes NuGet son una forma cómoda de implementar la instrumentación automática, no se pueden utilizar en todos los casos. Las razones más comunes para no utilizar paquetes NuGet son las siguientes:
- No se puede agregar el paquete al proyecto de la aplicación. Por ejemplo, la aplicación es de un tercero que no puede agregar el paquete.
- Reduce el uso del disco o el tamaño de una máquina virtual cuando haya varias aplicaciones que se vayan a instrumentar instaladas en una sola máquina. En este caso, puedes utilizar una única implementación para todas las aplicaciones .NET que se ejecuten en la máquina.
- Una aplicación antigua que no se puede migrar al proyecto de estilo SDK.
Uso de los paquetes NuGet
Para instrumentar automáticamente tu aplicación con OpenTelemetry .NET, añade el
paquete OpenTelemetry.AutoInstrumentation a su proyecto:
dotnet add [<PROYECTO>] package OpenTelemetry.AutoInstrumentation
Si la aplicación hace referencia a paquetes que pueden instrumentarse, pero que requieren otros paquetes para que la instrumentación funcione, la compilación fallará y te pedirá que añada la biblioteca de instrumentación que falta o que omita la instrumentación del paquete correspondiente:
~packages/opentelemetry.autoinstrumentation.buildtasks/1.6.0/build/OpenTelemetry.AutoInstrumentation.BuildTasks.targets(29,5): error : OpenTelemetry.AutoInstrumentation: add a reference to the instrumentation package 'MongoDB.Driver.Core.Extensions.DiagnosticSources' version 1.4.0 or add 'MongoDB.Driver.Core' to the property 'SkippedInstrumentations' to suppress this error.
Para resolver el error, añade la biblioteca de instrumentación recomendada u
omita la instrumentación del paquete indicado añadiéndolo a la propiedad
SkippedInstrumentation, por ejemplo:
<PropertyGroup>
<SkippedInstrumentations>MongoDB.Driver.Core;StackExchange.Redis</SkippedInstrumentations>
</PropertyGroup>
También puedes especificar la misma propiedad directamente usando la CLI. Ten en
cuenta que necesitas escapar correctamente el separador ; como ‘%3B’:
dotnet build -p:SkippedInstrumentations=StackExchange.Redis%3BMongoDB.Driver.Core
Para distribuir los componentes de tiempo de ejecución nativos adecuados con su
aplicación .NET, especifique un
Identificador de tiempo de ejecución (RID)
para compilar la aplicación utilizando dotnet build o dotnet publish. Esto
puede requerir elegir entre distribuir una
self-contained o a framework-dependent.
Ambos tipos son compatibles con la instrumentación automática.
Usa el script en la carpeta de salida de la compilación para iniciar la aplicación con la instrumentación automática activada.
- En Windows, usa
instrument.cmd <application_executable>. - En Linux o Unix, usa
instrument.sh <application_executable>.
Si inicias la aplicación usando la CLI de dotnet, agrega dotnet después del
script.
- En Windows, usa
instrument.cmd dotnet <application>. - En Linux o Unix, usa
instrument.sh dotnet <application>.
El script pasa a la aplicación todos los parámetros de línea de comandos que proporciones.
Comentarios
¿Fue útil esta página?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!