Korelacja metryk z logami - łączenie danych z Prometheus z Loki/ELK przez shared labels (job, instance, pod); Grafana ułatwia nawigację.
Grafana to więcej niż wykresy: pulpity jako kod, proxy do Prometheusa i adnotacje na zmianach.
- Rola platformy analitycznej Grafana – dedykowany silnik wizualizacji pobiera metryki z serwera Prometheus i prezentuje je na interaktywnych dashboardach.
- Architektura paneli telemetrycznych – każdy wykres opiera się na zapytaniu PromQL, dynamicznie odświeżając dane bez obciążania aplikacji produkcyjnych.
- Współpraca wielu źródeł danych – nowoczesne pulpity nawigacyjne potrafią zestawiać metryki liczbowe z powiązanymi wpisami logów na jednym ekranie.
- Znaczenie ergonomii wizualnej – przejrzysty układ paneli i logiczny dobór kolorów skraca czas diagnozy krytycznych awarii w zespole operacyjnym.
- Oficjalne zasoby edukacyjne – student zapoznaje się z podstawami platformy Grafana w oficjalnym podręczniku dokumentacji technicznej producenta.
Shared labels: Wspólne etykiety (job, instance, pod) łączące metryki z Prometheusa z logami z Loki/ELK; Grafana ułatwia nawigację między nimi.
Wizualizację wielowymiarowych szeregów czasowych realizuje platforma Grafana.
Grafana to nie "narzędzie do wykresów", lecz platforma obserwowalności: dashboards (JSON, provisioning), panel types (time series, stat, gauge, table, logs, traces, heatmap), variables (dynamiczne filtry - jeden dashboard dla 100 serwisów), annotations (zdarzenia na wykresie: deploy, alert, incydent), Explore (ad-hoc query) i Alerting v2 (własne alerty). Łączy Prometheus (metrics) + Loki (logs) + Tempo (traces) w unified observability stack - standard w ekosystemie CNCF/Grafana Labs.
Grafana do wykresów/pulpitów - Visualization Layer: Data Source: Prometheus (URL `http://prometheus:9090`, proxy mode - browser nie łączy się bezpośrednio z Prometheus, Grafana proxy = bezpieczeństwo, CORS, auth). Dashboards: JSON model (wersjonowany w Git, `dashboard-as-code`), Provisioning (automatyczny deploy z plików `/etc/grafana/provisioning/dashboards/` - zero klikania w UI). Panels: Time Series (wykresy liniowe/punkty, range, resolution, legend, thresholds, overrides), Stat (single value: current CPU%, error budget remaining), Gauge (wskaźnik kołowy: disk usage%), Table (tabela: top 10 endpoints by latency), Logs (Loki logs obok metryk), Traces (Tempo trace waterfall), Heatmap (histogram buckets jako kolory). Variables: `$job`, `$instance`, `$handler` - jeden pulpit dla wszystkich serwisów (wybierz z dropdown). Annotations: Deploy markers (ArgoCD webhook → Grafana API), Alert markers (Alertmanager webhook), Incident markers (manual). To PRODUKCYJNE DASHBOARDY, nie "ładne obrazki".
Łączenie z Prometheus - Data Source Setup: Add Data Source → Type: Prometheus → URL: `http://prometheus:9090` (internal DNS / service name) → Access: `Proxy` (default, Grafana server proxyuje zapytania - bezpieczeństwo, auth, CORS) LUB `Direct` (browser → Prometheus - wymaga CORS, niezalecane). Auth: `Basic Auth` / `OAuth` / `Forward OAuth Identity` (SSO). TLS: `Skip TLS Verify` (dev) / `TLS Client Auth` (prod z mTLS). Save & Test → Green "Data source is working" (Grafana query `instant` `up` do Prometheus). To 2-minuty setup, ale fundament WSZYSTKICH dashboardów.
Wykresy czasowe - Time Series Panel Deep Dive: Range: `1h`, `6h`, `24h`, `7d`, `30d`, `custom` (time picker). Resolution: auto (Grafana liczy step = range / width_px) LUB fixed (`Step: 15s`). Legend: `As table` / `To right` / `Hidden`, `Values` (min/max/avg/current), `Sort by`. Thresholds: linie poziome (SLO line: `500ms` p99, `80%` CPU), kolory (green/yellow/red). Overrides: per-series config (kolor, line width, fill opacity, y-axis unit) na podstawie label matchers. Transformations: `Rename by regex` (skróć nazwy serii), `Filter by query` (usuń serie), `Calculate` (math: `/ 1024 / 1024` bytes→MB), `Organize fields` (ukryj kolumny). bogate opcje wizualizacji = dashboard czyta się sam.
Szczegóły w Wykładzie 3 - Full Grafana Deep Dive: Instalacja (binary, Docker, Helm, Grafana Cloud), Data Sources (Prometheus, Loki, Tempo, PostgreSQL, InfluxDB, CloudWatch), Panel Types (wszystkie 15+ typów), PromQL Editor (autocomplete, syntax highlight, explain, format), Variables (query variables, chained variables, text box), Dashboard Design (layout, UX, color theory, cognitive load), Best Practices (dashboard-as-code, provisioning, templating, versioning, review w PR). To osobny, pełny wykład - tutaj tylko "co jest" i "dlaczego warto".
Terminologia: dashboard (pulpit), visualization (wizualizacja), data source (źródło danych), panel (panel), time series (seria czasowa), variable (zmienna/filtr dynamiczny), annotation (adnotacja/znacznik na wykresie), provisioning (aprowizacja/automatyczny deploy), proxy mode (tryb proxy Grafana).
Grafana to coś więcej niż narzędzie do rysowania wykresów - to platforma obserwowalności, która łączy metryki, logi i trace'y w jednym miejscu. Pulpity definiujemy jako JSON i wersjonujemy w repozytorium, co pozwala wdrażać je tak samo jak kod. Panele mają wiele rodzajów: seria czasowa, pojedyncza wartość, wskaźnik kołowy, tabela, a także logi i trace'y. Zmienne w nagłówku pulpitu, takie jak usługa czy instancja, robią z jednego pulpitu szablon dla setek serwisów, a adnotacje nanoszą na wykres momenty wdrożeń i incydentów.
Połączenie z Prometheusem to dodanie źródła danych z adresem na porcie 9090 w trybie proxy - wtedy przeglądarka nigdy nie łączy się z Prometheusem bezpośrednio, a autoryzację przejmuje Grafana. Przycisk Save & Test potwierdza połączenie zielonym komunikatem. Na wykresie ustawiamy zakres, rozdzielczość i legendy, dodajemy linie progowe i style dla poszczególnych serii - wtedy pulpit czyta się sam, a stan usługi widać w kilka sekund. Pełne możliwości, od instalacji po projektowanie, poznamy w wykładzie 3.
Wyjaśnienie skrótów użytych na slajdzie:
OSS – Open Source Software – oprogramowanie o otwartym kodzie źródłowym; Model udostępniania oprogramowania umożliwiający bezpłatną modyfikację i dystrybucję kodu.
GUI – Graphical User Interface – graficzny interfejs użytkownika; Wielopanelowy interfejs Grafany prezentujący metryki w postaci czytelnych wykresów i wskaźników.
SQL – Structured Query Language – strukturalny język zapytań; Język obsługiwany przez platformę Grafana jako jedno z wielu alternatywnych źródeł danych.
PromQL – Prometheus Query Language – język zapytań Prometheus; Podstawowy język zapytań definiujący serie czasowe w panelach analitycznych Grafany.
API – Application Programming Interface – interfejs programistyczny; Interfejs REST platformy Grafana umożliwiający wersjonowanie i wgrywanie dashboardów jako kod (Dashboard-as-Code).