Rastreamento distribuído
Rastreie solicitações entre serviços com Activity.
Rastreamento distribuído é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 4 aulas no total.
O que é o rastreamento distribuído
O rastreamento distribuído acompanha uma solicitação enquanto ela percorre serviços e componentes. Cada unidade de trabalho se torna um intervalo, e os intervalos conectados formam um rastreamento, visualizado como uma linha do tempo de operações aninhadas.
Intervalos e rastreamentos
Um intervalo tem um nome, horário de início e de término, atributos e um estado. Os intervalos são aninhados: um intervalo parent (a solicitação HTTP) contém intervalos child (uma consulta ao banco de dados ou uma chamada externa). Uma árvore inteira compartilha um único ID de rastreamento.
Activity é o intervalo do .NET
No .NET, a classe System.Diagnostics.Activity é a implementação de um intervalo do OpenTelemetry. O senhor cria activities a partir de uma ActivitySource.
using System.Diagnostics;
private static readonly ActivitySource Source =
new("Checkout.Orders");Iniciando uma Activity
StartActivity inicia um intervalo. Envolva-o em um using para que ele termine (registrando sua duração) quando o bloco for encerrado.
using Activity activity = Source.StartActivity("PlaceOrder");
// work happens here; span ends when disposedAdicionando marcadores a um intervalo
Os marcadores (atributos) associam contexto de chave e valor a um intervalo, como o identificador de um pedido ou um valor, tornando os rastreamentos pesquisáveis e significativos.
activity?.SetTag("order.id", orderId);
activity?.SetTag("order.amount", amount);Registrando eventos e estados
Use AddEvent para anotações pontuais e SetStatus para indicar sucesso ou falha, o que destaca os erros no seu back-end de rastreamento.
activity?.AddEvent(new ActivityEvent("inventory.reserved"));
activity?.SetStatus(ActivityStatusCode.Error, "Payment declined");Registrando a ActivitySource
O OpenTelemetry coleta activities somente de fontes registradas com AddSource; portanto, informe ao rastreador o nome da sua ActivitySource.
builder.Services.AddOpenTelemetry()
.WithTracing(tracing => tracing
.AddSource("Checkout.Orders"));Instrumentação automática
A instrumentação integrada cria automaticamente intervalos para solicitações recebidas do ASP.NET Core e chamadas externas do HttpClient, oferecendo um rastreamento básico sem que o senhor precise escrever código.
tracing
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation();Propagação do contexto
Para que um rastreamento atravesse serviços, o ID de rastreamento precisa viajar entre eles. O OpenTelemetry o injeta nos cabeçalhos HTTP de saída (W3C traceparent) e o lê no lado receptor, conectando automaticamente os intervalos em um único rastreamento.
Relações parent e child
Quando o senhor inicia uma activity enquanto outra está atual, a nova se torna seu child por meio de Activity.Current. Esse aninhamento constrói a árvore de rastreamento sem conexão manual.
using var parent = Source.StartActivity("PlaceOrder");
using var child = Source.StartActivity("ChargeCard");
// child is nested under parent automaticallyAmostragem
Rastrear todas as solicitações pode ser caro. A amostragem registra apenas uma parte delas (por exemplo, 10%) para controlar o custo e, ao mesmo tempo, manter dados representativos.
Verificação rápida
Teste o rastreamento distribuído.
Recapitulação
O rastreamento distribuído acompanha uma solicitação por meio de intervalos conectados que compartilham um ID de rastreamento. No .NET, Activity é o intervalo, criado a partir de uma ActivitySource registrada por meio de StartActivity (use using para encerrá-lo). Adicione contexto com SetTag, AddEvent e SetStatus. A instrumentação automática e a propagação de contexto W3C conectam rastreamentos entre serviços; a amostragem controla o custo.
Perguntas Frequentes
A aula “Rastreamento distribuído” é grátis?
Sim — o texto completo de “Rastreamento distribuído” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 4 aulas no total.
O que vou aprender em “Rastreamento distribuído”?
Rastreie solicitações entre serviços com Activity. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C# Academy?
Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Rastreamento distribuído”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C# Academy?
Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Os três pilares da observabilidade
- Rastreamento distribuído
- Coletando métricas
- Exportando para back-ends