Grafana i Prometheus w firmie – 10 praktycznych zastosowań monitorowania danych w czasie rzeczywistym

Jak wykorzystać Grafanę i Prometheusa do monitorowania firmy? Poznaj 10 zastosowań: od niezawodności aplikacji i kosztów infrastruktury po konwersję w e-commerce. Sprawdź, jak projektować metryki, dashboardy i alerty oraz skalować monitoring.
24 listopada 2026
blog

Wprowadzenie: dlaczego Grafana + Prometheus w firmie i jak podejść do metryk

System może działać, a mimo to nie spełniać swojej roli: klienci czekają na odpowiedź, część operacji kończy się błędem, a zespół dowiaduje się o problemie dopiero ze zgłoszeń. Sam komunikat „serwer jest dostępny” nie wystarcza więc do oceny kondycji usług. Potrzebne są dane pokazujące, co dzieje się z systemem, jak zmienia się jego zachowanie i jaki ma to wpływ na użytkowników. Właśnie w tym pomaga połączenie Prometheusa i Grafany.

Prometheus zbiera metryki, Grafana nadaje im czytelną formę

Prometheus służy do zbierania i przechowywania metryk w postaci szeregów czasowych, czyli wartości powiązanych z momentem pomiaru. Najczęściej cyklicznie pobiera je z aplikacji oraz eksporterów, które udostępniają dane o innych systemach. Pozwala analizować te pomiary za pomocą języka PromQL i definiować reguły wykrywające określone warunki. Odpowiada zatem przede wszystkim za pomiar oraz obliczenia na zebranych danych.

Grafana jest warstwą wizualizacji i analizy. Łączy się z Prometheusem oraz wieloma innymi źródłami danych, a wyniki zapytań prezentuje na dashboardach. Udostępnia również mechanizmy alertowania. Nie zastępuje jednak Prometheusa jako magazynu jego metryk. Razem narzędzia te pozwalają przejść od rozproszonych pomiarów do wspólnego obrazu sytuacji, z którego mogą korzystać zespoły utrzymania, programiści i osoby odpowiedzialne za usługi.

Taki podział ułatwia obserwowanie różnych warstw środowiska: infrastruktury, aplikacji i wybranych procesów biznesowych. Warunkiem jest udostępnienie odpowiednich danych — samo uruchomienie Grafany i Prometheusa nie sprawi, że narzędzia rozpoznają znaczenie każdej operacji w firmie.

Co oznacza monitorowanie danych w czasie rzeczywistym?

W tym kontekście „czas rzeczywisty” oznacza zwykle obserwację z niewielkim opóźnieniem, a nie natychmiastowy zapis każdego zdarzenia. Świeżość obrazu zależy między innymi od częstotliwości pobierania metryk, wykonywania reguł i odświeżania dashboardu. Dane odczytywane okresowo mogą nie pokazać krótkiego skoku mierzonej wartości pomiędzy pomiarami. Częstsze odczyty zwiększają szczegółowość obserwacji, ale wymagają też większych zasobów. Właściwy kompromis wynika z tego, jak szybko firma musi zauważyć dany problem i na niego zareagować.

Najpierw pytanie, potem metryka

Punktem wyjścia nie powinno być „co możemy zmierzyć?”, lecz „na jakie pytanie potrzebujemy odpowiedzi?”. Czy usługa działa zgodnie z oczekiwaniami użytkowników? Czy jej zachowanie odbiega od typowego? Czy zaobserwowana zmiana wymaga interwencji? Dopiero do takich pytań warto dobierać pomiary. Metryka ma wartość wtedy, gdy pomaga ocenić sytuację lub podjąć decyzję, nie dlatego, że można ją umieścić na wykresie.

Znaczenie ma także kontekst. Wzrost liczby błędów może towarzyszyć wzrostowi ruchu, dlatego sama liczba nie zawsze świadczy o pogorszeniu jakości. Podobnie średni czas odpowiedzi może wyglądać dobrze, choć część użytkowników doświadcza wyraźnych opóźnień. Pojedynczy wskaźnik rzadko daje pełny obraz; trzeba rozumieć, co obejmuje pomiar i czego na jego podstawie nie można stwierdzić.

Warto przy tym odróżnić metryki od pozostałych danych diagnostycznych. Metryki dobrze pokazują skalę zjawiska, trendy i odchylenia. Logi dostarczają szczegółów konkretnych zdarzeń, a ślady rozproszone pomagają prześledzić przebieg żądania między usługami. Grafana i Prometheus tworzą więc ważną część obserwowalności, ale nie zastępują wszystkich jej elementów. Ich największą zaletą jest szybkie wskazanie, że coś wymaga uwagi, oraz zawężenie obszaru dalszej analizy.

Zastosowania 1–3: niezawodność usług, wydajność aplikacji i kondycja infrastruktury

Awaria widoczna dla klienta, spowolnienie aplikacji i przeciążenie serwera to trzy różne sygnały — choć mogą dotyczyć tego samego zdarzenia. Prometheus dostarcza metryk pozwalających je powiązać, a Grafana ułatwia analizę na wspólnej osi czasu. W Cognity często słyszymy pytania, jak praktycznie podejść do diagnozowania takich problemów — odpowiadamy na nie także na blogu. Warto zacząć od rozdzielenia trzech perspektyw: jakości usługi, zachowania aplikacji oraz stanu zasobów, na których działa.

1. Monitoring SLA/SLO i niezawodności: czy usługa spełnia obietnicę?

Działający proces nie oznacza jeszcze działającej usługi. Aplikacja może odpowiadać na test techniczny, a jednocześnie odrzucać część poprawnych żądań użytkowników. Dlatego monitoring niezawodności powinien opierać się na miernikach opisujących rzeczywiste doświadczenie odbiorcy, takich jak udział udanych operacji lub odsetek odpowiedzi udzielonych w akceptowalnym czasie.

Te mierniki to SLI, czyli wskaźniki poziomu usługi. SLO określa ich docelową wartość w wybranym okresie — przykładowo co najmniej 99,9% poprawnie obsłużonych żądań w ciągu 30 dni. SLA jest natomiast umową dotyczącą poziomu świadczonej usługi, zwykle określającą także konsekwencje niedotrzymania zobowiązań. Wewnętrzne SLO może być bardziej wymagające niż SLA, aby zespół miał margines na reakcję.

