We've been using UptimeRobot for this purpose for a number of years. Generally happy. Just something to keep in mind is that we've found their keyword check very handy, and in fact use it more than the status code check. That is, it looks to see if a word (or words) of our choosing are being rendered and pings us know if not. Some of our environments will serve a default 200, but it might not be for the page we hoped for (e.g., a default nginx page after a reboot).
I do like the open source option you've provided though. As I said, we've been using UptimeRobot for years and currently use it for around 50 sites. I fear if/when they change their pricing tiers.