C# Academy · Lezione

Raccolta delle metriche

Registri contatori, gauge e istogrammi.

Lezione 3 di 413 passaggi

Raccolta delle metriche è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 4 lezioni in totale.

Perché usare le metriche

Le metriche sono misurazioni numeriche aggregate nel tempo. Alimentano dashboard e avvisi: frequenza delle richieste, numero di errori, latenza, profondità della coda. A differenza dei log, rimangono economiche anche ad alto volume perché aggregano i dati.

L'API Meter

.NET emette metriche tramite System.Diagnostics.Metrics. Si crea un Meter e lo si usa per creare strumenti come counter e histogram.

using System.Diagnostics.Metrics;

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

Counter

Un Counter è un valore che può solo aumentare, ideale per contare eventi come ordini effettuati o errori. Si chiama Add per incrementarlo.

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

OrdersPlaced.Add(1);

Dimensioni del Counter

Associ tag per suddividere un counter in base a una dimensione, come lo stato o la regione, così potrà aggregare e filtrare i dati nel backend.

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

Histogram

Un Histogram registra la distribuzione dei valori, ed è ideale per la latenza o le dimensioni dei payload. I backend calcolano i percentili (p50, p95, p99) a partire dai campioni registrati.

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

OrderDuration.Record(elapsedMs);

UpDownCounter

Un UpDownCounter può aumentare o diminuire, quindi è adatto a valori come le connessioni attive o gli elementi attualmente presenti in una coda.

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

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

Strumenti Observable

Gli strumenti Observable vengono letti su richiesta tramite una callback e sono adatti a gauge come la memoria attualmente utilizzata o la dimensione della cache, che vengono campionati invece di essere incrementati.

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

Registrare il Meter

Come per il tracing, OTel raccoglie solo i meter registrati. Usi AddMeter con il nome del meter.

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

Metriche integrate

I pacchetti di strumentazione espongono metriche già pronte per ASP.NET Core (durata delle richieste, richieste attive) e per il runtime (GC, thread pool), offrendo informazioni operative immediate.

metrics
    .AddAspNetCoreInstrumentation()
    .AddRuntimeInstrumentation();

Scegliere lo strumento giusto

Scelga in base al comportamento: conteggio monotono (Counter), valore che aumenta e diminuisce (UpDownCounter), distribuzione (Histogram), valore corrente campionato (Observable Gauge). La scelta giusta rende semplici dashboard e avvisi.

Tenere sotto controllo la cardinalità

Ogni combinazione univoca di tag crea una serie temporale separata. I tag ad alta cardinalità (come l'ID utente) possono far esplodere lo spazio di archiviazione e i costi. Usi dimensioni limitate e a bassa cardinalità, come lo stato o la regione.

Verifica rapida

Verifichi la raccolta delle metriche.

Riepilogo

Le metriche aggregano misurazioni numeriche in modo economico. L'API Meter crea strumenti: Counter (monotono), UpDownCounter (aumenta e diminuisce), Histogram (distribuzioni per i percentili) e gauge Observable (campionati). I tag aggiungono dimensioni, ma è necessario controllare la cardinalità. Registri i meter con AddMeter e aggiunga la strumentazione integrata per ASP.NET Core e per il runtime per ottenere informazioni immediate.

Gratis per iniziare

Impara C# con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
93
Lezioni
346

Domande Frequenti

La lezione «Raccolta delle metriche» è gratuita?

Sì — il testo completo di «Raccolta delle metriche» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 4 lezioni in totale.

Cosa imparerò in «Raccolta delle metriche»?

Registri contatori, gauge e istogrammi. Eserciti C# Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C# Academy?

Non è richiesta alcuna esperienza precedente. C# Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Raccolta delle metriche»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C# Academy?

Sì. Ogni lezione C# Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. I tre pilastri dell'osservabilità
  2. Tracing distribuito
  3. Raccolta delle metriche
  4. Esportazione verso i backend
← Torna a C# Academy