Getting Started
Get telemetry for your app in less than 5 minutes!
The content of this page may be outdated and some links may be invalid.
A newer version of this page exists in
English. To see the changes to the English page since this page was last updated: visit
GitHub compare 45e813cf..583226cf
and search for More information ...
content/en/docs/zero-code/dotnet/_index.md.
Usa la instrumentación automática de OpenTelemetry .NET para enviar trazas y métricas desde aplicaciones y servicios .NET a backends de observabilidad sin tener que modificar su código fuente.
Para aprender a instrumentar el código de su servicio o aplicación, lee el Manual de instrumentación.
La instrumentación automática de OpenTelemetry .NET debería funcionar con todos los sistemas operativos y versiones oficialmente compatibles de .NET).
La versión mínima compatible de
.NET Framework es
4.6.2.
Las arquitecturas de procesador compatibles son:
La compilación ARM64 no admite imágenes basadas en CentOS.
Pruebas de integración continua (CI) en los siguientes sistemas operativos:
Para instrumentar una aplicación .NET automáticamente, descargue y ejecute el script de instalación para su sistema operativo.
Descarga y ejecuta el script .sh:
# Descargar el script de bash
curl -sSfL https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/otel-dotnet-auto-install.sh -O
# Instalar archivos principales
sh ./otel-dotnet-auto-install.sh
# Habilitar la ejecución del script de instrumentación
chmod +x $HOME/.otel-dotnet-auto/instrument.sh
# Configurar la instrumentación para la sesión de shell actual
. $HOME/.otel-dotnet-auto/instrument.sh
# Ejecute su aplicación con instrumentación
OTEL_SERVICE_NAME=myapp OTEL_RESOURCE_ATTRIBUTES=deployment.environment=staging,service.version=1.0.0 ./MyNetApp
En macOS
coreutils es requerido. Si
tienes homebrew instalado, puedes obtenerlo simplemente
ejecutando
brew install coreutils
En Windows, usa el módulo PowerShell como administrador.
Windows PowerShell Desktop (v5.1) es requerido. Otras versiones, incluido PowerShell Core (v6.0+) no son compatibles en este momento.
# PowerShell 5.1 es requerido
#Requires -PSEdition Desktop
# Descargar el módulo
$module_url = "https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/OpenTelemetry.DotNet.Auto.psm1"
$download_path = Join-Path $env:temp "OpenTelemetry.DotNet.Auto.psm1"
Invoke-WebRequest -Uri $module_url -OutFile $download_path -UseBasicParsing
# Importar el módulo para utilizar sus funciones
Import-Module $download_path
# Instalar archivos principales (online vs offline)
Install-OpenTelemetryCore
Install-OpenTelemetryCore -LocalPath "C:\Path\To\OpenTelemetry.zip"
# Configurar la instrumentación para la sesión actual de PowerShell
Register-OpenTelemetryForCurrentSession -OTelServiceName "MyServiceDisplayName"
# Ejecute su aplicación con instrumentación
.\MyNetApp.exe
# Puede obtener información sobre su uso ejecutando los siguientes comandos
# Listar todos los comandos disponibles
Get-Command -Module OpenTelemetry.DotNet.Auto
# Obtener información de uso del comando
Get-Help Install-OpenTelemetryCore -Detailed
Usa el módulo de PowerShell OpenTelemetry.DotNet.Auto.psm1 para configurar la
instrumentación automática de un servicio de Windows:
# Importar el módulo
Import-Module "OpenTelemetry.DotNet.Auto.psm1"
# Instalar archivos principales
Install-OpenTelemetryCore
# Configurar la instrumentación del servicio de Windows
Register-OpenTelemetryForWindowsService -WindowsServiceName "WindowsServiceName" -OTelServiceName "MyServiceDisplayName"
Register-OpenTelemetryForWindowsService realiza un reinicio del servicio.
Recuerde reiniciar el servicio de
Windows después de realizar cambios en la configuración. Puede hacerlo
ejecutando Restart-Service -Name $WindowsServiceName -Force en PowerShell.
Para las aplicaciones .NET Framework puedes configurar
las configuraciones más comunes de OTEL_
(como OTEL_RESOURCE_ATTRIBUTES) via appSettings en App.config.
La alternativa es establecer variables de entorno para el servicio de Windows en el Registro de Windows.
La clave de registro de un servicio de Windows determinado (llamado $svcName)
se encuentra en:
HKLM\SYSTEM\CurrentControlSet\Services\$svcName
Las variables de entorno se definen en un REG_MULTI_SZ (valor de registro
multilínea) llamado Environment en el siguiente formato:
Var1=Value1
Var2=Value2
Las siguientes instrucciones se aplican a las aplicaciones .NET Framework.
Usa el módulo de PowerShell OpenTelemetry.DotNet.Auto.psm1 para configurar la
instrumentación automática para IIS:
# Importar el módulo
Import-Module "OpenTelemetry.DotNet.Auto.psm1"
# Instalar archivos principales
Install-OpenTelemetryCore
# Configurar la instrumentación de IIS
Register-OpenTelemetryForIIS
Register-OpenTelemetryForIIS
realiza un reinicio de IIS.
Las siguientes instrucciones se aplican a las aplicaciones del Framework .NET Framework.
Para las aplicaciones ASP.NET, puede configurar
las configuraciones OTEL_ más comunes
(como OTEL_SERVICE_NAME) a través de appSettings en Web.config.
Si no se configura explícitamente un nombre de servicio, se generará uno para
usted. Si la aplicación está alojada en IIS en el Framework de .NET, se usará
SiteName\VirtualDirectoryPath, por ejemplo: MySite\MyApp.
Para las aplicaciones ASP.NET Core, puede usar los elementos
<environmentVariable>
dentro del bloque <aspNetCore> del archivo Web.config para establecer la
configuración mediante variables de entorno.
Recuerde reiniciar IIS después de
realizar cambios de configuración. Puede hacerlo ejecutando iisreset.exe.
Puede agregar las
<environmentVariables>
en applicationHost.config para establecer variables de entorno para grupos de
aplicaciones determinados.
Considere establecer variables de entorno comunes para todas las aplicaciones
implementadas en IIS configurando las variables de entorno para los servicios de
Windows W3SVC y WAS.
Para versiones de IIS anteriores a 10.0, puede considerar crear un usuario distinto, configurar sus variables de entorno y usarlo como usuario del grupo de aplicaciones.
Puede instrumentar aplicaciones
self-contained
mediante los paquetes NuGet. Consulte Paquetes NuGet para
obtener más información.
Para ver un ejemplo de instrumentación de contenedores Docker, consulte el ejemplo en GitHub.
También puedes usar el Operador OpenTelemetry para Kubernetes.
Para ver la todas las opciones de configuración, consulte Configuración y ajustes.
La correlación automática entre
registros y trazas proporcionada por la instrumentación automática de
OpenTelemetry .NET actualmente solo funciona para aplicaciones .NET que utilizan
Microsoft.Extensions.Logging. Consulte
#2310
para obtener más detalles.
El SDK de OpenTelemetry .NET correlaciona automáticamente los registros con los
datos de traza. Cuando se emiten registros en el contexto de una traza activo,
los campos de contexto de traza
filed TraceId,
SpanId y TraceState son completados automáticamente.
Los siguientes son registros producidos por la aplicación de consola de muestra:
"logRecords": [
{
"timeUnixNano": "1679392614538226700",
"severityNumber": 9,
"severityText": "Information",
"body": {
"stringValue": "Success! Today is: {Date:MMMM dd, yyyy}"
},
"flags": 1,
"traceId": "21df288eada1ce4ace6c40f39a6d7ce1",
"spanId": "a80119e5a05fed5a"
}
]
Para obtener más información, consulte:
La instrumentación automática de OpenTelemetry .NET admite una amplia variedad de librerías. Para obtener una lista completa, consulte Instrumentaciones.
Para ver la telemetría de su aplicación directamente en la salida estándar,
agregue console al siguiente valor de la variable de entorno antes de iniciar
su aplicación:
OTEL_TRACES_EXPORTEROTEL_METRICS_EXPORTEROTEL_LOGS_EXPORTERPara conocer los pasos generales de resolución de problemas y soluciones a problemas específicos, consulte Solución de problemas.
Una vez configurada la instrumentación automática para su aplicación o servicio, es posible que desee enviar trazas y métricas personalizados o agregar instrumentación manual para recopilar datos de telemetría personalizados.
En Linux y macOS, los pasos de instalación solo afectan a la sesión de shell actual, por lo que no se requiere una desinstalación explícita.
En Windows, usa el módulo PowerShell como administrador.
Windows Se requiere PowerShell Desktop (v5.1). Otras versiones, incluido PowerShell Core (v6.0+), no son compatibles actualmente.
# PowerShell 5.1 es requerido
# Requiere PSEdition Desktop
# Importar el módulo previamente instalado
Import-Module "OpenTelemetry.DotNet.Auto.psm1"
# Si IIS ya estaba registrado, puedes cancelar el registro con
Unregister-OpenTelemetryForIIS
# Si los servicios de Windows se registraron previamente, cancele su registro
Unregister-OpenTelemetryForWindowsService -WindowsServiceName "WindowsServiceName"
# Por último, desinstale la instrumentación OpenTelemetry
Uninstall-OpenTelemetryCore
Get telemetry for your app in less than 5 minutes!
OpenTelemetry .NET Automatic Instrumentation supported libraries.
Custom traces and metrics using .NET automatic instrumentation.
¿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!