Monitorovací panel
OmniDB má skvělou funkci nazvanou Monitorovací panel. Jeden obrázek vydá za tisíc slov, takže se podívejte sami:

Jak vidíte, jde o nový druh vnitřní záložky zobrazující grafy a tabulky. Tato vnitřní záložka Monitoring se automaticky otevře po rozbalení kořenového uzlu stromu (uzel PostgreSQL). Můžete ji nechat otevřenou nebo ji kdykoli zavřít. Znovu ji otevřete kliknutím pravým tlačítkem na kořenový uzel a volbou Dashboard.

Panel se skládá z praktických informačních obdélníků nazvaných Monitorovací jednotky. Zde je příklad monitorovací jednotky a jejích prvků rozhraní:

- 1: Název monitorovací jednotky;
- 2: Obnovení monitorovací jednotky. V závislosti na typu kliknutí na toto tlačítko obnoví celou vykreslovací plochu, nebo jen nechá graf načíst novou sadu hodnot;
- 3: Pozastavení monitorovací jednotky;
- 4: Interval automatického obnovování v sekundách;
- 5: Odstranění monitorovací jednotky z monitorovacího panelu;
- 6: Vykreslovací plocha, která se liší podle typu monitorovací jednotky.
Typy monitorovacích jednotek
Existují 3 typy monitorovacích jednotek:
- Tabulka (Grid): nejjednodušší druh — čas od času spustí dotaz a zobrazí výsledky v datové tabulce.

- Graf (Chart): při každém obnovení vykreslí nový kompletní graf. Stará sada hodnot se ztrácí. Nejvíce se hodí pro koláčové grafy, ale dají se použít i jiné typy grafů.

- Časová řada (Timeseries): to je asi nejužitečnější typ monitorovací jednotky. Jde o graf, který při každém obnovení připojí novou sadu hodnot. Pro tento typ se nejlépe hodí spojnicové nebo sloupcové grafy. Posledních 100 sad hodnot uchovává komponenta na straně klienta, aby si je uživatel mohl prohlédnout.

Zobrazování a skrývání jednotek na panelu
Kliknutím na tlačítko Refresh All se obnoví všechny monitorovací jednotky najednou. Nechtěné monitorovací jednotky můžete odstranit také kliknutím na tlačítko Remove. Pojďme nyní odstranit všechny jednotky z panelu, aby zůstal prázdný:

17 jednotek, které jsou v OmniDB vestavěné (metriky serveru PostgreSQL a MySQL — míra transakcí, backendy, produkce WAL, velikost databáze/tabulky a podobně) běží jako nativní kód a nevyžadují nic navíc instalovat v databázi.

Nyní, když je náš panel prázdný, přidejme nějaké jednotky. Klikněte na tlačítko Manage Units.

Kliknutím na zelenou akci přidáte kteroukoli z vestavěných jednotek — např. Backends a Database Size. Po pár sekundách budete mít panel vypadající takto:

Podobným způsobem můžete přidávat a odebírat libovolné jednotky a přizpůsobit si panel přesně podle svých potřeb.
Psaní vlastních monitorovacích jednotek
OmniDB umožňuje napsat si vlastní jednotky, nebo upravit ty stávající, pomocí jediného SQL dotazu — se stejným připojením a oprávněními, jaké už má váš SQL editor, jen běžícím podle časovače místo na vyžádání. Není potřeba se učit žádný zvláštní skriptovací jazyk ani sandbox.
Poznámka: jelikož se dotaz bez dohledu opakovaně spouští podle
intervalu obnovování, jsou povoleny pouze dotazy SELECT (nebo
WITH ... SELECT) — destruktivní příkaz vložený omylem je rovnou odmítnut,
místo aby tiše vypálil podle časovače.
Novou monitorovací jednotku vytvoříte kliknutím na tlačítko Manage Units na panelu a následně na tlačítko New Unit. Otevře se nový druh vnitřní záložky s polem Name, rozbalovacím seznamem Type, polem Refresh Interval a jediným editorem SQL Query (plus rozbalovacím seznamem Chart Type, který se zobrazuje jen pro jednotky typu Chart).
Podoba dotazu závisí na typu jednotky:
-
Grid: bez zvláštního tvaru — ať už dotaz vrátí jakékoli sloupce a řádky, staly se přímo obsahem tabulky. Například:
SELECT * FROM pg_stat_activity -
Chart: jeden řádek na kategorii — první sloupec je popisek, zbývající sloupec(-ce) je vždy jedna řada (název sloupce se stává názvem řady). Typ grafu (sloupcový, koláčový, prstencový nebo spojnicový) vyberte z rozbalovacího seznamu vedle výběru Type. Například koláčový graf velikostí databází:
SELECT datname, round(pg_catalog.pg_database_size(datname) / 1048576.0, 2) AS size_mb FROM pg_catalog.pg_database WHERE datname NOT IN ('template0', 'template1') -
Timeseries: přesně jeden řádek — každý číselný sloupec se stává jednou průběžně doplňovanou spojnicovou řadou, obnovovanou podle nastaveného intervalu. Například sledování velikosti databáze v čase:
SELECT round(sum(pg_catalog.pg_database_size(datname)) / 1048576.0, 2) AS total_size_mb FROM pg_catalog.pg_database WHERE NOT datistemplate
Dotaz napište (nebo vložte) do editoru SQL Query a poté klikněte na tlačítko Test, abyste jej viděli vykreslený v náhledové vykreslovací ploše — testovat můžete tolikrát, kolikrát chcete. Jakmile budete spokojeni, pojmenujte jednotku, nastavte interval obnovování a klikněte na Save. Zavřete editační záložku a nová jednotka se objeví v seznamu jednotek, připravená přidat na panel (zelená akce) stejně jako kterákoli vestavěná.