SPIKE: Monitorering af RabbitMQ-køer

Overordnet beskrivelse:
Vi ser ofte fejl i RabbitMQ i form af, at mange beskeder pludseligt fejler og ophober sig på køer, og andre gange ser vi, at køer helt stopper med at aftages fordi en EventReceiver er gået i stå. Uanset problemet, er det en udfordring, når vi ikke opdager disse fejl med det samme, da oprydningsarbejdet vokser eksponentielt. Vi vil gerne have undersøgt, om vi kan lave en form for overvågning af køerne, som vi fx kunne præsentere på build-matricen eller lignende.

Der er flere steder disse informationer kunne hentes ud fra. Vi kan anvende RabbitMQ's api direkte, hvor vi kan spørge på, hvor mange beskeder der ligger på de forskellige køer. Vi kan også trække data fra loggen, hvor vi kan se, præcist, hvor mange beskeder, der er konsumeret på de forskellige køer.

Målgruppe: FA og Udvikler

Reference: https://starwiki.atlassian.net/browse/DS-12697

Forfatter: Mads Kongsbak

Teknisk analyse:

Analysen er blevet foretaget ved at brainstorme mellem Joel, Mads, og Thomas, og ved også at undersøge nogle af mulighederne nærmere. Der er blevet besluttet at uddrage dataen fra RabbitMQ’s eget api direkte, siden loggen kan gøre servicen langsom. RabbitMQ’s eget api indeholder alle informationer, som skal til, for at kunne lave en fyldestgørende løsning. Dette gøres ved hjælp af /api/overview, som indeholder queue_totals, som er summeringen af de totale mængder beskeder på alle køerne. Det er også muligt at gøre godt af message_stats, som indeholder informationer såsom mængden af published/consumed beskeder mm. Api’et kan findes her: RabbitMQ Api

Oversigten skal ligges i build-matricen, mellem blokkene som fremviser WSRM-validering og WikiUploaderen. For at gøre plads, kan man fjerne noget bredde på WRSM-validerings blokken, og dertil gøre plads til en ny blok, hvorpå RabbitMQ informationerne kan findes.

Oversigten skal indeholde PROD, T3, T4, T11, og T12. Disse miljøer er valgt, da de er primære test miljøer for de to næste releases, og er derfor de mest relevante ifht. at finde relevante bugs. Oversigten skal indeholde den totale mængde beskeder på alle køerne i miljøet, som ikke er konsumeret, samt mængden af fejl på alle køerne på det miljø. Desuden skal køerne color codes, så >300 fejl bliver gult, og >500 fejl bliver rødt. Disse tal er ikke fastlagt, kun et foreslag.

Skifte over løsningen