
Dat we zoveel mogelijk moeten thuiswerken, betekende gelukkig niet dat de Discovery Day werd afgelast. Ook in het najaar van 2020 beten verschillende Pratorians zich een dag lang (digitaal) vast in een topic om ermee te experimenteren. Eén van de vier deelnemende groepen richtte zich op de APM functionaliteit in de ELK stack. Waarom ze dat deden? Bij Prato dragen we klanttevredenheid hoog in het vaandel. Daarom willen we op ieder moment een duidelijk zicht hebben op de load- en responstijden waar de eindgebruikers van onze applicaties mee te maken hebben.
Uiteraard kunnen we deze functionaliteit toevoegen via eigen code, of we kunnen gebruik maken van libraries zoals MiniProfiler. Maar we kozen er tijdens deze Discovery Day voor om met de APM (application performance monitoring) functionaliteit binnen de ELK Stack te experimenteren. Wat biedt de ELK stack aan en hoe krijgen we dit aan de praat binnen onze eigen omgeving? Onze Pratorians zochten het grondig uit.
Maar eerst wat technische informatie voor wie niet helemaal thuis is in alle afkortingen en functionaliteiten. “ELK” is het acroniem voor drie open source-projecten: Elasticsearch, Logstash en Kibana. Elasticsearch is een zoek- en analyse-engine. Logstash is een systeem voor gegevensverwerking aan de serverzijde die gegevens uit meerdere bronnen tegelijk opneemt, transformeert en vervolgens naar een “stash” zoals Elasticsearch stuurt. Met Kibana kunnen gebruikers gegevens visualiseren met tabellen en grafieken in Elasticsearch.
Gemakkelijk prestatieproblemen opsporen
Elastic APM is een systeem gebouwd op de ELK Stack voor het monitoren van applicatieprestaties. Hiermee kunnen we softwareservices en -toepassingen in realtime volgen door gedetailleerde prestatie-informatie te verzamelen over reactietijd voor inkomende verzoeken, databasequery’s, oproepen naar caches, externe HTTP-verzoeken en meer. Met andere woorden, APM software geeft inzicht in prestaties, beschikbaarheid en gebruikservaring van een applicatie. Dit maakt het gemakkelijk om prestatieproblemen op te sporen en snel op te lossen.
Niels: “ELK gebruiken we bij Prato al drie jaar, om al onze logging in te doen. De database is Elasticsearch en via Kibana zien we wat feitelijk is gelogd. We gebruiken dat vanuit Earnie en PratoFlex als er een incident is gebeurd om dat terug te zoeken. Die Elastic Stack heeft nog een heleboel andere modules, zoals APM. Ons doel was om uit te zoeken of dat een bruikbare en nuttige tool voor ons is.”
Ronny: “Om de APM aan de praat te krijgen, moesten we één extra component installeren. Wat dat eigenlijk doet is de prestatiegegevens die vanuit de applicaties verstuurd worden in het juiste formaat wegschrijven in de Elasticsearch database. De installatie ging van een leien dakje. We hoefden dus niet nog van alles te configureren. Na de installatie werkte dat gewoon.”
Meten en staven
Niels: “Met Elastic APM zie je duidelijk hoe laat een request is binnengekomen, hoe lang het heeft geduurd, welke databasequery’s er zijn uitgevoerd. Het geeft dus diepte-inzicht rond requests. Daardoor kunnen we ook beter meten en staven als bijvoorbeeld een klant belt om te vertellen dat iets langer duurt dan normaal. We kunnen dan namelijk controleren of dat echt zo is en waar het probleem zit. We kunnen veel preciezer en gerichter zoeken en daardoor klantvragen beter beantwoorden.”
Elastic APM geeft dus gedetailleerd inzicht. Dat maakt het bijvoorbeeld ook mogelijk om simpelweg naar het afgelopen uur te kijken. Welke requests hebben zich afgespeeld? Wat was de gemiddelde tijdsduur per request (zoals bijvoorbeeld een loonberekening)? Wat nam het meeste tijd in beslag? “Om sommige dingen te onderzoeken moesten wel customisaties geschreven worden, maar dat ging heel gemakkelijk. Wat ook mooi is meegenomen, is dat de out of the box ondersteuning heel groot is. En het laatste voordeel is dat het gratis is.”
Jan: “We kunnen met APM nog veel verder gaan, het kan nog veel meer deuren openen. Tijdens de Discovery Day hebben we maar een heel klein stukje van de functionaliteiten kunnen onderzoeken. Wij zijn in ieder geval enthousiast en hopen dat we het gaan blijven gebruiken.”
Benieuwd naar de andere topics waarmee onze Pratorians al geëxperimenteerd hebben tijdens een Discovery Day? Ontdek het hier.