Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As APIs ActivitySource.CreateActivity e ActivitySource.StartActivity só retornam um Activity quando há um ouvinte registrado que decide que a instância deve ser criada. Isto é geralmente conhecido como amostragem.
O System.Diagnostics.ActivitySamplingResult enum define as possíveis decisões de amostragem.
Ao criar um Activity sem um pai, ActivitySamplingResult determina se o Activity é criado e, em seguida, como as propriedades Recorded e IsAllDataRequested são definidas:
| Atividade Amostragem Resultado | Atividade criada | Atividade. Registada | Atividade.IsAllDataRequested |
|---|---|---|---|
| Nenhum | Não | ||
| Dados de Propagação | Sim | Falso | Falso |
| Todos os dados | Sim | Falso | Verdadeiro |
| TodosOsDadosEGravados | Sim | Verdadeiro | Verdadeiro |
Também é possível criar um Activity associado a um pai. O pai pode estar no mesmo processo ou pode ser um pai remoto propagado para o processo atual.
Comportamento anterior
Anteriormente, ao criar um Activity como PropagationData com um pai marcado como Recorded, as propriedades Recorded e IsAllDataRequested eram definidas da seguinte maneira:
| Atividade Amostragem Resultado | Atividade criada | Atividade. Registada | Atividade.IsAllDataRequested |
|---|---|---|---|
| Dados de Propagação | Sim | Verdadeiro | Falso |
Novo comportamento
A partir do .NET 10, quando você cria um Activity como PropagationData com um pai marcado como Recorded, as propriedades Recorded e IsAllDataRequested são definidas da seguinte maneira:
| Atividade Amostragem Resultado | Atividade criada | Atividade. Registada | Atividade.IsAllDataRequested |
|---|---|---|---|
| Dados de Propagação | Sim | Falso | Falso |
Versão introduzida
.NET 10
Tipo de mudança de rutura
Esta alteração é uma mudança comportamental.
Motivo da mudança
O comportamento anterior não seguiu a especificação OpenTelemetry .
Ação recomendada
Se você implementou ActivityListener.Sample diretamente E usa ActivitySamplingResult.PropagationData, verifique se você não está dependente do comportamento falho. Para restaurar o comportamento anterior, você pode definir Activity.ActivityTraceFlags como Recorded após a chamada CreateActivity ou StartActivity.
Se você usar o OpenTelemetry .NET e tiver personalizado o amostrador, verifique a configuração do amostrador. A configuração padrão do OpenTelemetry .NET utiliza um algoritmo de base parental que não é afetado.