Prometheus pozwala obliczać wskaźniki na podstawie metryk żądań i czasu odpowiedzi. Grafana może pokazywać ich aktualne wartości, historię oraz zużycie budżetu błędów. Przy SLO wynoszącym 99,9% udanych żądań budżet błędów obejmuje pozostałe 0,1% żądań w ocenianym okresie. Nie należy automatycznie przeliczać go na minuty niedostępności: sposób obliczania zależy od definicji wskaźnika.

Praktyczne znaczenie ma również tempo zużywania tego budżetu, czyli burn rate. Krótkotrwały wzrost liczby błędów może szybko zagrozić realizacji celu, nawet jeśli wynik dla całego okresu nadal wygląda dobrze. Taka obserwacja pomaga zdecydować, czy priorytetem powinno być usunięcie problemu niezawodności, czy można kontynuować planowane zmiany.

2. Wydajność aplikacji: RED wskazuje objawy, USE pomaga znaleźć ograniczenia

Gdy użytkownicy zgłaszają spowolnienie, sama średnia czasu odpowiedzi rzadko wystarcza. Może ukrywać sytuację, w której większość operacji przebiega szybko, lecz część trwa wielokrotnie dłużej. Dlatego przy analizie wydajności warto obserwować rozkład opóźnień, w tym percentyle p95 i p99, wyliczane na podstawie odpowiednio zebranych danych.

Metoda RED porządkuje monitoring usług obsługujących żądania wokół trzech wielkości:

  • Rate — liczby żądań w jednostce czasu, pokazującej natężenie ruchu.
  • Errors — liczby lub udziału nieudanych żądań.
  • Duration — czasu obsługi żądań, pozwalającego zauważyć pogorszenie responsywności.

Metoda USE dotyczy z kolei zasobów: ich wykorzystania, nasycenia i błędów. Wykorzystanie mówi, jak intensywnie zasób pracuje; nasycenie — czy pojawia się praca oczekująca na jego dostępność. To ważne rozróżnienie, ponieważ podobny poziom użycia CPU może towarzyszyć zarówno sprawnej obsłudze ruchu, jak i narastaniu opóźnień.

W praktyce oba podejścia się uzupełniają. Wzrost czasu odpowiedzi przy rosnącym ruchu jest sygnałem z perspektywy RED. Zestawienie go w Grafanie z metrykami CPU, pamięci czy operacji dyskowych pomaga sprawdzić, czy aplikacja osiągnęła ograniczenia zasobów. Metryki zawężają obszar poszukiwań, ale nie zawsze samodzielnie wskazują przyczynę problemu.

3. Infrastruktura: Kubernetes, maszyny wirtualne i kontenery

Monitoring infrastruktury odpowiada na pytanie, czy środowisko zapewnia aplikacjom warunki do stabilnego działania. Na maszynach wirtualnych istotne są między innymi obciążenie procesora, dostępna pamięć, wolne miejsce i opóźnienia operacji dyskowych. Prometheus może pobierać te dane z eksporterów, a Grafana zestawiać je według hostów, środowisk lub usług.

W Kubernetes potrzebna jest dodatkowo perspektywa klastra i uruchomionych obciążeń. Warto obserwować gotowość podów, restarty kontenerów, zakończenia z powodu braku pamięci oraz pody oczekujące na przydzielenie do węzła. Dane o faktycznym zużyciu zasobów należy odróżniać od informacji o zadeklarowanych żądaniach i limitach.

Niskie obciążenie całego węzła nie wyklucza problemu pojedynczego kontenera. Zbyt niski limit CPU może powodować ograniczanie czasu procesora, a przekroczenie limitu pamięci — zakończenie procesu. Połączenie tych sygnałów z metrykami aplikacji pozwala ocenić, czy spowolnienie wynika z warunków uruchomienia, zamiast od razu przypisywać je błędowi w kodzie.

💡 Pro tip: Nie uśredniaj percentyli p95 ani p99 z poszczególnych instancji — percentyl dla całej usługi obliczaj po agregacji histogramów o zgodnych granicach przedziałów. Zestaw go na wspólnej osi czasu z udziałem błędów i metrykami ograniczania CPU kontenerów, aby sprawdzić, czy pogorszeniu wydajności towarzyszą ograniczenia zasobów.

Zastosowania 4–6: FinOps, bezpieczeństwo i skuteczność wdrożeń

Metryki operacyjne pomagają odpowiedzieć nie tylko na pytanie, czy system działa. Zestawione z danymi kosztowymi, sygnałami bezpieczeństwa i historią wdrożeń pokazują również, ile kosztuje jego utrzymanie, gdzie pojawiają się podejrzane zachowania i jak zmiany w kodzie wpływają na stabilność usług. W tych zastosowaniach Prometheus dostarcza przede wszystkim pomiary, a Grafana pozwala analizować je w kontekście danych z innych źródeł.

4. Koszty i wykorzystanie zasobów — wsparcie FinOps

Niskie zużycie CPU nie oznacza automatycznie niskiego rachunku za chmurę. Firma może płacić za zarezerwowane maszyny, niewykorzystaną pojemność klastra lub zasoby działające poza godzinami pracy. Dlatego w FinOps warto zestawiać rzeczywiste wykorzystanie zasobów, przydzieloną pojemność i koszt jej utrzymania, zamiast obserwować każdą z tych wartości osobno.

Prometheus pozwala śledzić zużycie CPU, pamięci czy przestrzeni dyskowej. W środowisku Kubernetes dane te można porównać z deklarowanymi żądaniami zasobów, aby wskazać obszary wymagające analizy pod kątem nadmiernej rezerwacji. Informacje kosztowe mogą pochodzić na przykład z OpenCost, natomiast dane rozliczeniowe — z systemów dostawcy chmury. Grafana umożliwia ich prezentację obok metryk technicznych.

