MessageExtensions.ExtractActivity(Message, 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.ServiceBus.Message message, string activityName = default);
static member ExtractActivity : Microsoft.Azure.ServiceBus.Message * string -> System.Diagnostics.Activity
<Extension()>
Public Function ExtractActivity (message As Message, Optional activityName As String = Nothing) As Activity
Parâmetros
- message
- Message
- activityName
- String
Retornos
Exemplos
async Task ProcessAsync()
{
var message = await messageReceiver.ReceiveAsync();
var activity = message.ExtractActivity();
activity.Start();
Logger.LogInformation($"Message received, Id = {Activity.Current.Id}")
try
{
// process message
}
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, let's user activity now
Logger.LogInformation($"Message 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 UserProperties.
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 enfileirava mensagem
'Correlation-Context' é uma lista separada por vírgulas de pares sting key value represeting contexto opcional para a operação.
Se não houver nenhum contexto de rastreamento na mensagem, 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