Veelvoorkomende problemen met datastromen

André Engels, DevOps Engineer

Datastromen zijn gegevens (data) die van het ene punt in het systeem naar een ander punt in een systeem worden gestuurd middels een verbinding. Ze zijn cruciaal om ervoor te zorgen dat de data vanuit de bron correct ontsloten wordt en uiteindelijk de benodigde inzichten kan opleveren.

Helaas gebeurt het nog regelmatig dat er zich problemen voordoen met datastromen. Datastromen kunnen onverhoopt uitvallen. Ook is er een situatie mogelijk waarin datastromen slechts een deel van de data bevatten zonder dat je ervan op de hoogte bent. Je wilt natuurlijk proactief datastromen inzichtelijk krijgen en niet achteraf van klanten of gebruikers te horen krijgen dat het niet goed is. Het is daarom van belang om een goed inzicht te hebben in de datastromen die in je organisatie aanwezig zijn, en of deze nog ‘gezond’ zijn.

Bij Hendrikx ITC werken we dagelijks met veel (complexe) datastromen en ontdekken wij regelmatig dit soort problemen bij onze cliënten. Gelukkig is er altijd een oplossing en delen we graag met jullie meer informatie over oorzaken van datastroomproblemen en hoe dit voorkomen kan worden.

Wat kan datastroomproblemen veroorzaken?

  1. Problemen aan de bron

Het kan zijn dat de basisdata van buitenaf moet komen, en om welke reden dan ook, niet of te laat binnenkomt. Het kan ook zijn dat de data wel binnenkomt, maar dat er iets in het formaat van de data is veranderd. Zo hadden wij bij Hendrikx ITC recentelijk het geval dat data die voorheen als losse files binnenkwam, samengevoegd en in een tar-archief werd aangeleverd.

2. Interne problemen

Ook intern kan het gemakkelijk voorkomen dat het formaat van data wordt veranderd. Een op het oog onschuldige wijziging, zoals het veranderen van het datatype van een kolom in een database, kan verdere verwerking in de weg staan, en leiden tot lege datastromen of processen die geheel uitvallen.

Het monitoren van datastromen

Om problemen met datastromen op te kunnen lossen is het in de eerste plaats nodig om deze problemen inzichtelijk te maken. Bij Hendrikx ITC gebruiken we hiervoor Prometheus en Grafana. Dit zijn open-source oplossingen. Prometheus monitort metrics van ons systeem, waaronder de aanwezigheid en volledigheid van datastromen, zowel ingaand, intern en uitgaand. Grafana maakt deze metrics op een eenvoudige doch krachtige wijze inzichtelijk in grafieken. Het creëert ook alerts wanneer de metrics bepaalde thresholds, bijvoorbeeld mininum- of maximumwaarden, overschrijdt.

Om te zien of er problemen zijn, moet de datastroom op het juiste punt bekeken worden. Het gaat bijvoorbeeld verkeerd als men wel kijkt of de te verzenden data aanwezig is, maar niet of deze daadwerkelijk verzonden is. Als de problemen in het verzendingsproces liggen, bijvoorbeeld doordat dat proces geen rechten heeft op de databasetabel die het moet uitlezen, dan worden deze niet gevonden. Dit kan worden opgelost door het proces dat de metrics naar Prometheus schrijft een subproces te laten zijn van het proces dat de data verzendt. Het is natuurlijk ook mogelijk om er nog wat slimmer mee om te gaan. Je kan via het subproces een deviatie (afwijking) detecteren. Hier kunnen dan slimme triggers worden ingesteld.

Wil je meer weten over het inzichtelijk maken van systemen en netwerken met behulp van metrics?

Op 25 november 2021 11:00 gaan wij met een webinar naast de basics ook in op slimme toepassingen van metrics. Inschrijven is gratis en kan door hier te klikken.