EventDataDiagnosticExtensions.ExtractActivity(EventData, String) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
public static System.Diagnostics.Activity ExtractActivity (this Microsoft.Azure.EventHubs.EventData eventData, string activityName = default);
static member ExtractActivity : Microsoft.Azure.EventHubs.EventData * string -> System.Diagnostics.Activity
<Extension()>
Public Function ExtractActivity (eventData As EventData, Optional activityName As String = Nothing) As Activity
Parâmetros
- eventData
- EventData
- activityName
- String
Retornos
Exemplos
async Task ProcessAsync(EventData eventData)
{
var activity = eventData.ExtractActivity();
activity.Start();
Logger.LogInformation($"Event received, Id = {Activity.Current.Id}")
try
{
// process event
}
catch (Exception ex)
{
Logger.LogError($"Exception {ex}, Id = {Activity.Current.Id}")
}
finally
{
activity.Stop();
// Activity is stopped, we no longer have it in Activity.Current
Logger.LogInformation($"Event processed, Id = {activity.Id}, Duration = {activity.Duration}")
}
}
Observe que cada log é carimbado com Current. Id, que pode ser usada em qualquer chamada de método aninhado (sincronização ou assíncrona) – Current é um contexto ambiente que flui com chamadas de método assíncrono.
Comentários
O contexto de rastreamento é usado para correlacionar a telemetria entre o produtor e o consumidor e representado pelas propriedades 'Diagnostic-Id' e 'Correlation-Context' no Properties.
O SDK do .NET injeta automaticamente o contexto ao enviar mensagem para o ServiceBus (se diagnóstico estiver habilitado pelo sistema de rastreamento).
'Diagnostic-Id' identifica exclusivamente a operação que enfileira o evento
'Correlation-Context' é uma lista separada por vírgulas de pares de valores de chave de cadeia de caracteres que representam o contexto opcional para a operação.
Se não houver nenhum contexto de rastreamento no evento, esse método retornará Activity sem pai.
O retorno Activity precisa ser iniciado antes que possa ser usado (veja o exemplo abaixo)
Aplica-se a
Azure SDK for .NET