GraphQL.cz/Fórum/Jaké metriky bych měl sbírat z GraphQL API pomocí Prometheus?

Jaké metriky bych měl sbírat z GraphQL API pomocí Prometheus?

Zdravím všechny, mám dotaz ohledně sledování metrik z mého GraphQL API pomocí Prometheus. Nedávno jsem začal experimentovat s tímto nástrojem a chtěl bych zjistit, jaké konkrétní metriky by bylo dobré sledovat, abych měl přehled o výkonu a stavu mé aplikace. Zajímá mě, jestli je dobré sledovat latenci jednotlivých dotazů, nebo je lepší zaměřit se na počet provedených dotazů v určitém časovém intervalu? Co třeba sledování chybovosti? Myslíte, že by mělo smysl měřit i dobu trvání resolverů, nebo to už je příliš detailní? Také bych rád věděl, zda někdo z vás už má nějakou osvědčenou praxi v implementaci těchto metrik v GraphQL a jaké nástroje a knihovny jste použili pro integraci s Prometheus. Co třeba exportéry? Jakým způsobem vlastně správně nastavit scraping, aby to nezatěžovalo server? Děkuji za každou radu a tipy, které mi pomohou lépe porozumět tomu, co všechno mohu z GraphQL API monitorovat.

144 slov
1.4 minut čtení
25. 1. 2023
Barbora Benešová

Sledování metrik z GraphQL API pomocí Prometheus je fajn nápad. Určitě bys měl začít s latencí jednotlivých dotazů, to ti dá dobrý pohled na to, jak rychle API reaguje. Měření doby trvání resolverů je taky super, i když to možná vypadá jako detail. Zjistíš tak, které části kódu brzdí výkon.

Dál bych doporučil sledovat počet provedených dotazů a počet chyb. To ti pomůže odhalit problémy s API a jestli se něco kazí. Můžeš zkusit i monitorovat využití paměti nebo CPU serveru, protože pokud máš velký traffic, může to být problém.

Co se týče implementace, tak já používám Apollo Server a prom-client pro export metrik do Prometheus. Je to docela jednoduché, stačí pár řádků kódu. S nastavením scrappingu buď opatrnej, aby ses nedostal do smyčky zatěžování serveru, zkus nastavit delší intervaly mezi scrappingy (třeba 30 sekund nebo víc), když máš hodně dat.

Celkově je dobré mít nějakou základní sadu metrik a pak sledovat, jak se vyvíjejí v čase. Jakmile něco vybočuje ze standardu, můžeš na to reagovat a ladit to.

166 slov
1.7 minut čtení
15. 7. 2024
Radka Švecová

Když chceš sledovat GraphQL API s Prometheus, tak rozhodně bys měl začít s latencí dotazů. To ti ukáže, jak dlouho trvá zpracování jednotlivých požadavků. Pojďme na to, co se týče chybovosti - měření chyb je taky klíčový, chceš mít přehled o tom, kolik dotazů skončí špatně. Rozhodně se zaměř na počet provedených dotazů, protože ti to dá představu o zátěži API.

Pokud máš složitější resolvery, tak měření doby trvání resolverů může být docela užitečný - to ti ukáže, kde může být úzké místo ve výkonu. Takže jo, není to moc detailní.

Co se týče implementace, klidně použij knihovny jako Apollo Server nebo express-graphql a zařiď si middleware pro sledování metrik. Exportéry pro Prometheus můžeš napsat i sám, ale třeba prom-client v Node.js by ti mohl usnadnit práci.

Scraping nastav tak, aby to bylo v nějakou rozumnou dobu, třeba jednou za 10-15 sekund, záleží na zátěži serveru. Nemusíš hned všechno sledovat pořád, začni s tím nejdůležitějším a pak přidávej další metriky podle potřeby.

162 slov
1.6 minut čtení
20. 11. 2024
Simona Špačková

Sledování metrik z GraphQL API pomocí Prometheus je dobrý nápad, hlavně pokud chceš mít přehled o výkonu a chybách. Určitě bys měl sledovat latenci jednotlivých dotazů, protože ti to ukáže, jak dlouho trvá zpracování. Počet provedených dotazů za časový interval taky není k zahození, pomůže ti to pochopit zatížení serveru.

Chybovost je další důležitá metrika, protože když ti něco nefunguje, chceš to rychle zjistit. Měření doby trvání resolverů může být užitečné, hlavně pokud máš nějaké náročné operace, ale může to být trochu detailní. Záleží na tom, kolik informací chceš sledovat.

K implementaci metrik doporučuji použít knihovny jako Apollo Server s integrovaným monitoringem nebo nějaký middleware na Express. Co se týče exportérů, tak ty můžeš napsat vlastní nebo využít existující jako prom-client pro Node.js.

Nastavení scrappingu je důležité - doporučuji nastavit intervaly na něco jako 15-30 sekund, aby to nezatěžovalo server. Můžeš taky přidat nějaké filtry pro konkrétní dotazy, které sleduješ. Hlavně se snaž udělat monitoring co nejefektivnější.

154 slov
1.5 minut čtení
24. 4. 2024
Eliška Růžičková
GraphQL.cz/Články/Monitoring GraphQL API
Využití Prometheus pro monitoring a metriky GraphQL APIPodrobný návod na nastavení Prometheus pro sledování výkonu vašeho GraphQL API, včetně tipů a triků pro efektivní sběr metrik.
1000 slov
10 minut čtení
4. 3. 2022
Richard Kolář
Přečíst článek
Podobné otázky