Why EcoPing just got so much better in v4

Find out why we've been making some large backend changes to help you answer some core question about website carbon emissions.

Posted on

A few months ago we realized we have failed to answer a few important questions in our goal to help you reduce your website carbon emissions. Questions like:

  • How much CO2 does my website produce in a day, week, month or year?
  • How much CO2 has my team saved whilst using EcoPing?
  • What is the impact of EcoPing from running so many daily pings?

Some pretty core questions. Ones that got a bit waylaid whilst adding helpful features to visualize your website changing over time and the actions you can take to improve them.

Truth is running large queries has been a bit difficult for us; a real bottleneck. Running small Mongo aggregations on a few sites wasn't too tricky, but as EcoPing has grown (which is awesome) we now ping over 2500 sites per day it got slower and more frustrating.

So after finding that these Mongo aggregations a bit gross and frustrating we decided to swap it out for PostgreSQL. During this process we also started migrating our Node.js API over to Go; a much more performant replacement.

With our swish new API and database we've found writing good ol' SQL to be much easier with better documentation and real-world examples. Its allows us to query and aggregate data in a much easier way, improving our developer experience. And, take some requests from few seconds down to hundreds of seconds.

We've also made a new table to store pre-computed site information for different time periods. It's a bit like caching certain requests but allows for a faster UI, especially around the competitor analysis graphs.

This has been quite a big bit of unseen refactoring. Something that has lead to some great unexpected perks. Perks like feeling much more confident handling thousands more sites. Increased stability across the backend. The opportunity to query and share our lovely data with you. One of my favorites has been integrating with Grafana to produce interactive dashboard view for us to see ping/site errors, ping queue lengths and the amount of servers we're running.

All of this work helps us to answer the core questions we have and will be answering these with new blog posts in the up coming weeks. So stay tuned!

Thanks for reading,

Dryden

Back to blog
🚀 On a mission to reduce the carbon footprint of the Internet! 🌎
EcoPing logo - tracking website carbon emissionsbeta

© EcoPing 2020-2024