ClusterControl er et brugervenligt værktøj til at overvåge ydeevnen af TimescaleDB i realtid. Det giver snesevis af foruddefinerede diagrammer til visning af en bred vifte af ydeevnestatistikker vedrørende brugere, gennemløb, tablespaces, redo-logfiler, buffere, caches og I/O, for eksempel. Det giver også oplysninger i realtid om databasens arbejdsbelastning. Min kollega Sebastian skrev tidligere om, hvordan man nemt kan implementere TimescaleDB. I denne blog vil vi vise dig, hvordan du overvåger forskellige aspekter af TimescaleDB-ydeevne med ClusterControl. Først og fremmest, tillad mig at give en smule introduktion om TimescaleDB.
TimescaleDB er implementeret som en udvidelse på PostgreSQL, hvilket betyder, at en Timescale-database kører i en PostgreSQL-instans. Udvidelsesmodellen giver databasen mulighed for at drage fordel af mange af PostgreSQL's egenskaber såsom pålidelighed, sikkerhed og forbindelse til en lang række tredjepartsværktøjer. Samtidig udnytter TimescaleDB den høje grad af tilpasning, der er tilgængelig for udvidelser, ved at tilføje hooks dybt ind i PostgreSQL's forespørgselsplanlægger, datamodel og eksekveringsmotor. Dets økosystem taler det modersmål, som PostgreSQL gør, og tilføjer specialiserede funktioner (og forespørgselsoptimeringer) til at arbejde med tidsseriedata. En af fordelene, som TimescaleDB tilbyder i forhold til andre specialiserede datalagre til lagring af IoT eller tidsseriedata, er, at du kan bruge SQL-syntaks, hvilket betyder, at du kan drage fordel af JOINs. Så det er nemmere for udviklere at forespørge på forskellige metadata - det forenkler deres stak og eliminerer datasiloer.
TimescaleDB er blevet testet og benchmarked med hundredvis af milliarder af rækker, og det skalerer meget godt – især med upserts eller inserts i sammenligning med vanilla PostgreSQL. Hvis du er interesseret i deres benchmarkingværktøjer, kan du overveje at tage et kig på deres Time Series Benchmark Suite (TSBS).
Det er ret nemt at bruge TimescaleDB, hvis du er fortrolig med en RDBMS såsom MySQL eller PostgreSQL. Du skal angive din database og oprette en udvidelse til TimescaleDB. Når du først er oprettet, opretter du en Hypertable, som stort set håndterer alle brugerinteraktioner med TimescaleDB. Se et eksempel nedenfor:
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)
Så simpelt er det. Men når data bliver store, ville et opfølgende spørgsmål, du måtte have, være "Hvordan kan du overvåge ydeevnen af TimescaleDB"? Nå, det er hvad vores blog handler om. Lad os se, hvordan du kan gøre dette med ClusterControl.
Overvågning af TimescaleDB-klynger
Overvågning af en TimescaleDB-klynge i ClusterControl er næsten det samme som at overvåge en PostgreSQL-databaseklynge. Vi har grafer på klynge- og nodeniveau, dashboards, topologier, forespørgselsovervågning og ydeevne. Lad os gennemgå hver af disse.
Fanen "Oversigt"
Oversigtsgraferne kan findes ved at gå til Klynge → Oversigt fanen.
I denne visning kan du se serverbelastning, cache-hitforhold eller filtrere på andre metrics - blok-hit, blok-læs, commits eller antal forbindelser.
Du kan også oprette dine brugerdefinerede dashboard-indstillinger her ligesom mit eksempel nedenfor, som henter blocks-hit og blocks-read.
Dette er et godt sted at starte, ligesom du overvåger netværksaktivitet, kontrollerer overførslen og modtager pakker.
Fanen "Noder"
Nodegraferne kan lokaliseres ved at gå til Klynge → Noder fanen. Dette indeholder en dybdegående visning af dine noder med værts- og databaseniveau-metrics. Se grafen nedenfor:
Du kan også kontrollere de øverste processer, der kører i værtssystemet, hvis du klikker på "Top " fanen. Se et eksempel på et skærmbillede nedenfor:
Der er også nogle funktioner, når du højreklikker på noden, hvor du kan aktivere WAL-arkivering eller genstarte PostgreSQL-dæmonen eller genstarte værten. Se billede som vist nedenfor:
Dette kan være nyttigt, hvis du vil planlægge vedligeholdelse på en under-performerende node.
Fanen "Dashboards"
Dashboards blev netop udgivet sidste år, og med støtte fra PostgreSQL-dashboards kan du drage fordel af disse grafer. For eksempel indsatte jeg 1M rækker i nyc_data-databasen. Se nedenfor, hvordan det afspejler sig i PostgreSQL Overview Dashboard:
Efter at have indsat de 1,1 M rækker, kan vi se, at noden 192.168.70.40 stadig fungerer, og der er ingen tegn på høj CPU og høj diskudnyttelse. Se følgende dashboard, mens vi overvåger dets ydeevne:
Bortset fra Cluster Overview Dashboard kan du også få en detaljeret visning af systemets ydeevne. Se billedet nedenfor:
Fanen "Topologi"
Denne fane er enkel, men giver et overblik over din master-slave-replikeringstopologi. Det giver dig kort, men kortfattet information om, hvordan din herre og slaver klarer sig. Se billedet nedenfor:
Fanen "Forespørgselsovervågning"
Overvågning af forespørgsler i TimescaleDB er meget vigtigt for en DBA såvel som for de udviklere, der håndterer applikationslogikken. Denne fane er meget vigtig for at forstå, hvordan forespørgsler klarer sig. Her kan du se de mest populære forespørgsler, kørende forespørgsler, forespørgselsudlignere og forespørgselsstatistikker. For eksempel kan du se de forespørgsler, der kører på alle værter, eller du kan filtrere baseret på den node, du forsøger at overvåge. Et eksempel nedenfor viser, hvordan det ser ud, når det ses under Query Monitor.
Hvis du ønsker at samle statistik over dine TimescaleDB bidder/indekser, kan du benytte dig af her under Forespørgselsstatistik. Det viser en liste over dine indekser, der bruges af TimescaleDB. Se billedet nedenfor:
Du kan ikke kun se statistikken for specifikke indekser, du kan også filtrere den efter dens tabel I/O statistik, indeks I/O statistik eller dens eksklusive låseventer. Derfor kan du tjekke de andre elementer på listen "Statistik", som du foretrækker at overvåge.
Fanen "Ydeevne"
Under denne fane er det her, du er i stand til at gennemgå variablerne indstillet til optimering og tuning, opsætte rådgivere, kontrollere databasevæksten og generere en skemaanalyse for at samle tabeller uden primærnøgler.
For eksempel kan du se de tilgængelige noder side om side i opsætningen og sammenligne variabler. Se fanen nedenfor:
Det er alt for nu. Det ville være dejligt at høre din feedback, og især fortælle os, hvad vi mangler.