Cambio de comportamiento de ActivitySource.CreateActivity y ActivitySource.StartActivity
Las APIs de ActivitySource.CreateActivity y ActivitySource.StartActivity solo devuelven un Activity cuando hay un escuchador registrado que determina si debe crearse la instancia. Esto se conoce generalmente como muestreo.
La enumeración System.Diagnostics.ActivitySamplingResult define las posibles decisiones de muestreo.
Al crear un Activity
sin un elemento primario, ActivitySamplingResult
controla si se crea el Activity
y, a continuación, cómo se establecen las propiedades Recorded
y IsAllDataRequested
:
ResultadoDeMuestreoDeActividad | Actividad creada | Activity.Recorded | Activity.IsAllDataRequested |
---|---|---|---|
Ninguno | No | ||
DatosDePropagación | Sí | Falso | Falso |
AllData | Sí | Falso | Verdadero |
AllDataAndRecorded | Sí | Verdadero | Verdadero |
También es posible crear una Activity
con un elemento principal. El elemento principal podría estar en el mismo proceso o podría ser un elemento principal remoto propagado al proceso actual.
Comportamiento anterior
Anteriormente, al crear un Activity
como PropagationData
con un elemento primario marcado como Recorded
, las propiedades Recorded
y IsAllDataRequested
se establecieron de la siguiente manera:
ActivitySamplingResult | Actividad creada | Activity.Recorded | Activity.IsAllDataRequested |
---|---|---|---|
Datos de Propagación | Sí | Verdadero | Falso |
Nuevo comportamiento
A partir de .NET 10, al crear un Activity
como PropagationData
con un elemento primario marcado como Recorded
, las propiedades Recorded
y IsAllDataRequested
se establecen de la siguiente manera:
Resultado del Muestreo de Actividad | Actividad creada | Activity.Recorded | Activity.IsAllDataRequested |
---|---|---|---|
Datos de Propagación | Sí | Falso | Falso |
Versión introducida
.NET 10 Preview 1
Tipo de cambio importante
Este cambio es un cambio de comportamiento .
Motivo del cambio
El comportamiento anterior no siguió la especificación OpenTelemetry.
Acción recomendada
Si ha implementado ActivityListener.Sample
directamente Y usa ActivitySamplingResult.PropagationData
, compruebe que no depende del comportamiento defectuoso. Para restaurar el comportamiento anterior, puede establecer Activity.ActivityTraceFlags
en Recorded
después de la llamada CreateActivity
o StartActivity
.
Si usa OpenTelemetry .NET y ha personalizado el sampler, compruebe la configuración del sampler. La configuración predeterminada de OpenTelemetry .NET usa un algoritmo basado en elementos primarios que no se ve afectado.