Praktycznym zastosowaniem jest wyszukiwanie środowisk testowych, które przez większość doby pozostają bezczynne, lub usług, których przydział zasobów znacząco przewyższa zapotrzebowanie. Taka obserwacja daje podstawę do zmiany harmonogramu pracy albo rozmiaru infrastruktury, ale nie zastępuje oceny szczytowego obciążenia i wymaganego zapasu wydajności.

Warto również obserwować koszt jednostkowy, na przykład koszt obsługi tysiąca żądań lub przetworzenia zadania. Rosnący rachunek przy jeszcze szybszym wzroście liczby operacji może oznaczać poprawę efektywności, a nie marnotrawstwo. Trzeba przy tym odróżniać bieżące szacunki od ostatecznego rozliczenia: rabaty, transfer danych i opłaty za usługi zarządzane mogą istotnie zmienić wynik.

5. Bezpieczeństwo i wykrywanie anomalii w metrykach

Metryki mogą szybko ujawnić zmianę zachowania systemu: wzrost liczby nieudanych logowań, częstsze odmowy dostępu, gwałtowne zwiększenie ruchu wychodzącego albo nietypową liczbę wywołań wrażliwego endpointu. Warunkiem jest udostępnienie odpowiednich liczników przez aplikację, bramę API lub inne monitorowane komponenty.

Największą wartość daje porównanie sygnału z jego normalnym przebiegiem. Podwyższona liczba błędów uwierzytelniania podczas zwykłego szczytu ruchu oznacza coś innego niż podobny wzrost w godzinach nocnych, bez zwiększenia liczby aktywnych użytkowników. Pomocne jest więc śledzenie zarówno liczby zdarzeń, jak i ich udziału we wszystkich próbach oraz uwzględnianie sezonowości.

Anomalia jest przesłanką do analizy, nie dowodem ataku. Jej przyczyną może być również wadliwa integracja, zmiana konfiguracji lub błąd aplikacji. Prometheus umożliwia obliczanie odchyleń i porównywanie okresów, ale sam nie zapewnia kompletnego systemu wykrywania zagrożeń. Grafana i Prometheus uzupełniają narzędzia bezpieczeństwa; nie zastępują SIEM, logów audytowych ani analizy konkretnych zdarzeń.

6. Procesy CI/CD i metryki wdrożeń — perspektywa DORA

Monitoring procesu dostarczania oprogramowania pozwala oddzielić sprawność pipeline’u od skuteczności całego procesu. Czas oczekiwania na runner, długość testów i odsetek nieudanych zadań wskazują wąskie gardła CI/CD. Nie odpowiadają jednak samodzielnie na pytanie, jak szybko i bezpiecznie zmiany trafiają do użytkowników.

Do tej oceny można wykorzystać klasyczny zestaw czterech metryk DORA:

  • Częstotliwość wdrożeń — jak często zmiany trafiają na produkcję.
  • Czas dostarczenia zmiany — ile czasu upływa od zatwierdzenia zmiany w repozytorium do jej uruchomienia produkcyjnego.
  • Odsetek wdrożeń powodujących problemy — jaka część zmian wymaga interwencji, na przykład wycofania wdrożenia lub pilnej poprawki.
  • Czas przywrócenia działania po nieudanym wdrożeniu — jak długo trwa usunięcie jego skutków.

Dane wymagają połączenia informacji z repozytorium, systemu CI/CD i ewidencji incydentów. Sam licznik udanych pipeline’ów nie wystarczy: zakończony proces może nie oznaczać wdrożenia produkcyjnego, a problem może ujawnić się dopiero później. Grafana pozwala zestawić momenty wdrożeń ze zmianami zachowania usługi, ułatwiając analizę możliwych zależności.

Metryki DORA najlepiej wykorzystywać do obserwowania trendu w obrębie danej usługi lub zespołu, przy spójnych definicjach zdarzeń. Ich celem jest usprawnianie dostarczania oprogramowania, a nie tworzenie rankingu pracowników czy premiowanie częstych wdrożeń kosztem jakości.

Zastosowania 7–8: e-commerce, metryki biznesowe i monitorowanie baz danych

Sprawna infrastruktura nie gwarantuje, że klient może złożyć zamówienie, a szybka odpowiedź aplikacji nie wyklucza problemów z zapisem danych. Dlatego monitoring warto rozszerzyć o dwa obszary: przebieg transakcji biznesowych oraz kondycję baz danych. Pierwszy pokazuje, czy użytkownicy osiągają zamierzony cel. Drugi pomaga ustalić, czy warstwa danych umożliwia jego realizację. W Cognity omawiamy powiązanie metryk biznesowych z technicznymi zarówno od strony konfiguracji monitoringu, jak i interpretacji wyników — zgodnie z realiami pracy uczestników szkoleń.

7. E-commerce: konwersja i checkout pod kontrolą

W sklepie internetowym Grafana może zestawić ruch zakupowy z wynikami kolejnych etapów checkoutu: rozpoczęciem procesu, wyborem dostawy, próbą płatności i potwierdzeniem zamówienia. Prometheus zbiera natomiast metryki udostępniane przez aplikację lub odpowiednią integrację. Nie odtwarza samodzielnie ścieżek użytkowników — to system sprzedażowy musi dostarczyć informacje o istotnych zdarzeniach.

Najbardziej użyteczne są wskaźniki, które pozwalają odróżnić mniejsze zainteresowanie ofertą od problemu uniemożliwiającego zakup:

  • Liczba rozpoczętych i zakończonych checkoutów — pokazuje skalę aktywności i zmiany proporcji między wejściem w proces a jego ukończeniem.
  • Udział udanych prób płatności — pomaga zauważyć pogorszenie skuteczności płatności; warto przy tym rozróżniać odrzucenie transakcji od błędu technicznego.
  • Czas realizacji kluczowych kroków — pozwala wychwycić wydłużające się oczekiwanie na przeliczenie koszyka, dostępność dostawy czy potwierdzenie płatności.
  • Liczba zamówień i ich zagregowana wartość — daje operacyjny obraz sprzedaży, o ile jednoznacznie określono status zamówienia i sposób uwzględniania walut.

