Samoobslužné monitorovanie pre aplikácie Spring Boot

1. Úvod

Jednou z mnohých skvelých funkcií Spring Boot je sada zabudovaných akčných členov. Tieto akčné členy poskytujú jednoduchý spôsob monitorovania a riadenia takmer všetkých aspektov aplikácie Spring Boot.

V tomto tutoriáli sa pozrieme na použitie metrického aktuátora na vytvorenie samohostiteľského monitorovacieho riešenia pre aplikácie Spring Boot.

2. Databáza metrík

Prvou časťou monitorovania aplikácií Spring Boot je výber metrickej databázy. V predvolenom nastavení Spring Boot nakonfiguruje register metrík mikrometrov v každej aplikácii.

Táto predvolená implementácia zhromažďuje preddefinovanú sadu metrík aplikácie, ako sú využitie pamäte a procesora, požiadavky HTTP a niekoľko ďalších. ale tieto metriky sú uložené iba v pamäti, čo znamená, že sa stratia pri každom reštartovaní aplikácie.

Ak chcete vytvoriť riešenie monitorovania, ktoré je hosťom samo, mali by sme si najskôr zvoliť databázu metrík, ktorá žije mimo aplikácie Spring Boot. V nasledujúcich sekciách sa bude diskutovať iba o niekoľkých dostupných možnostiach hostovaných hosťami.

Všimnite si, že kedykoľvek Spring Boot zistí inú databázu metrík na triednej ceste, automaticky zakáže register v pamäti.

2.1. InfluxDB

InfluxDB je open-source databáza časových radov. Najrýchlejší spôsob, ako začať s programom InfluxDB, je spustiť ho lokálne ako kontajner Docker:

docker run -p 8086: 8086 -v / tmp: / var / lib / influxdb influxdb

Toto bude ukladať metriky do miestnej / tmp prepážka. To je dobré pre vývoj a testovanie, ale to by nebola dobrá voľba pre produkčné prostredie.

Akonáhle je InfluxDB spustený, môžeme nakonfigurovať našu aplikáciu Spring Boot tak, aby k nej zverejňovala metriky pridaním príslušnej závislosti od mikrometrov:

 io.mikrometer mikrometer-register-vtok 

Ďalej je potrebné do položky pridať nový záznam application.properties spis:

management.metrics.export.influx.uri = // localhost: 8086

Po vybalení z krabice je názov databázy nastavený na mydb, zatiaľ čo používateľské meno a heslo zostávajú nenastavené.

Predvolené hodnoty však môžeme prepísať pomocou vyhradených vlastností:

management.metrics.export.influx.db = customDbName management.metrics.export.influx.user-name = myUserName management.metrics.export.influx.password = mySecret

InfluxDB neposkytuje natívny vizualizačný nástroj. Poskytuje však samostatný nástroj s názvom Chronograf, ktorý funguje dobre na vizualizáciu údajov InfluxDB.

2.2. Prometheus

Prometheus je open-source monitorovacia a výstražná sada nástrojov pôvodne vytvorená v SoundCloud. Funguje mierne odlišne od InfluxDB.

Namiesto konfigurovania našej aplikácie na zverejnenie metrík v Prometheus, nakonfigurujeme Prometheus tak, aby pravidelne dopytoval našu aplikáciu.

Najskôr nakonfigurujeme našu aplikáciu Spring Boot tak, aby odhalila nový koncový bod aktuátora Prometheus. Robíme to zahrnutím závislosti mikrometra-registra-prometheusa:

 io.mikrometer mikrometer-register-prometheus 

Týmto sa vytvorí nový koncový bod aktuátora, ktorý produkuje údaje metrík v špeciálnom formáte, ktorému Prometheus rozumie.

Ďalej musíme nakonfigurovať Prometheus tak, aby dopytoval našu aplikáciu pridaním požadovanej konfigurácie do a prometheus.yml spis.

Nasledujúca konfigurácia dáva pokyn spoločnosti Prometheus, aby dopytovala našu aplikáciu každých 5 sekúnd pomocou nového koncového bodu aktuátora:

