iDeal, yet another Prometheus exporter

Remember Black Friday? iDeal had a hard time keeping up with all those shops throwing transactions at them — both online and offline.

At wehkamp, we value metrics. We value data. If we’re going to make decisions, we’re going to need something to support it with. Something we can use to validate the outcome and something that can help us while validating the outcome of version next. So when iDeal was going mad that day, we wanted it to be visible in our systems. We couldn’t do a thing about it, but at least then we knew. Later that night, our very own prometheus-ideal-exporter was born, happily scraping away against ideal-status.nl. Now we had insights into the success rates of all major issuers. Achievement unlocked.

Now fast forward to today:

Awesome.

All that was needed was this simple promql query:

sum(ideal_issuer_successes_total) by (bank_code, bank_name)

The legend shows a list of issuers and their success rates. With Friesland Bank going strong at 0% for quite some time already, but all of a sudden there is a clear drop visible: ABN Amro Bank.

Now that we’ve got all this data, the possibilities are endless!

Let’s begin with sending an alert to the checkout developers’ Slack channel, just so they know something is up with iDeal. Or even better, let’s put a Slack message in #sre so the entire SRE crew is aware.

And what if we used this metric as input for our checkout service? Imagine us using this data to pro-actively inform the customer that the issuer of choice is currently having issues and that we can offer them a different payment option instead? What if we use this data to inform customer service about issues with a certain issuer, or have it auto-play when customers try and reach us through the phone? Or make it pop-up when they’re using our mobile app?

The code is on our GitHub, obviously in a Docker container and tailored to our environment — but you get the point, it’s all just Python.

Just know this: it all begins with having the data :)


Thank you for taking the time to reading this story! If you enjoyed reading this story, clap for me by clicking the 👏🏻 below so other people will see this here on Medium.

Also, I work at Wehkamp.nl one of the biggest e-commerce companies of 🇳🇱
We do have a Tech blog, check it out and subscribe if you want to read more stories like this one. Or look at our job offers if you are looking for a great job!