ActivitySource.CreateActivity 및 ActivitySource.StartActivity API는 인스턴스를 만들어야 한다고 결정하는 등록된 수신기가 있는 경우에만 Activity 반환합니다. 이를 일반적으로 샘플링이라고합니다.
System.Diagnostics.ActivitySamplingResult 열거형은 가능한 샘플링 결정을 정의합니다.
부모 없이 Activity 만들 때 ActivitySamplingResultActivity 생성되었는지 여부와 Recorded 및 IsAllDataRequested 속성이 설정되는 방식을 구동합니다.
| 활동샘플링결과 | 만든 활동 | 활동 기록됨 | Activity.IsAllDataRequested (액티비티.모든 데이터가 요청되었는지 확인) |
|---|---|---|---|
| 없음 | 아니요 | ||
| PropagationData (전파 데이터) | 예 | 거짓 | 거짓 |
| AllData | 예 | 거짓 | 참 |
| 모든 데이터와 기록됨 | 예 | 참 | 참 |
부모와 함께 Activity를 생성할 수도 있습니다. 부모가 동일한 프로세스에 있거나 현재 프로세스에 전파된 원격 부모일 수 있습니다.
이전 동작
이전에는 부모가 Activity로 표시된 PropagationData로 Recorded을 만들 때, Recorded 및 IsAllDataRequested 속성이 다음과 같이 설정된다.
| 활동샘플링결과 | 만든 활동 | 활동 기록됨 | Activity.IsAllDataRequested (액티비티.모든 데이터가 요청되었는지 확인) |
|---|---|---|---|
| PropagationData (전파 데이터) | 예 | 참 | 거짓 |
새 동작
.NET 10부터 부모가 Activity로 표시된 경우, PropagationData로서 Recorded을 만들 때, Recorded 및 IsAllDataRequested 속성은 다음과 같이 설정됩니다.
| 활동샘플링결과 | 만든 활동 | 활동 기록됨 | Activity.IsAllDataRequested (액티비티.모든 데이터가 요청되었는지 확인) |
|---|---|---|---|
| PropagationData (전파 데이터) | 예 | 거짓 | 거짓 |
도입된 버전
.NET 10
호환성이 손상되는 변경 유형
이 변경은 행동 변화입니다.
변경 이유
이전 동작은 OpenTelemetry 사양을 따르지 않았습니다.
권장 작업
ActivityListener.Sample 직접 구현하고 ActivitySamplingResult.PropagationData사용하는 경우 결함이 있는 동작에 의존하지 않는지 확인합니다. 이전 동작을 복원하려면 Activity.ActivityTraceFlags 또는 Recorded 호출 후에 CreateActivity을 StartActivity로 설정할 수 있습니다.
OpenTelemetry .NET을 사용하고 샘플러를 사용자 지정한 경우 샘플러 구성을 확인합니다. 기본 OpenTelemetry .NET 구성은 영향을 받지 않는 부모 기반 알고리즘을 사용합니다.
영향을 받는 API
.NET