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); // finishedInstrumentos 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
- Os três pilares da observabilidade
- Rastreamento distribuído
- Coletando métricas
- Exportando para back-ends