Przykładowo: liczba rozpoczętych checkoutów pozostaje stabilna, ale spada liczba potwierdzonych zamówień, a jednocześnie przybywa technicznych błędów płatności. Taki zestaw sygnałów kieruje diagnostykę na etap płatniczy, zamiast sugerować ogólny spadek popytu. Sam spadek sprzedaży nie wystarczyłby do tego rozróżnienia.

Operacyjnego wskaźnika ukończenia checkoutu nie należy utożsamiać z dokładną konwersją użytkowników. Iloraz liczby zakończeń i rozpoczęć w tym samym przedziale czasu może obejmować różne grupy klientów: część kończy zakupy rozpoczęte wcześniej, inni ponawiają próbę. Do analizy lejków, sesji i kohort potrzebne są dane zdarzeniowe oraz narzędzia analityczne. Grafana i Prometheus uzupełniają je szybką informacją o zmianach w procesie zakupowym, lecz nie zastępują analityki produktowej ani rozliczeń finansowych.

8. Bazy SQL i NoSQL: widoczność od zapytania do replikacji

Monitoring bazy danych odpowiada na inne pytanie: czy system potrafi odczytywać i zapisywać dane z wymaganą szybkością oraz niezawodnością? Prometheus może pobierać metryki przez exporter właściwy dla danego silnika albo jego natywny interfejs metryk. Grafana ułatwia zestawienie tych pomiarów z objawami widocznymi w aplikacji.

W bazach SQL szczególnie przydatne są informacje o czasie wykonywania operacji, liczbie aktywnych połączeń, oczekiwaniu na blokady, zakleszczeniach i opóźnieniu replikacji. Pozwalają rozróżnić sytuację, w której baza obsługuje więcej pracy, od takiej, w której operacje czekają na zwolnienie zasobów lub zakończenie innych transakcji.

W systemach NoSQL dobór wskaźników silniej zależy od architektury konkretnego silnika. W rozproszonych bazach dokumentowych lub klucz–wartość znaczenie mogą mieć nierównomierne obciążenie shardów, opóźnienia replikacji, odrzucone operacje czy zaległości kompaktowania danych. Nie istnieje jednak jeden uniwersalny zestaw „metryk NoSQL”; część tych zjawisk występuje również w rozproszonych bazach SQL.

Praktyczny przykład to wydłużenie zapisu zamówień przy jednoczesnym wzroście czasu oczekiwania na blokady. Taka korelacja wskazuje obszar do sprawdzenia, ale nie dowodzi jeszcze przyczyny. Metryki pomagają ustalić, kiedy i gdzie pojawia się problem; analizę konkretnego zapytania uzupełniają plany wykonania, statystyki silnika oraz rejestry wolnych zapytań. Dzięki temu monitoring bazy staje się narzędziem diagnostycznym, a nie tylko wykresem liczby połączeń.

Zastosowania 9–10: monitoring sieci, usług zewnętrznych i przetwarzania asynchronicznego

Nie każde spowolnienie wynika z kodu aplikacji lub braku zasobów. Użytkownik może czekać na odpowiedź zewnętrznego API, a potwierdzenie zamówienia — utknąć w kolejce mimo poprawnego działania serwera WWW. Grafana i Prometheus pomagają obserwować te zależności, ale wymagają dwóch różnych perspektyw: dla komunikacji sieciowej liczy się skuteczność i czas połączenia, a dla przetwarzania asynchronicznego — postęp pracy oraz czas oczekiwania na jej rezultat.

9. Sieć i usługi zewnętrzne: gdzie powstaje opóźnienie?

Sprawna aplikacja nie gwarantuje, że użytkownik może z niej skorzystać. Problemem bywa rozwiązywanie nazw DNS, zestawienie połączenia TCP, negocjacja TLS albo opóźniona odpowiedź dostawcy płatności, systemu wysyłkowego czy innego API. Sam całkowity czas żądania pokazuje skutek, lecz nie wyjaśnia przyczyny.

Praktycznym uzupełnieniem metryk aplikacyjnych jest Blackbox Exporter. Pozwala wykonywać sondy HTTP/HTTPS, DNS, TCP i ICMP, których wyniki pobiera Prometheus. W Grafanie można zestawić powodzenie prób z czasem poszczególnych etapów połączenia — w zakresie obsługiwanym przez dany typ sondy. Dzięki temu łatwiej rozróżnić niedostępność hosta, problem z DNS i wolną odpowiedź usługi.

Warto połączyć trzy źródła informacji:

  • Sondy syntetyczne — sprawdzają dostępność wybranego adresu także wtedy, gdy aplikacja nie obsługuje rzeczywistego ruchu.
  • Metryki wywołań z aplikacji — pokazują latencję, timeouty i błędy faktycznych żądań, w tym odpowiedzi HTTP 429 wskazujące na ograniczenie liczby wywołań.
  • Metryki urządzeń i interfejsów sieciowych — pomagają powiązać problemy komunikacyjne z wykorzystaniem łącza, błędami interfejsów lub odrzucaniem pakietów; można je pozyskiwać m.in. przez SNMP Exporter.

Miejsce wykonania pomiaru ma znaczenie. Sonda uruchomiona wewnątrz sieci firmowej nie potwierdza dostępności usługi z internetu. Z kolei test zewnętrzny nie odtworzy problemu z wewnętrznym resolverem DNS. Porównanie wyników z odpowiednich lokalizacji pozwala ustalić, czy awaria dotyczy konkretnej ścieżki komunikacji, czy samej usługi.

Przykładowo: gdy rośnie czas wywołań partnera, ale rozwiązywanie DNS i zestawianie połączeń pozostają stabilne, warto sprawdzić etap oczekiwania na odpowiedź. To wskazówka diagnostyczna, nie automatyczny dowód winy dostawcy. Równie ważne jest to, że poprawna odpowiedź prostego endpointu kontrolnego nie potwierdza działania autoryzacji ani właściwej operacji biznesowej.

10. Kolejki i zadania w tle: czy system nadąża z pracą?

