aabounegm / cast

A podcast listening progressive web app with all-around automated quality assurance
https://cast-iu.pages.dev
MIT License
22 stars 2 forks source link

Configure uptime monitoring #47

Closed illright closed 2 years ago

illright commented 2 years ago

Use Upptime.

Acceptance criteria:

aabounegm commented 2 years ago

I'm a little confused about how to implement this. Their documentation says that I must create the repo from template, but I doubt that we need all of those folders (api, assets, graphs, history), and if they are required to be in the repo root, then this is just really ugly. On the other hand, when I check the defined workflows, it appears that all of the Actions there (and they are a lot) are autogenerated and I shouldn't touch them manually, but I couldn't generate them myself. When I tried the command from the repo it mentioned (npx @upptime/uptime-monitor), all I got was command not found: uptime-monitor. Any suggestions?

illright commented 2 years ago

Yeah, it's kinda messed up. This probably needs some more investigation. If you don't feel like it, maybe you could configure some other free uptime monitor?

aabounegm commented 2 years ago

I checked a few other tools, such as the following:

However, none of them provided a nice integration with GitHub Issues or Pages or badges. Most of them host their own status page and send emails (or Slack messages or otherwise) when the website is down.

I also went through the documentation of Upptime, but couldn't find a way to customize the root folder or branch to operate on, which means that the best option is to have a dedicated repo for that (I don't wanna litter our main repo with automated commits every 5 mins), but it just doesn't feel like it's worth it. I think we either write our own custom solution or just drop it altogether.

illright commented 2 years ago

However, none of them provided a nice integration with GitHub Issues or Pages or badges.

That's not a problem, those acceptance criteria were written with Upptime in mind. If we're not using it, it's fine to receive alerts in Telegram and have a dedicated status page that's not running on GitHub Pages

I think we either write our own custom solution

Was actually thinking about it, but I certainly don't feel like doing it within this project

aabounegm commented 2 years ago

those acceptance criteria were written with Upptime in mind

I understand, but they were still nice-to-haves. Without them, we don't really have anything to show on our README (which is the frontpage). Also, we are using CloudFlare Pages, which are supposed to have ~100% uptime anyway, so with nothing to show off on the presentation, it just becomes useless, imo.

Vote 💧 if you think we should drop this, or ⬆️ if you think we should still add uptime monitoring (ugh, no custom emojis as a reaction) Vote 👍 on this comment if you think we should drop this, or 🚀 if you think we should still add uptime monitoring

illright commented 2 years ago

with nothing to show off on the presentation

A beautiful status page with 100% uptime is quite the something to show off on the presentation

VanishMax commented 2 years ago

@illright @aabounegm I've played for a while with different Upptime configurations and other tools, and I agree with @aabounegm that the only option to use Upptime is with the separate repo.

However, I have create a demo private repo and added this GitHub workflow with the action:

image

Having this, we can add the badge:

image

I know this is not the "Uptime: 100%" badge, but supposedly there are no good integrations with GitHub actions. I would appreciate if you explain how can we integrate external services like "UptimeRobot" into our project.

Also, notice the "Log success/failure" jobs in the workflow. We could use it to do custom behaviour for checking the uptime. If you have any ideas, feel free to add them here.

illright commented 2 years ago

I would appreciate if you explain how can we integrate external services like "UptimeRobot" into our project.

I just signed up, I see that there's an option to create a monitor by specifying the URL. There's also a free status page that can be linked to the monitor. I just created one for example, right here — https://stats.uptimerobot.com/NnXDYFZ5zq

It's capable of e-mail notifications for incidents (maybe something else too, I didn't explore). As for badges — also needs some exploration, maybe there are badges exported by this service.

Hit me up if you need advice on how to set up this Uptime Robot yourself (or feel free to just use this status page that I created)