Grafana

Otwartoźródłowa platforma do wizualizacji danych i tworzenia interaktywnych dashboardów. Często łączona z Prometheusem do monitorowania infrastruktury.

Grafana to otwartoźródłowa platforma do wizualizacji danych i budowania interaktywnych dashboardów, rozwijana przez Grafana Labs. W skrócie: bierze metryki, logi i inne szeregi czasowe z najróżniejszych źródeł i zamienia je w wykresy, liczniki i mapy ciepła, na które możesz patrzeć na jednym ekranie zamiast grzebać w surowych danych. Sama nie przechowuje danych — podłączasz ją do baz i systemów, które już je mają, a ona je tylko czyta i rysuje.

Kluczowa cecha Grafany to data sources, czyli wtyczki do źródeł danych. Podpinasz Prometheusa (metryki), Lokiego (logi), InfluxDB, Elasticsearch, PostgreSQL, CloudWatch i dziesiątki innych — a potem na jednym dashboardzie możesz mieć panele zasilane z kilku z nich naraz. Każdy panel pyta swoje źródło własnym językiem zapytań: dla Prometheusa będzie to PromQL, dla bazy SQL zwykły SELECT. Dashboardy ogarniasz przez przeglądarkę: dodajesz zmienne (np. wybór serwera z listy), ustawiasz zakres czasu i odświeżanie. Drugi filar to alerting — definiujesz regułę typu „odpal powiadomienie, gdy zużycie CPU przekroczy 90% przez 5 minut”, a Grafana wyśle to na Slacka, maila czy PagerDuty.

Jak to wygląda w praktyce

Najpopularniejszy duet to Prometheus + Grafana. Prometheus zbiera metryki z Twoich serwerów i aplikacji, a Grafana je pokazuje. Chcesz wykres zużycia pamięci na hoście? Wrzucasz na panel zapytanie w stylu:

100 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100)

i masz procent zajętej pamięci w czasie. Cały stack często stawia się jednym docker compose upkontener Prometheusa, kontener Grafany i gotowe. Dla logów dokłada się Lokiego i wtedy z jednego miejsca oglądasz i metryki, i logi aplikacji.

Na co uważać

Najczęstszy mit: „Grafana monitoruje moją infrastrukturę”. Nie — Grafana tylko wyświetla i alarmuje. Zbieraniem i przechowywaniem danych zajmuje się Prometheus, Loki czy inna baza. Jak nie skonfigurujesz źródła, zobaczysz piękne, puste panele.

Druga pułapka to licencja: od 2021 roku rdzeń Grafany jest na AGPLv3 (wcześniej Apache 2.0). Dla nauki i typowego wdrożenia bez znaczenia, ale jeśli planujesz wbudować Grafanę w komercyjny produkt SaaS, przeczytaj warunki. Trzecia rzecz: domyślne hasło admina to admin/admin — zmień je, zanim ktoś znajdzie Twój dashboard w internecie. I nie myl Grafany z systemami logów typu Kibana — Grafana jest uniwersalna i source-agnostic, podczas gdy Kibana siedzi mocno w ekosystemie Elastica.

Pojęcia powiązane: Prometheus, PromQL, Loki, observability, metryki, dashboard, alerting, Kibana, InfluxDB, time series database, DevOps, monitoring.