W systemach asynchronicznych przyjęcie komunikatu nie oznacza wykonania zadania. API może szybko potwierdzić zlecenie, podczas gdy generowanie dokumentu, wysyłka powiadomienia lub synchronizacja danych czekają na wolnego workera. Monitoring powinien więc odpowiadać nie tylko na pytanie „czy broker działa?”, ale przede wszystkim: „czy zadania kończą się w oczekiwanym czasie?”.

ObszarCo obserwowaćCo można wykryć
KafkaConsumer lag dla grup konsumentów i partycji oraz tempo jego zmianKonsumentów, którzy nie nadążają za napływem danych, lub nierównomierne przetwarzanie partycji
RabbitMQWiadomości ready i unacknowledged, liczbę konsumentów oraz tempo publikowania, dostarczania i potwierdzaniaBrak odbiorców, narastanie zaległości albo opóźnione potwierdzanie odebranych wiadomości
Zadania w tleCzas oczekiwania, czas wykonania, sukcesy, błędy i ponowieniaOpóźnienia rozpoczęcia pracy, wolne zadania i powtarzające się nieudane próby

Tych wskaźników nie należy traktować zamiennie. W Kafce consumer lag zwykle oznacza różnicę offsetów, a nie czas opóźnienia. W RabbitMQ wiadomości ready czekają na dostarczenie, natomiast unacknowledged zostały już przekazane konsumentom, lecz nie otrzymały potwierdzenia. Wzrost każdej z tych wartości może zatem wymagać innej diagnozy.

Sama liczba zaległych wiadomości również nie wystarcza. Krótki skok po przetwarzaniu wsadowym może być normalny, jeśli kolejka szybko się opróżnia. Bardziej niepokojąca jest zaległość rosnąca stale lub coraz starsze zadania oczekujące na obsługę. Pomiar ich wieku często wymaga dodatkowej instrumentacji aplikacji — nie każdy broker udostępnia go bezpośrednio.

W Grafanie warto zestawić napływ zadań z tempem ich kończenia oraz czasem od zlecenia do rezultatu. Pozwala to odróżnić chwilowy wzrost obciążenia od zatrzymania przetwarzania. Osobnej uwagi wymagają ponowienia i kolejki błędów, np. dead-letter queue: intensywna aktywność konsumentów nie oznacza postępu, jeśli te same komunikaty są przetwarzane wielokrotnie bez sukcesu.

Wzorce implementacyjne: modelowanie metryk, etykiety, dashboardy, alerty, runbooki i ownership

O użyteczności monitoringu decyduje nie liczba wykresów, lecz to, czy zespół potrafi przejść od sygnału do działania. Prometheus dostarcza metryki, Grafana pomaga je interpretować, ale dopiero spójne nazewnictwo, przemyślane alerty i jasno przypisana odpowiedzialność tworzą sprawny system operacyjny. Każda istotna metryka powinna odpowiadać na konkretne pytanie, a każdy alert wymagający interwencji — wskazywać, kto i jak ma zareagować.

Modelowanie metryk: najpierw pytanie, potem typ danych

Zanim dodasz instrumentację, ustal, jaką decyzję ma wspierać pomiar. Liczba zakończonych operacji, aktualna liczba zadań i rozkład czasu odpowiedzi opisują różne zjawiska, dlatego wymagają innych typów metryk.

Typ metrykiCo opisujeWzorzec wykorzystania
Counter — licznikNarastającą liczbę zdarzeń; może wyzerować się po restarcie procesu.Analizuj tempo przyrostu przez rate() lub przyrost w oknie przez increase(), zamiast porównywać surowe wartości.
Gauge — wartość bieżącaStan, który może rosnąć i maleć.Wykorzystuj do pomiaru zajętej pamięci, aktywnych połączeń czy liczby oczekujących zadań.
Histogram — rozkład obserwacjiRozkład wartości, np. czasu trwania operacji.Używaj do obliczania percentyli i udziału obserwacji mieszczących się w określonym progu.

Nazwa i jednostka powinny jednoznacznie określać znaczenie pomiaru. Stosuj jednostki bazowe, takie jak sekundy i bajty, oraz czytelne przyrostki, np. _seconds, _bytes i _total dla liczników. Dla klasycznych histogramów dobieraj granice przedziałów do wartości istotnych operacyjnie. Zbyt szerokie przedziały wokół ważnego progu ograniczą dokładność interpretacji.

Etykiety: kontekst bez niekontrolowanej kardynalności

Etykiety pozwalają analizować tę samą metrykę według usługi, środowiska, metody HTTP czy klasy odpowiedzi. Każda unikalna kombinacja ich wartości tworzy jednak osobny szereg czasowy. Kardynalność rośnie wraz z liczbą kombinacji, nie tylko liczbą etykiet — dlatego pozornie niewielkie rozszerzenie modelu może znacząco zwiększyć obciążenie Prometheusa.

Stosuj wymiary o kontrolowanej liczbie wartości. Zamiast pełnego adresu żądania zapisuj wzorzec trasy, np. /orders/{id}. Identyfikatory użytkowników, zamówień i żądań, adresy e-mail oraz surowe komunikaty błędów pozostaw w logach lub śladach rozproszonych. Ustal też wspólne znaczenie etykiet: service nie powinno w jednym komponencie oznaczać aplikacji, a w drugim pojedynczej instancji.

Dashboardy: od oceny sytuacji do diagnozy

Dobry dashboard prowadzi przez pytania: czy usługa działa poprawnie, gdzie występuje problem i co mogło go spowodować. Na górze umieść najważniejsze wskaźniki stanu usługi, niżej przekroje pomagające zawęzić diagnozę. Szczegóły pojedynczych instancji lepiej udostępnić przez przejście do osobnego widoku niż pokazywać wszystkie szeregi na jednym wykresie.

Każdy panel powinien mieć czytelny tytuł, poprawną jednostkę i jasno opisany zakres danych. Zmienne dla środowiska i usługi ułatwiają korzystanie z jednego układu, a adnotacje wdrożeń pomagają powiązać zmianę zachowania systemu ze zmianą oprogramowania. Braku danych nie przedstawiaj automatycznie jako zera — może oznaczać problem ze zbieraniem metryk, a nie brak zdarzeń.

Alerty: sygnał wymagający reakcji, nie kopia wykresu

