0Pricing
C# Academy · Aula

Coletando métricas

Registre contadores, medidores e histogramas.

Coletando métricas é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 3 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.

Por que usar métricas

Métricas são medições numéricas agregadas ao longo do tempo. Elas alimentam painéis e alertas: taxa de solicitações, quantidade de erros, latência e profundidade da fila. Diferentemente dos registros, elas continuam baratas em grandes volumes porque são agregadas.

A API de medição

O .NET emite métricas por meio de System.Diagnostics.Metrics. O senhor cria um Meter e depois o utiliza para criar instrumentos, como contadores e histogramas.

using System.Diagnostics.Metrics;

private static readonly Meter Meter = new("Checkout.Orders");

Contadores

Um contador é um valor que só aumenta, perfeito para contar eventos como pedidos realizados ou erros. O senhor chama Add para incrementá-lo.

private static readonly Counter<long> OrdersPlaced =
    Meter.CreateCounter<long>("orders.placed");

OrdersPlaced.Add(1);

Dimensões dos contadores

Associe marcadores para dividir um contador por dimensão, como estado ou região, permitindo agregar e filtrar os dados no seu back-end.

OrdersPlaced.Add(1,
    new KeyValuePair<string, object>("status", "completed"),
    new KeyValuePair<string, object>("region", "eu"));

Histogramas

Um histograma registra uma distribuição de valores, sendo ideal para latência ou tamanhos de carga útil. Os back-ends calculam percentis (p50, p95, p99) a partir das amostras registradas.

private static readonly Histogram<double> OrderDuration =
    Meter.CreateHistogram<double>("order.duration", "ms");

OrderDuration.Record(elapsedMs);

UpDownCounters

Um UpDownCounter pode aumentar ou diminuir, sendo adequado para valores como conexões ativas ou itens que estão atualmente em uma fila.

private static readonly UpDownCounter<long> ActiveOrders =
    Meter.CreateUpDownCounter<long>("orders.active");

ActiveOrders.Add(1);   // started
ActiveOrders.Add(-1);  // finished

Instrumentos observáveis

Instrumentos observáveis são lidos sob demanda por meio de uma função de retorno de chamada; são adequados para medidores como memória atual ou tamanho do cache, que o senhor consulta em vez de incrementar.

Meter.CreateObservableGauge("cache.size",
    () => _cache.Count);

Registrando o medidor

Assim como no rastreamento, o OpenTelemetry coleta somente os medidores que o senhor registra. Use AddMeter com o nome do seu medidor.

builder.Services.AddOpenTelemetry()
    .WithMetrics(metrics => metrics
        .AddMeter("Checkout.Orders"));

Métricas integradas

Os pacotes de instrumentação expõem métricas prontas para ASP.NET Core (duração das solicitações, solicitações ativas) e para o tempo de execução (coleta de lixo, conjunto de linhas de execução), fornecendo informações operacionais imediatas.

metrics
    .AddAspNetCoreInstrumentation()
    .AddRuntimeInstrumentation();

Escolhendo o instrumento correto

Escolha pelo comportamento: contagem monotônica (contador), valor que sobe e desce (UpDownCounter), distribuição (histograma) ou valor atual amostrado (medidor observável). A escolha correta torna os painéis e alertas simples de configurar.

Mantendo a cardinalidade sob controle

Cada combinação exclusiva de marcadores cria uma série temporal separada. Marcadores de alta cardinalidade (como o identificador do usuário) podem aumentar excessivamente o armazenamento e o custo. Use dimensões limitadas e de baixa cardinalidade, como estado ou região.

Verificação rápida

Teste a coleta de métricas.

Recapitulação

As métricas agregam medições numéricas com baixo custo. A API Meter cria instrumentos: contador (monotônico), UpDownCounter (sobe e desce), histograma (distribuições para percentis) e medidores observáveis (amostrados). Os marcadores adicionam dimensões, mas é preciso observar a cardinalidade. Registre os medidores com AddMeter e adicione instrumentação integrada do ASP.NET Core e do tempo de execução para obter informações imediatas.

Perguntas Frequentes

A aula “Coletando métricas” é grátis?

Sim — o texto completo de “Coletando métricas” é 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 “Coletando métricas”?

Registre contadores, medidores e histogramas. 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 3 de 4.

Quanto tempo leva a aula “Coletando métricas”?

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

  1. Os três pilares da observabilidade
  2. Rastreamento distribuído
  3. Coletando métricas
  4. Exportando para back-ends
← Voltar para C# Academy