Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejsy API ActivitySource.CreateActivity i ActivitySource.StartActivity zwracają Activity tylko wtedy, gdy istnieje zarejestrowany słuchacz, który decyduje, że wystąpienie powinno zostać utworzone. Jest to ogólnie znane jako próbkowanie.
Enum System.Diagnostics.ActivitySamplingResult definiuje możliwe decyzje dotyczące próbkowania.
Podczas tworzenia Activity bez elementu nadrzędnego ActivitySamplingResult określa, czy Activity jest tworzony, a następnie jak są ustawiane właściwości Recorded i IsAllDataRequested:
| WynikPróbkowaniaAktywności | Utworzone działanie | Zapisano aktywność | Activity.CzyZadaneSaWszystkieDane |
|---|---|---|---|
| Żaden | Nie | ||
| Dane Propagacji | Tak | Fałszywy | Fałszywy |
| AllData | Tak | Fałszywy | Prawda |
| Wszystkie Dane i Nagrania | Tak | Prawda | Prawda |
Istnieje również możliwość utworzenia obiektu Activity z elementem nadrzędnym. Element nadrzędny może być w tym samym procesie lub może być zdalnym elementem nadrzędnym propagowanym do bieżącego procesu.
Poprzednie zachowanie
Wcześniej podczas tworzenia Activity jako PropagationData z elementem nadrzędnym oznaczonym jako Recordedwłaściwości Recorded i IsAllDataRequested zostały ustawione w następujący sposób:
| WynikPróbkowaniaAktywności | Utworzone działanie | Zapisano aktywność | Activity.CzyZadaneSaWszystkieDane |
|---|---|---|---|
| Dane Propagacji | Tak | Prawda | Fałszywy |
Nowe zachowanie
Począwszy od .NET 10, podczas tworzenia Activity jako PropagationData z elementem nadrzędnym oznaczonym jako Recorded, właściwości Recorded i IsAllDataRequested są konfigurowane w następujący sposób:
| WynikPróbkowaniaAktywności | Utworzone działanie | Zapisano aktywność | Activity.CzyZadaneSaWszystkieDane |
|---|---|---|---|
| Dane Propagacji | Tak | Fałszywy | Fałszywy |
Wprowadzona wersja
.NET 10
Typ zmiany przełamującej zgodność
Ta zmiana jest zmianą behawioralną.
Przyczyna zmiany
Poprzednie zachowanie nie było zgodne ze specyfikacją OpenTelemetry.
Zalecana akcja
Jeśli zaimplementowałeś ActivityListener.Sample bezpośrednio oraz używasz ActivitySamplingResult.PropagationData, sprawdź, czy nie jesteś uzależniony od nieprawidłowego zachowania. Aby przywrócić poprzednie zachowanie, można ustawić Activity.ActivityTraceFlags na Recorded po wywołaniu CreateActivity lub StartActivity.
Jeśli używasz OpenTelemetry dla .NET i dostosowałeś sampler, sprawdź konfigurację samplera. Domyślna konfiguracja OpenTelemetry .NET używa algorytmu opartego na rodzicach, na który to nie ma wpływu.