C# Academy · Lektion

Indsamling af metrics

Registrér tællere, målere og histogrammer.

Lektion 3 af 413 trin

Indsamling af metrics er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C# Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C# Academy-kurset indeholder 4 lektioner i alt.

Hvorfor metrikker

Metrikker er numeriske målinger, der aggregeres over tid. De driver dashboards og alarmer: anmodningsrate, antal fejl, latenstid og kødybde. I modsætning til logposter forbliver de billige ved høj belastning, fordi de aggregeres.

Meter-API'et

.NET udsender metrikker via System.Diagnostics.Metrics. Du opretter en Meter og bruger den derefter til at oprette instrumenter som tællere og histogrammer.

using System.Diagnostics.Metrics;

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

Tællere

En Counter er en værdi, der kun stiger, og den er derfor perfekt til at tælle hændelser som gennemførte ordrer eller fejl. Du kalder Add for at øge den.

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

OrdersPlaced.Add(1);

Tællerdimensioner

Føj tags til for at opdele en tæller efter dimensioner, f.eks. status eller region, så du kan aggregere og filtrere i dit backend-system.

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

Histogrammer

Et Histogram registrerer en fordeling af værdier og er ideelt til latenstid eller nyttelaststørrelser. Backend-systemer beregner percentiler (p50, p95, p99) ud fra de registrerede stikprøver.

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

OrderDuration.Record(elapsedMs);

Op-og-ned-tællere

En UpDownCounter kan både stige og falde og egner sig til værdier som aktive forbindelser eller elementer, der aktuelt ligger i en kø.

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

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

Observerbare instrumenter

Observable-instrumenter aflæses efter behov via et tilbagekald og er velegnede til målere som aktuel hukommelse eller cachestørrelse, som du aflæser i stedet for at øge.

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

Registrer Meter

Ligesom ved sporing indsamler OTel kun de målere, du registrerer. Brug AddMeter sammen med dit målernavn.

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

Indbyggede metrikker

Instrumenteringspakker stiller færdige metrikker til rådighed for ASP.NET Core (anmodningsvarighed, aktive anmodninger) og kørselsmiljøet (GC, trådpulje), så du får øjeblikkelig driftsindsigt.

metrics
    .AddAspNetCoreInstrumentation()
    .AddRuntimeInstrumentation();

Vælg det rigtige instrument

Vælg ud fra adfærden: monoton optælling (Counter), en værdi, der stiger og falder (UpDownCounter), en fordeling (Histogram) eller en stikprøvet aktuel værdi (Observable Gauge). Det rigtige valg gør dashboards og alarmer enkle at opbygge.

Hold kardinaliteten under kontrol

Hver unik kombination af tags opretter en separat tidsserie. Tags med høj kardinalitet (f.eks. bruger-id) kan få lagerforbrug og omkostninger til at eksplodere. Brug afgrænsede dimensioner med lav kardinalitet, f.eks. status eller region.

Hurtigt tjek

Afprøv indsamling af metrikker.

Opsummering

Metrikker aggregerer numeriske målinger billigt. Meter-API'et opretter instrumenter: Counter (monoton), UpDownCounter (stiger og falder), Histogram (fordelinger til percentiler) og Observable-målere (stikprøvebaserede). Tags tilføjer dimensioner, men hold øje med kardinaliteten. Registrer målere med AddMeter, og tilføj indbygget ASP.NET Core- og kørselsinstrumentering for at få øjeblikkelig indsigt.

Gratis at komme i gang

Lær C# med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
93
Lektioner
346

Ofte stillede spørgsmål

Er lektionen “Indsamling af metrics” gratis?

Ja — hele teksten til “Indsamling af metrics” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C# Academy-kurset, skal du opgradere til CoddyKit PRO. C# Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Indsamling af metrics”?

Registrér tællere, målere og histogrammer. Du øver dig i C# Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på C# Academy?

Der kræves ingen tidligere erfaring. C# Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Indsamling af metrics”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne C# Academy-lektion?

Ja. Alle C# Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Observerbarhedens tre søjler
  2. Distribueret tracing
  3. Indsamling af metrics
  4. Eksport til backends
← Tilbage til C# Academy