Zbieranie metryk
Rejestruj liczniki, mierniki i histogramy.
Zbieranie metryk to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.
Po co metryki
Metryki to pomiary liczbowe agregowane w czasie. Zasilają pulpity i alerty: wskaźnik żądań, liczbę błędów, opóźnienie i głębokość kolejki. W przeciwieństwie do logów pozostają tanie przy dużej liczbie danych, ponieważ są agregowane.
Interfejs Meter API
.NET emituje metryki za pośrednictwem System.Diagnostics.Metrics. Tworzy się obiekt Meter, a następnie używa go do tworzenia instrumentów, takich jak liczniki i histogramy.
using System.Diagnostics.Metrics;
private static readonly Meter Meter = new("Checkout.Orders");Liczniki
Counter to wartość, która może tylko rosnąć, dlatego doskonale nadaje się do zliczania zdarzeń, takich jak złożone zamówienia lub błędy. Do jej zwiększania służy wywołanie Add.
private static readonly Counter<long> OrdersPlaced =
Meter.CreateCounter<long>("orders.placed");
OrdersPlaced.Add(1);Wymiary licznika
Dołączanie tagów pozwala podzielić licznik według wymiaru, na przykład statusu lub regionu, a następnie agregować i filtrować dane w backendzie.
OrdersPlaced.Add(1,
new KeyValuePair<string, object>("status", "completed"),
new KeyValuePair<string, object>("region", "eu"));Histogramy
Histogram rejestruje rozkład wartości, dlatego doskonale nadaje się do mierzenia opóźnień lub rozmiarów danych. Backend oblicza percentyle (p50, p95, p99) na podstawie zarejestrowanych próbek.
private static readonly Histogram<double> OrderDuration =
Meter.CreateHistogram<double>("order.duration", "ms");
OrderDuration.Record(elapsedMs);Liczniki UpDownCounter
UpDownCounter może zwiększać się lub zmniejszać, dlatego nadaje się do wartości takich jak liczba aktywnych połączeń lub elementów znajdujących się obecnie w kolejce.
private static readonly UpDownCounter<long> ActiveOrders =
Meter.CreateUpDownCounter<long>("orders.active");
ActiveOrders.Add(1); // started
ActiveOrders.Add(-1); // finishedInstrumenty obserwowalne
Wartości instrumentów obserwowalnych są odczytywane na żądanie za pomocą funkcji zwrotnej. Dobrze nadają się one do pomiaru wartości, takich jak bieżące zużycie pamięci lub rozmiar pamięci podręcznej, które są próbkowane zamiast zwiększane.
Meter.CreateObservableGauge("cache.size",
() => _cache.Count);Rejestrowanie Meter
Podobnie jak w przypadku śledzenia, OTel zbiera tylko zarejestrowane obiekty Meter. Należy użyć AddMeter z nazwą obiektu Meter.
builder.Services.AddOpenTelemetry()
.WithMetrics(metrics => metrics
.AddMeter("Checkout.Orders"));Wbudowane metryki
Pakiety instrumentacji udostępniają gotowe metryki dla ASP.NET Core (czas trwania żądań, liczba aktywnych żądań) i środowiska uruchomieniowego (GC, pula wątków), zapewniając natychmiastowy wgląd w działanie systemu.
metrics
.AddAspNetCoreInstrumentation()
.AddRuntimeInstrumentation();Wybór właściwego instrumentu
Wyboru należy dokonać na podstawie zachowania: monotoniczne zliczanie (Counter), wartość rosnąca i malejąca (UpDownCounter), rozkład (Histogram), bieżąca wartość próbkowana (Observable Gauge). Właściwy wybór ułatwia tworzenie przejrzystych pulpitów i alertów.
Kontrolowanie kardynalności
Każda unikalna kombinacja tagów tworzy osobny szereg czasowy. Tagi o dużej kardynalności (takie jak identyfikator użytkownika) mogą gwałtownie zwiększyć ilość przechowywanych danych i koszty. Należy używać ograniczonych wymiarów o małej kardynalności, takich jak status lub region.
Szybkie sprawdzenie
Proszę sprawdzić znajomość zbierania metryk.
Podsumowanie
Metryki tanio agregują pomiary liczbowe. Interfejs API Meter tworzy instrumenty: Counter (monotoniczny), UpDownCounter (rosnący i malejący), Histogram (rozkłady używane do obliczania percentyli) oraz obserwowalne wskaźniki Observable (próbkowane). Tagi dodają wymiary, ale należy kontrolować kardynalność. Obiekty Meter należy rejestrować za pomocą AddMeter, a także dodać wbudowaną instrumentację ASP.NET Core i środowiska uruchomieniowego, aby natychmiast uzyskać wgląd w działanie systemu.
Często zadawane pytania
Czy lekcja „Zbieranie metryk” jest bezpłatna?
Tak — pełny tekst „Zbieranie metryk” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Zbieranie metryk”?
Rejestruj liczniki, mierniki i histogramy. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C# Academy?
Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Zbieranie metryk”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?
Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.