Uitgebreide performance monitoring met New Relic

Gerrit de Graaf

27 februari 2019

Speed performance meter

De software van New Relic is al enkele jaren bij Enrise in gebruik om de performance van applicaties te monitoren en indien nodig te troubleshooten. Onlangs kregen we een uitnodiging van New Relic om onze kennis uit te breiden door het volgen van de training Certified Performance Pro. Onder leiding van de charismatische Tom Doherty werden we door de diverse sleuteleigenschappen van New Relic geleid. We willen onze kennis graag met jullie delen door het geven van een overzicht van de op de training behandelde key features van New Relic.

bron: newrelic.com

Over New Relic

New Relic is software waarmee de performance van een applicatie gemeten (gemonitord) kan worden. Veel andere monitoring software checkt vooral de beschikbaarheid van een applicatie, maar met New Relic kun je een diepgaande check doen op de prestaties van de je applicatie. Denk daarbij aan problematische processen op de server, langzame queries maar ook mogelijke fouten in de broncode die een vertraging in de applicatie tot gevolg hebben. New Relic is beschikbaar voor applicaties die gebouwd zijn met de volgende software

  • Go;
  • Java;
  • .NET;
  • Node.js;
  • PHP;
  • Python;
  • Ruby;

Installatie New Relic

De installatie van New Relic is een eitje. Binnen de webomgeving van New Relic maak je een nieuwe instantie aan en vervolgens kun je door middel van een aantal command line instructies de software op de betreffende server installeren en binnen 5 minuten zie je de eerste data verschijnen. Vervolgens wordt deze data elke minuut ververst met de laatste info.

Service maps

Vergeet het urenlang modellen met een UML-tool. Met New Relic kun je een automatisch gegenereerd overzicht van de structuur van je applicatie krijgen door middel van de functie Service Maps. Dit overzicht laat de connecties en afhankelijkheden van je applicatie zien, inclusief databases en externe services. Daarnaast kun je voor elk stukje van je applicatie ook gelijk de operationele status inzien.

Bron: blog.newrelic.com

Key Transactions

Door het instellen van key transactions kun je bepaalde transacties van je applicatie extra uitlichten. Een transactie is een logical unit in een software applicatie, in de meeste gevallen een webtransactie zoals een request die naar de server gestuurd wordt. Transacties die belangrijk zijn voor je business kun je aanmerken als key transactions en op die manier extra aandacht geven door er een prestatie-waarde (Apdex) aan te geven en er bepaalde alerts voor in te stellen.

Apdex

Apdex is de industriestandaard om de gebruikerstevredenheid aangaande de responsetijd van een webapplicatie of -service te meten. Je zou het kunnen zien als een mini-SLA oplossing om te bepalen hoe tevreden gebruikers zijn met je applicatie.

Als eigenaar bepaal je een bepaalde tijdstreshold T. Alle verzoeken behandeld binnen T of sneller leveren tevreden gebruikers op. Als T gesteld wordt op 1,2 seconden en een request voltooid in 0,5 seconden, dan is de gebruiker tevreden. De Apdex waardeert de response op 3 niveaus:

  • Satisfied: de responsetijd is kleiner dan of gelijk aan T
  • Tolerating: de responsetijd is groter dan T maar kleiner dan of gelijk aan 4x T
  • Frustrated: de responsetijd is groter dan 4x T

De Apdex score is dan een verhoudingswaarde van het aantal verzoeken die satisfied of tolerating zijn ten opzichte van het totale aantal verzoeken. Een satisfied verzoek telt dan als één verzoek en een tolerating verzoek als een halve. Dit levert dan een score op tussen 0 en 1.

Bron: docs.newrelic.com

Deployment markers

Met deployment markers kun je aangeven wanneer er belangrijke wijzigingen in je applicatie zijn geweest. Dit verschijnt dan als een markering in de grafieken en je kunt de deployments ook overzichtelijk bij elkaar zien op een overzichtspagina. Het toevoegen van deployment markers kan via de REST API.

Privacy

Als gebruiker van New Relic heb je zelf vergaande controle over de welke informatie er allemaal naar New Relic gestuurd wordt. Met de high security mode kun je o.a. een https connectie afdwingen en sql-parameters zoals gebruikers-id’s verbergen. Je kunt deze inschakelen in de configuratiefile van de agent.

Alerts

Het is natuurlijk fijn dat je met New Relic performanceproblemen kunt troubleshooten, maar nog beter is het als je direct op de hoogte wordt gesteld als een probleem zich voordoet of dreigt voor te doen. Met Alerts kun je door middel van het instellen van policies bepalen wanneer er notificaties verzonden worden en wie die krijgt.

REST API

Met de uitgebreide REST API die New Relic biedt kun je data vanuit New Relic ophalen en manipuleren. Je kunt hiermee bijvoorbeeld:

  • Deployments vastleggen
  • De apdex data ophalen
  • Het gemiddelde CPU gebruik per host bekijken
  • De gemiddelde responsetijd opvragen

Dit stelt je in staat om deze data op andere plekken weer in te zetten, bijvoorbeeld op een dashboard van je applicatie.

Certificatie

Enrise heeft op moment van schrijven drie New Relic Certified Application Performance Pro’s in huis die je kunnen helpen met het opzetten van Application Performance Monitoring of het analyseren van de data. Heb jij een probleem met de prestaties van je applicatie of wil je deze voorkomen? Neem dan contact op met onze salesafdeling.