Nie każdy niepokojący trend powinien uruchamiać powiadomienie dyżurowe. Alert wymagający natychmiastowej reakcji musi wskazywać sytuację, w której zwłoka ma znaczenie i istnieje możliwe działanie. Symptomy wpływające na użytkownika zwykle lepiej nadają się do alarmowania niż pojedyncze odchylenia parametrów technicznych; te drugie często służą przede wszystkim diagnozie.

Dobierz okno oceny i czas utrzymywania się warunku, np. parametr for, aby ograniczyć alarmy wywołane krótkimi skokami. Osobno określ zachowanie przy braku danych i błędzie zapytania. Grupowanie powiadomień oraz reguły wyciszania alertów zależnych pomagają uniknąć lawiny komunikatów podczas jednej awarii. Nie utrzymuj niezależnie tej samej reguły w Prometheusie i Grafanie bez wyraźnej potrzeby — grozi to podwójnymi powiadomieniami i rozbieżnościami konfiguracji.

Runbooki i ownership: domknięcie ścieżki reakcji

Powiadomienie powinno zawierać opis problemu, jego zakres, poziom pilności oraz linki do właściwego dashboardu i runbooka. Runbook nie musi być obszerny: powinien wyjaśniać, jak potwierdzić problem, jakie sprawdzenia wykonać najpierw, które działania naprawcze są bezpieczne i kiedy eskalować. Warto uwzględnić także sposób weryfikacji, czy usługa rzeczywiście wróciła do poprawnego działania.

Właścicielem alertu powinien być zespół zdolny do podjęcia działania, nie automatycznie zespół utrzymujący platformę monitoringu. Odpowiedzialność obejmuje aktualność reguły, trasę powiadomień i instrukcję reakcji. Po incydencie warto sprawdzić nie tylko, czy alert zadziałał, lecz także czy dotarł do właściwych osób i pomógł skrócić diagnozę.

💡 Pro tip: Reguły alertów sprawdzaj w CI za pomocą testów jednostkowych promtool, uwzględniając awarię, krótki skok metryki i powrót do normy. Osobno przetestuj dostarczenie powiadomienia do właściwego zespołu — poprawny wynik testu reguły nie potwierdza sprawności całej ścieżki alarmowania.

Jak zacząć od MVP i skalować monitoring w organizacji

Pierwszy etap wdrożenia Grafany i Prometheusa powinien odpowiedzieć na konkretne pytanie: czy zespół potrafi szybciej wykryć problem i podjąć właściwe działanie? Liczba podłączonych systemów ani liczba dashboardów nie są dobrymi kryteriami sukcesu. Lepiej zacząć od jednej istotnej usługi, sprawdzić cały proces obsługi problemu, a dopiero potem rozszerzać zakres monitorowania.

MVP: mały zakres, pełny proces

Do pilotażu wybierz usługę, która ma znaczenie dla użytkowników, jest dobrze znana zespołowi i ma jednoznacznego właściciela. Ustal, jakie decyzje mają wspierać zbierane dane oraz po czym poznasz, że wdrożenie działa. Praktycznym kryterium odbioru może być kontrolowany test: pogorszenie działania usługi zostaje wykryte, informacja trafia do odpowiedniej osoby, a dostępne dane pozwalają zawęzić przyczynę.

Na tym etapie wystarczy możliwie prosta architektura: Prometheus zbiera i przechowuje metryki, a Grafana udostępnia je zespołowi w czytelnej formie. Trzeba jednak od razu ustalić, kto utrzymuje sam monitoring i jak zostanie zauważona jego awaria. Brak danych nie może być automatycznie interpretowany jako brak problemów. Jeżeli pilotaż ma służyć do obsługi rzeczywistych incydentów, jego ograniczenia dostępności i retencji powinny być jawne.

Po zakończeniu pilotażu oceń nie tylko użyteczność danych, lecz także koszt ich zbierania, obciążenie osób obsługujących powiadomienia oraz czas potrzebny na dołączenie następnej usługi. To lepsza podstawa dalszych inwestycji niż rozbudowa platformy na zapas.

Standardy i automatyzacja zamiast ręcznego wdrażania

Skalowanie zaczyna się od powtarzalnego sposobu dołączania zespołów. Warto przygotować wspierany zestaw konfiguracji, wymagania dla nowych usług i krótką ścieżkę uruchomienia monitoringu. Standard powinien określać minimum organizacyjne i techniczne, pozostawiając zespołom miejsce na potrzeby specyficzne dla ich aplikacji. Nie każda usługa wymaga identycznego zakresu obserwacji.

Konfigurację infrastruktury monitorującej i jej zasobów warto przechowywać w repozytorium oraz wdrażać automatycznie. Przegląd zmian, walidacja przed publikacją i możliwość wycofania błędnej wersji ograniczają rozbieżności między środowiskami. Automatyczne wykrywanie usług zmniejsza z kolei ryzyko, że nowa instancja aplikacji pozostanie poza monitoringiem. Celem jest sytuacja, w której dołączenie kolejnej usługi jest rutynową czynnością, a nie osobnym projektem.

Skalowanie techniczne i multi-tenant

Rozbudowę architektury powinny uzasadniać pomiary: liczba aktywnych szeregów czasowych, tempo napływu próbek, zużycie pamięci i dysku oraz czas wykonywania zapytań. Dłuższa retencja, większa dostępność i wspólny widok danych z wielu środowisk to różne wymagania — nie zawsze należy rozwiązywać je tym samym mechanizmem. Przy większej skali można rozważyć zewnętrzną warstwę przechowywania i odpytywania metryk, na przykład opartą na Grafana Mimir lub Thanos, zależnie od potrzeb architektury.

W modelu multi-tenant kilka zespołów lub jednostek organizacyjnych korzysta ze wspólnej platformy, ale powinno mieć jasno wyznaczone granice dostępu i wykorzystania zasobów. Etykieta zespołu w Prometheusie nie jest mechanizmem izolacji bezpieczeństwa. Podobnie podział dashboardów na foldery w Grafanie nie wystarcza do odseparowania danych. Izolację trzeba zaprojektować również na poziomie źródeł danych, autoryzacji zapytań i warstwy przechowywania. Wspólna platforma upraszcza utrzymanie, natomiast osobne instancje mogą ułatwić spełnienie bardziej rygorystycznych wymagań separacji.

