Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les API ActivitySource.CreateActivity et ActivitySource.StartActivity retournent uniquement une Activity lorsqu’il existe un écouteur inscrit qui décide de la création de l’instance. Il s’agit généralement de l’échantillonnage.
L’énumération System.Diagnostics.ActivitySamplingResult définit les décisions d’échantillonnage possibles.
Lors de la création d’un Activity sans parent, ActivitySamplingResult détermine si le Activity est créé, puis comment les propriétés Recorded et IsAllDataRequested sont définies :
| ActivitySamplingResult | Activité créée | Activity.Recorded | Activity.IsAllDataRequested |
|---|---|---|---|
| Aucun | Non | ||
| PropagationData | Oui | Faux | Faux |
| AllData | Oui | Faux | Vrai |
| AllDataAndRecorded | Oui | Vrai | Vrai |
Il est également possible de créer un Activity qui agit en tant que parent. Le parent peut se trouver dans le même processus, ou il peut s’agir d’un parent distant propagé au processus actuel.
Comportement précédent
Auparavant, lors de la création d’un Activity comme PropagationData avec un parent marqué comme Recorded, les propriétés Recorded et IsAllDataRequested étaient définies comme suit :
| ActivitySamplingResult | Activité créée | Activity.Recorded | Activity.IsAllDataRequested |
|---|---|---|---|
| PropagationData | Oui | Vrai | Faux |
Nouveau comportement
À compter de .NET 10, lorsque vous créez un Activity comme PropagationData avec un parent marqué comme Recorded, les propriétés Recorded et IsAllDataRequested sont définies comme suit :
| ActivitySamplingResult | Activité créée | Activity.Recorded | Activity.IsAllDataRequested |
|---|---|---|---|
| PropagationData | Oui | Faux | Faux |
Version introduite
.NET 10
Type de changement cassant
Ce changement est un changement comportemental .
Raison de la modification
Le comportement précédent n’a pas suivi la spécification OpenTelemetry.
Action recommandée
Si vous avez implémenté ActivityListener.Sample directement ET utilisez ActivitySamplingResult.PropagationData, vérifiez que vous n’êtes pas dépendant du comportement défectueux. Pour restaurer le comportement précédent, vous pouvez définir Activity.ActivityTraceFlags sur Recorded après l’appel CreateActivity ou StartActivity.
Si vous utilisez OpenTelemetry .NET et que vous avez personnalisé l’échantillonneur, vérifiez la configuration de votre échantillonneur. La configuration .NET OpenTelemetry par défaut utilise un algorithme parent qui n’est pas affecté.