Prometheus Teknisk overblik

Indblik i overvågningsløsningen

Prometheus er primært skrevet i Go - et nyere programmeringssprog som opstod i 2009, 3 år før Prometheus blev skabt. Følgende er en skitse af Prometheus' primære komponenter:



Figur 1 - Simpel skitse af Prometheus og to 'targets'

I dette eksempel ses to target-servere, der hver kører en arbitrær applikation. På hver server er også en eksporter, som er skrevet specifikt til applikationen. Eksporteren er bindeledet mellem applikationen og Prometheus, og har til job at samle information fra applikationen og oversætte det til Prometheus-læsbar information, som vist på den generelle side om Prometheus. Typisk kan en applikation præsentere noget drifts-information i et JSON format, som eksporteren vil læse og oversætte til en .prom fil som eksponeres på en port via en simpel HTTP-server. På denne port ville Prometheus så kunne 'scrape' fra serveren og skrive det målte data til en tidsserie database med et tidstempel.

Foruden applikations-specifikke eksportere, findes der også eksporterer som ikke er applikations-specifikke, men derimod samler information om selve serveren - f.eks. CPU og RAM forbrug, diskplads, netværksinfo m.m. Disse kaldes for hardware / OS metrics og et eksempel på en særdeles populær eksporter af denne type er Prometheus's egen Node Exporter. Typisk anbefales det, at der installeres en hardware / OS eksporter på alle produktions-servere, således at server helbreds- og driftsinfo kan gemmes og tilgås centralt, og advarsler kan fremsendes hvis en maskine skulle fejle. Et simpel monitorerings-setup som dette, kan spare et firma for mange overraskelser og hovedpiner.