Governance: odpowiedzialność, dostęp i koszty

Wraz ze wzrostem wdrożenia potrzebny jest czytelny podział obowiązków. Zespół platformowy może odpowiadać za dostępność monitoringu, aktualizacje i wspierane mechanizmy integracji, a zespoły produktowe — za przydatność danych z własnych usług i reagowanie na problemy. Powinno być również wiadomo, kto zatwierdza wyjątki od standardów i finansuje wzrost wykorzystania platformy.

Zasady zarządzania powinny obejmować nadawanie i odbieranie uprawnień, okresy przechowywania danych, limity zużycia oraz usuwanie nieużywanych zasobów. Regularny przegląd pozwala ograniczać zbieranie metryk, które generują koszt, lecz nie wspierają żadnej decyzji. Dobrze skalowany monitoring nie gromadzi wszystkiego bez ograniczeń — zapewnia zespołom wiarygodne dane przy przewidywalnym koszcie i jasno określonej odpowiedzialności.

Dobre praktyki operacyjne: etykiety i cardinality, sampling, standaryzacja, alerting, RBAC i kontrola dostępu

Monitoring powinien pozostać użyteczny także wtedy, gdy rośnie liczba usług, zespołów i zbieranych metryk. W praktyce oznacza to kontrolowanie kosztu danych, utrzymanie jakości alertów oraz świadome nadawanie uprawnień. Grafana odpowiada przede wszystkim za prezentację i udostępnianie danych, a Prometheus za zbieranie, przechowywanie i odpytywanie metryk — dlatego zasady operacyjne trzeba egzekwować na obu poziomach.

Etykiety: kontroluj liczbę serii, nie tylko liczbę metryk

Każda unikalna kombinacja nazwy metryki i wartości jej etykiet tworzy osobną serię czasową. To właśnie liczba takich serii, określana jako cardinality, silnie wpływa na zużycie pamięci, przestrzeni dyskowej i koszt wykonywania zapytań. Kilka pozornie niewinnych etykiet może więc obciążyć Prometheusa bardziej niż wiele prostych metryk.

Największe ryzyko stwarzają wartości o nieograniczonej liczbie wariantów: identyfikatory użytkowników, adresy e-mail, identyfikatory żądań czy pełne adresy URL z parametrami. Takie szczegóły zwykle należą do logów lub śladów, nie do etykiet metryk. Operacyjnie warto obserwować liczbę aktywnych serii oraz tempo ich powstawania i ustalić, kto reaguje na nagły wzrost po wdrożeniu. Usunięcie etykiety z widoku w Grafanie nie zmniejsza kosztu danych już zbieranych przez Prometheusa.

Sampling: rozróżniaj próbkowanie zdarzeń i częstotliwość zbierania metryk

W Prometheusie podstawowym sposobem regulowania częstotliwości odczytów jest interwał odpytywania, czyli scrape interval. Dłuższy interwał zmniejsza liczbę zapisanych próbek, lecz nie usuwa problemu nadmiernej liczby serii. Może też utrudnić zauważenie krótkiego skoku wartości chwilowej, na przykład liczby aktywnych połączeń.

To inny mechanizm niż sampling pojedynczych zdarzeń lub śladów. Licznik żądań może nadal uwzględniać wszystkie żądania pomiędzy kolejnymi odczytami, mimo rzadszego zbierania jego wartości. Częstotliwość należy zatem dobierać do dynamiki zjawiska i wymaganego czasu reakcji, a nie ustawiać wszędzie identycznie. Po zmianie trzeba zweryfikować okna zapytań i zachowanie alertów.

Standaryzacja: traktuj metryki jak kontrakt między zespołami

Wspólne nazewnictwo, jednostki i znaczenie etykiet pozwalają porównywać usługi bez każdorazowego rozszyfrowywania danych. Standard powinien obejmować również sposób wprowadzania zmian: przemianowanie metryki lub zmiana jej jednostki może zepsuć dashboardy i reguły alarmowe, nawet jeśli aplikacja działa prawidłowo.

Dlatego zmiany w instrumentacji warto uwzględniać w przeglądach wdrożeń, a wycofywane metryki usuwać dopiero po sprawdzeniu ich odbiorców. Sama lista zalecanych nazw nie wystarczy — potrzebna jest odpowiedzialność za zgodność i obsługę wyjątków. W Cognity uczymy, jak skutecznie radzić sobie z podobnymi wyzwaniami — zarówno w codziennej pracy specjalisty, jak i we współpracy między zespołami.

Alerting: ogranicz szum i pilnuj samego monitoringu

Powiadomienie wymagające natychmiastowej reakcji powinno oznaczać problem, z którym odbiorca może coś zrobić. Informacje diagnostyczne nie muszą budzić dyżurnego. Grupowanie powiadomień, deduplikacja i czasowe wyciszenia pomagają ograniczać szum, ale wyciszenia powinny mieć właściciela oraz termin zakończenia.

Brak danych nie jest dowodem poprawnego działania. Trzeba odróżniać zdrową usługę od niedostępnego eksportera, błędu zapytania czy awarii ścieżki powiadomień. Okresowe testowanie dostarczenia alarmu jest równie ważne jak sprawdzanie jego warunku.

RBAC i kontrola dostępu: chroń dane, nie tylko dashboardy

Uprawnienia należy przyznawać zgodnie z zasadą najmniejszych uprawnień, osobno rozpatrując oglądanie danych, edycję dashboardów, zarządzanie alertami i administrację źródłami. Dostępne mechanizmy RBAC oraz uprawnień do źródeł danych zależą od edycji i sposobu wdrożenia Grafany.

Ograniczenie dostępu do folderu z dashboardami nie gwarantuje izolacji danych w źródle. W środowiskach wymagających rozdzielenia zespołów lub klientów granice dostępu trzeba egzekwować także w warstwie zapytań i przechowywania danych. Interfejs Prometheusa oraz endpointy metryk również wymagają ochrony sieciowej i odpowiednich mechanizmów uwierzytelniania. Konta techniczne, tokeny i uprawnienia byłych pracowników powinny podlegać regularnym przeglądom.