scrape_configs: - job_name: 'spring-aktuator' metrics_path: '/ aktuator / prometheus' scrape_interval: 5s static_configs: - ciele: ['127.0.0.1:8080']

Nakoniec môžeme spustiť lokálny server Prometheus pomocou Dockeru. To predpokladá, že náš vlastný konfiguračný súbor je umiestnený v lokálnom súbore /etc/prometheus/prometheus.yml:

docker run -d \ --name = prometheus \ -p 9090: 9090 \ -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \ prom / prometheus \ --config.file = / etc / prometheus / prometheus.yml

Spoločnosť Prometheus poskytuje vlastný vizualizačný nástroj na prezeranie zhromaždených metrík. Je k nim prístup na webovej adrese // localhost: 9090 /.

2.3. Grafit

Grafit je ďalšia open-source databáza časových radov. Jeho architektúra je o niečo komplikovanejšia ako v iných databázach, ktoré sme sledovali, ale s Dockerom je jednoduché spustiť inštanciu lokálne:

docker run -d \ --name graphite \ --restart = always \ -p 80:80 \ -p 2003-2004: 2003-2004 \ -p 2023-2024: 2023-2024 \ -p 8125: 8125 / udp \ -p 8126: 8126 \ graphiteapp / graphite-statsd

Potom môžeme nakonfigurovať Spring Boot tak, aby publikoval metriky v našej inštancii pridaním závislosti mikrometra-registra-grafitu:

 io.mikrometer mikrometer-register-grafit 

Rovnako ako pridanie konfiguračných vlastností do application.properties:

management.metrics.export.graphite.host = 127.0.0.1 management.metrics.export.graphite.port = 2004

Rovnako ako Prometheus, aj Graphite obsahuje vlastný vizuálny informačný panel. Je k dispozícii na webovej adrese // localhost /.

3. Vizualizačné nástroje

Keď budeme mať riešenie na ukladanie metrík mimo našu aplikáciu Spring Boot, ďalším rozhodnutím je, ako chceme údaje vizualizovať.

Niektoré z vyššie spomenutých databáz metrík obsahujú vlastné vizualizačné nástroje. Existuje samostatný vizualizačný nástroj, ktorý stojí za to vyhľadať naše monitorovacie riešenie, ktoré je hosťom samo.

3.1. Grafana

Grafana je analytický a monitorovací nástroj otvoreného zdroja. Môže sa pripojiť ku všetkým vyššie uvedeným databázam, ako aj k mnohým ďalším.

Grafana všeobecne poskytuje lepšiu konfiguráciu a lepšie varovanie ako väčšina vstavaných vizualizačných nástrojov. Dá sa ľahko rozšíriť pomocou doplnkov a existuje veľa vopred pripravených dashboardov, ktoré je možné importovať a rýchlo tak vytvoriť naše vlastné vizualizácie.

Ak chceme Grafanu spustiť lokálne, môžeme ju spustiť pomocou Dockeru:

docker run -d -p 3000: 3000 grafana / grafana

Teraz môžeme prejsť na domovskú stránku Grafana na adrese URL // localhost: 3000 /.

V tomto okamihu by sme museli nakonfigurovať jeden alebo viac zdrojov údajov. Môže to byť ktorákoľvek z metrických databáz, o ktorých sme hovorili vyššie, alebo celý rad ďalších podporovaných nástrojov.

Po nakonfigurovaní zdroja údajov môžeme vytvoriť nový informačný panel alebo importovať panel, ktorý robí to, čo chceme.

4. Záver

V tomto článku sme sa zaoberali vytváraním monitorovacieho riešenia pre hostiteľa pre aplikácie Spring Boot.

Pozreli sme sa na tri metrické databázy, ktoré Spring Boot ľahko podporuje, a zistili sme, ako ich spustiť lokálne.

Krátko sme sa pozreli aj na Grafanu, výkonný vizualizačný nástroj, ktorý dokáže zobraziť údaje metrík z rôznych zdrojov.


$config[zx-auto] not found$config[zx-overlay] not found