ClusterControl je snadno použitelný nástroj pro sledování výkonu TimescaleDB v reálném čase. Poskytuje desítky předdefinovaných grafů pro zobrazení široké škály statistik výkonu týkajících se například uživatelů, propustnosti, tabulkových prostorů, redo logů, vyrovnávací paměti, mezipaměti a I/O. Poskytuje také informace o zátěži databáze v reálném čase. Můj kolega Sebastian dříve psal o tom, jak jednoduše nasadit TimescaleDB. V tomto blogu vám ukážeme, jak monitorovat různé aspekty výkonu TimescaleDB pomocí ClusterControl. Nejprve mi dovolte poskytnout malý úvod o TimescaleDB.
TimescaleDB je implementován jako rozšíření na PostgreSQL, což znamená, že databáze Timescale běží v rámci instance PostgreSQL. Model rozšíření umožňuje databázi využívat mnoho atributů PostgreSQL, jako je spolehlivost, bezpečnost a konektivita k široké škále nástrojů třetích stran. TimescaleDB zároveň využívá vysoký stupeň přizpůsobení dostupný pro rozšíření přidáním háků hluboko do plánovače dotazů PostgreSQL, datového modelu a prováděcího motoru. Jeho ekosystém mluví nativním jazykem jako PostgreSQL a přidává specializované funkce (a optimalizace dotazů) pro práci s daty časových řad. Jednou z výhod, které TimescaleDB nabízí oproti jiným specializovaným datovým úložištím pro ukládání dat IoT nebo časových řad, je to, že můžete použít syntaxi SQL, což znamená, že můžete využít výhod JOINů. Dotazování na různá metadata je tedy pro vývojáře snazší – zjednodušuje to jejich zásobník a odstraňuje datová sila.
TimescaleDB byl testován a testován se stovkami miliard řádků a velmi dobře se škáluje – zejména s upserts nebo inserty ve srovnání s vanilla PostgreSQL. Pokud vás zajímají jejich nástroje pro srovnávání, můžete se podívat na jejich Time Series Benchmark Suite (TSBS).
Používání TimescaleDB je docela snadné, pokud jste obeznámeni s RDBMS, jako je MySQL nebo PostgreSQL. Musíte zadat svou databázi a vytvořit rozšíření pro TimescaleDB. Po vytvoření pak vytvoříte Hypertable, která virtuálně zpracovává všechny uživatelské interakce s TimescaleDB. Viz příklad níže:
nyc_data=# CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
WARNING:
WELCOME TO
_____ _ _ ____________
|_ _(_) | | | _ \ ___ \
| | _ _ __ ___ ___ ___ ___ __ _| | ___| | | | |_/ /
| | | | _ ` _ \ / _ \/ __|/ __/ _` | |/ _ \ | | | ___ \
| | | | | | | | | __/\__ \ (_| (_| | | __/ |/ /| |_/ /
|_| |_|_| |_| |_|\___||___/\___\__,_|_|\___|___/ \____/
Running version 1.2.2
For more information on TimescaleDB, please visit the following links:
1. Getting started: https://docs.timescale.com/getting-started
2. API reference documentation: https://docs.timescale.com/api
3. How TimescaleDB is designed: https://docs.timescale.com/introduction/architecture
Note: TimescaleDB collects anonymous reports to better understand and assist our users.
For more information and how to disable, please see our docs https://docs.timescaledb.com/using-timescaledb/telemetry.
CREATE EXTENSION
nyc_data=# SELECT create_hypertable('rides_count', 'one_hour');
create_hypertable
--------------------------
(1,public,rides_count,t)
(1 row)
Tak jednoduché. Jakmile se však data zvětší, můžete mít další otázku:„Jak můžete sledovat výkon TimescaleDB“? No a o tom je náš blog. Pojďme se podívat, jak to můžete udělat pomocí ClusterControl.
Monitorování klastrů TimescaleDB
Monitorování clusteru TimescaleDB v ClusterControl je téměř stejné jako monitorování clusteru databáze PostgreSQL. Máme grafy na úrovni clusteru a uzlů, řídicí panely, topologie, monitorování dotazů a výkon. Pojďme si projít každý z nich.
Karta „Přehled“
Přehledové grafy lze nalézt tak, že přejdete na Cluster → Přehled kartu.
V tomto zobrazení můžete zobrazit zatížení serveru, poměr přístupů do mezipaměti nebo filtrovat jiné metriky – počet bloků, čtení bloků, potvrzení nebo počet připojení.
Můžete si zde také vytvořit vlastní nastavení řídicího panelu, stejně jako můj příklad níže, který načítá bloky-hit a bloky-čtení.
Toto je dobré místo pro začátek a také pro sledování aktivity sítě, kontrolu přenosu a příjmu paketů.
Karta "Uzly"
Grafy uzlů lze najít v Cluster → Nodes tab. To obsahuje hloubkový pohled na vaše uzly s metrikami na úrovni hostitele a databáze. Viz graf níže:
Kliknutím na „Top můžete také zkontrolovat hlavní procesy běžící v hostitelském systému ". Viz ukázkový snímek obrazovky níže:
K dispozici jsou také některé funkce po kliknutí pravým tlačítkem na uzel, kde můžete povolit archivaci WAL nebo restartovat démona PostgreSQL nebo restartovat hostitele. Viz obrázek níže:
To může být užitečné, pokud chcete naplánovat údržbu na uzlu s nedostatečným výkonem.
Karta "Panely"
Dashboardy byly vydány teprve minulý rok a s podporou PostgreSQL dashboardů můžete tyto grafy využít. Například jsem vložil 1M řádků do databáze nyc_data. Podívejte se níže, jak se to odráží v Přehledu PostgreSQL Dashboard:
Po vložení 1,1 M řádků můžeme vidět, že uzel 192.168.70.40 je stále výkonný a nejsou zde žádné známky vysokého CPU a vysokého využití disku. Zatímco sledujeme jeho výkon, podívejte se na následující řídicí panel:
Kromě řídicího panelu Přehled clusteru můžete mít také podrobný přehled o výkonu systému. Viz obrázek níže:
Karta "Topologie"
Tato karta je jednoduchá, ale nabízí pohled na topologii replikace master-slave. Poskytuje vám stručné, ale výstižné informace o tom, jak si váš pán a otroci vedou. Viz obrázek níže:
Karta "Monitor dotazů"
Monitorování dotazů v TimescaleDB je velmi důležité pro DBA i pro vývojáře, kteří se zabývají aplikační logikou. Tato karta je velmi důležitá pro pochopení výkonu dotazů. Zde můžete zobrazit nejčastější dotazy, spuštěné dotazy, odlehlé hodnoty dotazů a statistiky dotazů. Můžete například zobrazit dotazy spuštěné na všech hostitelích nebo můžete filtrovat podle uzlu, který se pokoušíte monitorovat. Níže uvedený příklad ukazuje, jak to vypadá při prohlížení v rámci Query Monitor.
Pokud chcete shromažďovat statistiky vašich kousků/indexů TimescaleDB, můžete využít výhod zde v části Statistika dotazů. Zobrazuje seznam vašich indexů, které používá TimescaleDB. Viz obrázek níže:
Nejen, že si můžete prohlížet statistiky konkrétních indexů, můžete je také filtrovat podle statistik I/O tabulek, statistik indexů I/O nebo jejich exkluzivního čekání na zámek. Můžete se tedy podívat na další položky v seznamu „Statistika“, které chcete sledovat.
Karta „Výkon“
Na této kartě si můžete prohlédnout proměnné nastavené pro optimalizaci a ladění, nastavit poradce, zkontrolovat růst databáze a generovat analýzu schémat pro shromažďování tabulek bez primárních klíčů.
Můžete například zobrazit vedle sebe dostupné uzly v nastavení a porovnávat proměnné. Viz záložka níže:
To je prozatím vše. Bylo by skvělé slyšet vaši zpětnou vazbu a hlavně nám dát vědět, co nám chybí.