💡 Pro tip: Izolację danych zweryfikuj kontem z minimalnymi uprawnieniami: sprawdź, czy przez Explore lub API można odczytać metryki innego zespołu mimo braku dostępu do jego dashboardów. Jeśli taki odczyt jest możliwy, ograniczenia trzeba wdrożyć w warstwie źródła danych lub pośredniczącej warstwie zapytań, a nie tylko w folderach Grafany.

Najczęściej zadawane pytania i odpowiedzi odnośnie Grafana i Prometheus w firmie – 10 praktycznych zastosowań monitorowania danych w czasie rzeczywistym

Czym różni się Grafana od Prometheusa i dlaczego używa się ich razem?

Prometheus zbiera i przechowuje metryki, a Grafana prezentuje je na dashboardach i ułatwia analizę. Prometheus pozwala wykonywać obliczenia w języku PromQL oraz definiować reguły wykrywające określone warunki. Grafana łączy się z nim jako źródłem danych, może również korzystać z innych źródeł i obsługiwać alertowanie. Razem pomagają powiązać stan infrastruktury z działaniem aplikacji, ale Grafana nie zastępuje magazynu metryk Prometheusa.

Czy Grafana i Prometheus pokazują dane w czasie rzeczywistym?

Grafana i Prometheus pokazują stan systemu z niewielkim opóźnieniem, a nie natychmiast po każdym zdarzeniu. Świeżość informacji zależy od częstotliwości pobierania metryk, wykonywania reguł i odświeżania dashboardów. Krótkie skoki wartości chwilowych mogą wystąpić pomiędzy odczytami i pozostać niewidoczne. Częstsze pomiary zwiększają szczegółowość obserwacji, ale wymagają większych zasobów, dlatego interwały należy dopasować do potrzebnego czasu reakcji.

Od czego zacząć wdrożenie Grafany i Prometheusa w firmie?

Wdrożenie najlepiej zacząć od jednej ważnej usługi, która ma jasno wskazanego właściciela. Najpierw określ, jakie problemy monitoring powinien wykrywać i jakie decyzje mają wspierać zebrane dane. Następnie uruchom zbieranie metryk, przygotuj dashboard oraz ścieżkę powiadamiania. Pilotaż sprawdź kontrolowanym testem pogorszenia działania usługi. Sukces oznacza wykrycie problemu, dotarcie informacji do właściwej osoby i możliwość zawężenia diagnozy.

Jakie metryki aplikacji warto monitorować w pierwszej kolejności?

W aplikacjach obsługujących żądania warto zacząć od natężenia ruchu, błędów i czasu odpowiedzi, zgodnie z metodą RED. Te pomiary pokazują obciążenie usługi oraz jakość obsługi użytkowników.

  • Liczba żądań w jednostce czasu pozwala ocenić skalę ruchu.
  • Udział nieudanych żądań pomaga odróżnić pogorszenie jakości od samego wzrostu aktywności.
  • Percentyle p95 i p99 ujawniają opóźnienia, które może ukrywać średnia.

Przy diagnozowaniu problemów zestawiaj je z wykorzystaniem i nasyceniem zasobów.

Jak ograniczyć nadmiar alertów w Grafanie i Prometheusie?

Nadmiar alertów ogranicza się przez alarmowanie o sytuacjach wymagających działania, zamiast o każdym odchyleniu metryki. Powiadomienia dyżurowe powinny przede wszystkim wskazywać problemy wpływające na użytkowników.

  • Dobierz okno oceny i czas utrzymywania się warunku, aby odfiltrować krótkie skoki.
  • Grupuj powiadomienia i wyciszaj alerty zależne od tej samej awarii.
  • Przypisz alertowi właściciela oraz instrukcję reakcji.

Unikaj niezależnego utrzymywania identycznych reguł w obu narzędziach bez wyraźnej potrzeby.

Dlaczego etykiety metryk mogą zwiększać zużycie zasobów Prometheusa?

Każda unikalna kombinacja wartości etykiet tworzy osobny szereg czasowy, zwiększając kardynalność danych. Dlatego identyfikatory użytkowników, zamówień czy pełne adresy URL mogą znacząco podnieść zużycie pamięci, dysku i koszt zapytań. Stosuj etykiety o kontrolowanej liczbie wartości, na przykład wzorce tras zamiast adresów konkretnych zasobów. Rzadsze pobieranie metryk zmniejsza liczbę próbek, ale nie rozwiązuje problemu nadmiernej liczby szeregów.

Czy Grafana i Prometheus mogą pomóc wykryć problemy ze sprzedażą w sklepie internetowym?

Grafana i Prometheus mogą wskazać zakłócenia procesu zakupowego, jeśli aplikacja udostępnia odpowiednie metryki. Zestawienie rozpoczętych checkoutów, potwierdzonych zamówień i technicznych błędów płatności pomaga odróżnić problem zakupowy od spadku zainteresowania ofertą. Narzędzia nie odtwarzają jednak samodzielnie ścieżek klientów. Dokładna analiza konwersji, sesji i kohort wymaga danych zdarzeniowych oraz narzędzi analitycznych, a operacyjne metryki sprzedaży nie zastępują rozliczeń finansowych.

Czy ograniczenie dostępu do dashboardu Grafany zabezpiecza dane przed innymi zespołami?

Ograniczenie dostępu do dashboardu lub folderu w Grafanie nie gwarantuje izolacji danych w źródle. Granice dostępu trzeba egzekwować również w warstwie zapytań, autoryzacji i przechowywania metryk. Sama etykieta zespołu w Prometheusie nie stanowi zabezpieczenia. Izolację warto sprawdzić kontem z minimalnymi uprawnieniami, próbując odczytać cudze metryki przez Explore lub API. Dostępne mechanizmy uprawnień zależą od edycji i sposobu wdrożenia Grafany.

icon

Formularz kontaktowyContact form

Imię *Name
NazwiskoSurname
Adres e-mail *E-mail address
Telefon *Phone number
UwagiComments