Grafana
Grafana je open-source platforma, jejíž hlavním účelem je vizualizace a monitorování dat. Nabízí širokou škálu vizualizací, jako jsou grafy, diagramy, tabulky a jiné.
Jedná se o nástroj, který nám umožňuje vytvářet řídicí panely v rámci naší nástěnky (tzv. „dashboard“) a následně v reálném čase dotazovat a zobrazovat metriky a data z různých zdrojů, jako například MySQL, InfluxDB, Prometheus, Gitlab a mnoho dalších.
Právě díky možnosti připojení se ke zdroji, jako je InfluxDB (data časových řad), je pro nás Grafana ideálním pomocníkem pro vizualizaci získaných dat pomocí nástroje Telegraf.
Instalace
Instalace je velmi jednoduchá a jednotlivé kroky jsou velmi dobře popsány v dokumentaci, která je dostupná přímo na webových stránkách Grafany.
Po úspěšné instalaci můžeme Grafanu začít používat. Otevřeme tedy webový prohlížeč a zadáme adresu http://localhost:3000/ (toto je výchozí nastavení, které můžeme později změnit).
V našem případě však máme celé řešení již nainstalované a funkční na našem firemním (interním) serveru, a proto se touto problematikou nebudeme dále zabývat.
Vrhneme se tedy rovnou na nastavení a vizualizaci našeho prvního dashboardu.
DataSource aneb zdroj dat k vizualizaci
Po přihlášení do Grafany je nutné začít s vytvořením a specifikací našeho zdroje dat, tzv. Data Source. Jedná se vlastně o výběr toho, jaká data chceme následně vizualizovat a monitorovat.
Z „konfiguračního“ menu Grafany vybereme volbu Data Sources a vytvoříme nový data source.
Zadáme libovolné pojmenování pro náš zdroj dat a ostatní nastavení ponecháme ve výchozím stavu. Nejdůležitějším nastavením je pak zvolení správné databáze, kterou používáme pro sběr dat, což je v našem případě databáze s názvem „telegraf“ (Data Source také pojmenujeme například „Telegraf“).
Uložíme námi zadané hodnoty a posuneme se o krok dále k vytvoření našeho prvního Dashboardu, který bude sloužit pro zobrazování metrik.
Na úvodní stránce vybereme možnost „Create your first dashboard“, která nás přesune rovnou do editačního módu v nově vytvořeném dashboardu. Nyní už je vše připraveno k vytvoření prvních grafů a zobrazení námi sesbíraných dat a metrik.
Na internetu existují také různé šablony s již vytvořenými dashboardy v Grafaně. Je tedy možné si poměrně jednoduše importovat předdefinovanou sadu grafů a metrik, které se vztahují k monitorovacímu nástroji Telegraf.
Přidání a nastavení prvního panelu – grafu
Přes tlačítko „Add new panel“ přidáme nový panel a pokračujeme konfigurací námi zvoleného zobrazení metrik.
Nejprve si zvolíme, o jaký graf máme zájem, zda chceme data zobrazovat jako „koláčový“ graf, tabulku, nebo prostou statistiku apod. Na výběr je hned několik vizualizací.
Pro zobrazování performance metrik se mi velmi osvědčil graf kontinuální křivky, tedy hned první možnost z nabídky. Pro zobrazení například procentuálního zatížení CPU je velmi názorný graf s názvem „Gauge“.
Vytvořené panely lze poté jednoduše upravovat, seřazovat, třídit do skupin apod.
Konfigurace query v rámci panelu
Nyní se můžeme vrhnout na nastavení dotazu, tzv. query, které bude následně zobrazovat data z námi sesbíraných metrik.
Jako první je nutné specifikovat „Data Source“, tedy zdroj, ze kterého chceme čerpat data. V našem případě je to námi vytvořený zdroj dat s názvem Telegraf.
Následně je nutné vybrat metriku, o kterou máme zájem. Tento výběr metrik je specifikován v rámci konfiguračního souboru Telegrafu. Pojmenování jsou tedy převzata z konfiguračního souboru – win_cpu, win_disk atd. Každá skupina obsahuje různé metriky pro jednotlivé oblasti.
Pro ukázku si vybereme metriku win_services, přes kterou můžeme monitorovat jednotlivé služby běžící v našem systému.
Ze seznamu tedy vybereme službu win_services a pro políčko „WHERE“ vybereme instanci, jelikož chceme zobrazovat data z právě běžících instancí na daném systému. Pro demonstraci pak můžeme vybrat vlastně jakýkoliv běžící proces. V našem případě se jedná o službu „explorer.exe“, který je aktivní v rámci operačního systému Windows. Pro pole „SELECT“ vybereme například „PrivateBytes“ (aktuální velikost paměti v bajtech, kterou má tento proces přidělenou a nelze ji sdílet s jinými procesy), záleží však, jaký údaj nás zajímá. Zde se nám jedná pouze o demonstrační příklad. Nastavení tedy bude jako na obrázku níže.
Jakmile náš graf nastavíme, prakticky ihned vidíme, že se zobrazují data (metriky) z naší databáze.
Graf můžeme samozřejmě libovolně pojmenovat a provést další řadu nastavení, které nám Grafana umožňuje.
Jedná se například o název, popisek, ale mnoho dalších možností.
Můžeme libovolně měnit vizualizace grafů, jejich detailnější zobrazení, interpretaci dat v rámci grafu apod.
Uživatel je tak schopen si graf navrhnout přesně dle svých představ, pojmenovat osy, nastavit mezní hodnoty, editovat a znázornit legendu apod. Pro správné jednotky v našem grafu jsme levou osu nastavili jako „Data“ v jednotkách Bytes (SI).
Při performance monitoringu může být také velmi užitečnénastavení upozornění (alertů), které nás mohou varovat při překročení jisté mezní hodnoty nebo procentuálním nárustu apod.
Grafana je schopna v rámci těchto upozornění poslat zvoleným uživatelům například email, že na systému může docházet k nárůstu zatížení CPU, nebo že se děje něco jiného „podezřelého“.
Ukázkou dalšího možného zobrazení v grafu může být například „měrka“ s číselným údajem, který nám bude deklarovat zbývající dostupnou RAM na našem systému.
Tento graf je možné využít mnoha dalšími způsoby. Jeho použití je samozřejmě široké a velmi dobře může signalizovat také momentální procentuální zatížení procesoru (CPU). Přidáme tedy opět nový panel (graf) a v rámci nabídky vizualizace zvolíme možnost „Gauge“.
Query pro tento graf následně nastavíme tak, že v kolonce „FROM“ vybereme možnost, kterou nabízí Telegraf – „win_mem“ . Win_mem symbolizuje zástupce oblasti „Memory“, a umožní nám tak sledovat různé hodnoty z oblasti pamětí.
Pro pole „SELECT“ vybereme hodnotu „Available bytes“, která symbolizuje momentálně dostupnou výpočetní paměť našeho počítače.
Graf společně s dashboardem opět uložíme a můžeme pokračovat v přidávání dalších libovolných grafů a zobrazování hodnot, které nás o našem systému zajímají.
Pro demonstraci je níže umístěn soubor, který může sloužit jako inspirace pro Performance monitoring dashboard v Grafaně a poskytne základní údaje o vašem systému.
Grafana performance: grafana-performance-template.json