Skip to content

Comment on Upptime – GitHub-powered open-source uptime monitor and status page

Comments

Maker here, I made Upptime as a way to scratch my own itch... I wanted a nice status page for Koj (https://status.koj.co) and was previously using Uptime Robot which didn't allow much customization to the website.

It started with the idea of using GitHub issues for incident reports and using the GitHub API to populate the status page. The obvious next step was opening the issues automatically, so the uptime monitor was born. I love using GitHub Actions in interesting ways (https://github.blog/2020-08-13-github-actions-karuna/) and have made it a large part of my toolkit!

https://news.ycombinator.com/item?id=25557032 mentions "~3000 minutes per month". GitLab's new pricing structure: [(runner_minutes, usd_per_month), (400, $0), (2_000, $4), (10_000, $19), (50_000, $99)]

You can run a self-hosted GitHub or GitLab Runner with your own resources: https://docs.github.com/en/free-pro-team@latest/actions/host...

GitLab [Runner] also runs tasks on cron schedules.

The process invocation overhead for CI is greater than for a typical metrics collection process like a nagios check or a memory-resident daemon like collectd with the curl plugin and the "Write HTTP" plugin (if you're not into using a space and time efficient timeseries database for metrics storage)

An open source project with a $5/mo VPS could run collectd in a container with a config file far far more energy efficiently than this approach.

Collectd curl statistics: https://collectd.org/documentation/manpages/collectd.conf.5....

Collect list of plugins: https://collectd.org/wiki/index.php/Table_of_Plugins

Is there a good way to do {DNS, curl HTTP, curl JSON} stats with Prometheus (instead of e.g. collectd as a minimal approach)?

Interesting idea, and props for well-executed landing page at Koj!

Personally I’m way of relying on GHA too much (I have a suspicion they might start introducing restrictions), but if it works it works.

I see you’re also using TypeScript, so I’m definitely taking a long look at your github-actions-starter (thanks for sharing).

Interesting idea, and props for well-executed landing page at Koj!

Thanks so much! This isn't Koj's "Show HN" (expect that soon!), but we're doing some interesting stuff, both tech- and "home and living"-wise. Happy to hear any additional feedback for koj.co as well!

I have a suspicion they might start introducing restrictions

I definitely think so, unlimited minutes for all public repos can only be sustainable with many many paid orgs buying expensive minutes. If restrictions kick in, I think I'll keep the "GitHub issues to status page" part of Upptime and have some integrations with self-hosted monitors or third-party services that then open those GitHub issues automatically.

I see you’re also using TypeScript, so I’m definitely taking a long look at your github-actions-starter (thanks for sharing).

Enjoy! We're using Svelte and TypeScript everywhere at Koj, we also have some other starters here if you're interested: https://github.com/koj-co.

Wondering, do you have a sort of vocabulary of all the emojis you use in commit messages, or it’s more inspiration-based?

Interesting project and great docs!

Can you point out the code responsible for executing the http connection? If it at all modularized, I'd like to plugin code for a different kind of check.

(Are you thinking of supporting customized checks through plugins?)

This is where the `curl` happens: https://github.com/upptime/uptime-monitor/blob/master/src/he...

It is utilized by this function here: https://github.com/upptime/uptime-monitor/blob/master/src/up...

If you're thinking about different checks, perhaps you can explore this too? I have no idea where to start... https://github.com/upptime/upptime/discussions/73

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.