Giter Site home page Giter Site logo

upptime / upptime Goto Github PK

View Code? Open in Web Editor NEW
14.7K 95.0 826.0 644.47 MB

⬆️ GitHub Actions uptime monitor & status page by @AnandChowdhary

Home Page: https://upptime.js.org

License: MIT License

JSON 44.78% YAML 5.97% Markdown 49.25%
uptime uptime-monitor status statuspage incidents-reports upptime

upptime's Introduction

Upptime

Upptime (https://upptime.js.org) is the open-source uptime monitor and status page, powered entirely by GitHub Actions, Issues, and Pages. It's made with 💚 by Anand Chowdhary, supported by Pabio.

I find Upptime an incredible clever usage of [GitHub Actions]. You essentially get a free configurable uptime monitor for whatever you want. – CSS Tricks

Upptime is used by 1,000+ people and teams to ensure they know when their endpoints go down.

Uptime CI Response Time CI Graphs CI Static Site CI Summary CI

📈 Live Status: 🟧 Partial outage

URL Status History Response Time Uptime
Google 🟩 Up google.yml
Response time graph 152ms
Response time 106
24-hour response time 153
7-day response time 152
30-day response time 114
1-year response time 110
100.00%All-time uptime 100.00%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 99.99%
Wikipedia 🟩 Up wikipedia.yml
Response time graph 175ms
Response time 240
24-hour response time 372
7-day response time 175
30-day response time 174
1-year response time 245
100.00%All-time uptime 100.00%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 100.00%
Hacker News 🟩 Up hacker-news.yml
Response time graph 242ms
Response time 407
24-hour response time 429
7-day response time 242
30-day response time 245
1-year response time 436
100.00%All-time uptime 98.56%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 99.94%
Test Broken Site 🟥 Down test-broken-site.yml
Response time graph 0ms
Response time 0
24-hour response time 0
7-day response time 0
30-day response time 0
1-year response time 0
0.00%All-time uptime 0.00%
24-hour uptime 0.00%
7-day uptime 0.00%
30-day uptime 0.00%
1-year uptime 0.00%
IPv6 test 🟥 Down i-pv6-test.yml
Response time graph 0ms
Response time 4
24-hour response time 0
7-day response time 0
30-day response time 0
1-year response time 4
0.00%All-time uptime 0.03%
24-hour uptime 0.00%
7-day uptime 0.00%
30-day uptime 0.00%
1-year uptime 0.03%

⭐ How it works

  • GitHub Actions is used as an uptime monitor
    • Every 5 minutes, a workflow visits your website to make sure it's up
    • Response time is recorded every 6 hours and committed to git
    • Graphs of response time are generated every day
  • GitHub Issues is used for incident reports
    • An issue is opened if an endpoint is down
    • People from your team are assigned to the issue
    • Incidents reports are posted as issue comments
    • Issues are locked so non-members cannot comment on them
    • Issues are closed automatically when your site comes back up
    • Slack notifications are sent on updates
  • GitHub Pages is used for the status website
    • A simple, beautiful, and accessible PWA is generated
    • Built with Svelte and Sapper
    • Fetches data from this repository using the GitHub API

Upptime is not affiliated to or endorsed by GitHub.

Screenshot of status website

👩‍💻 Documentation

  1. How it works
  2. Getting started
  3. Configuration
  4. Triggers
  5. Notifications
  6. Badges
  7. Packages
  8. Contributing
  9. Frequently Asked Questions

Concepts

Issues as incidents

When the GitHub Actions workflow detects that one of your URLs is down, it automatically opens a GitHub issue (example issue #67). You can add incident reports to this issue by adding comments. When your site comes back up, the issue will be closed automatically as well.

Screenshot of GitHub issue Screenshot of incident page

Commits for response time

Four times per day, another workflow runs and records the response time of your websites. This data is committed to GitHub, so it's available in the commit history of each file (example commit history). Then, the GitHub API is used to graph the response time history of each endpoint and to track when a site went down.

Screenshot of GitHub commits Screenshot of live status

📄 License

upptime's People

Contributors

adamus1red avatar anandchowdhary avatar andre601 avatar andreruffert avatar animmouse avatar compugenius-programs avatar dependabot[bot] avatar dsogo avatar fredster33 avatar github-actions[bot] avatar hamidzr avatar hans5958 avatar itxtoledo avatar lissy93 avatar pabio-escobar avatar peterfortuin avatar semantic-release-bot avatar singingwolfboy avatar timbze avatar upptime-bot avatar vrumger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

upptime's Issues

bug: uptime 0%

uptime seems to be always at 0%

image

image

This started happening today.

Error: Unable to find workflow 'Graphs CI' in pavelloz/instances-uptime 😥

Well, this is weird :)

I just created another instance to monitor another set of pages and for some reason this is what I get on Setup CI workflow:

Error: Unable to find workflow 'Graphs CI' in pavelloz/instances-uptime 😥

https://github.com/pavelloz/instances-uptime/runs/1421583962?check_suite_focus=true#step:6:6

Im pretty sure i have Graphs CI workflow as I did not touch it
image

I did one mistake but i dont know if it can have any impact: I have run workflow first time before I created GH_PAT, so maybe state somewhere was saved and now order of workflows is not correct.

Anyway - Just like a previous time i will just start from scratch (and it will work!), but i think there is some fragile part of those workflows (my guess is: their communication with each other) that breaks them if something is run in the not optimal order (like missing secret, or missing directories, which i had to create by hand :) )

Those directories are suspicious - Everytime i cleaned them up (leaving empty directory for git means they are not commited), something went wrong. I had to create them by hand, add .keep to commit them. Maybe script should detect if there is dir and then try to save to file, instead of throwing error that history/xx.yml is not present etc.

ICMP Monitoring

I was wondering if it's possible to monitor ICMP response times, instead of HTTP response times. Also, would it be possible to disable showing the response times altogether?

Problem on the link on github pages

image

there is two slashes(//) in the link, and page desn't load correctly.
It there is only one slash(/) it loads correctly, but page look like it has two of it.
https://$username.github.io/#repo//history/$name needs to be corrected to : https://$username.github.io/#repo/history/$name

Customize the webpage

Hello koj team & @AnandChowdhary , I have a instance of upptime running, my site is at here and it looks like it shows at below that This page is open source, powered by Upptime and I don't love this last part. Also the icon of the website stays the same old upptime logo instead of the one I wrote in config. So therefore I want to change the website source code, so can I know where do I need to change it?

error: failed to push some refs to 'https://'

I just initialized a new repo step by step as you describe it on your "Getting started" page but I get the following error after configuring:

#################################################
Changing directory to 'BUILD_DIR' site/status-page/__sapper__/export/ ...
#################################################
Now deploying to GitHub Pages...
Initialized empty Git repository in /github/workspace/site/status-page/__sapper__/export/.git/
[master (root-commit) 88ec494] Deploy to GitHub Pages
 39 files changed, 310 insertions(+)
 create mode 100644 404.html
 create mode 100644 client/[number]-7cdb9800.css
 create mode 100644 client/[number]-e7104239.css
 create mode 100644 client/[number].caf9d810.js
 create mode 100644 client/[number].e27ddac1.js
 create mode 100644 client/client-9c935b61.css
 create mode 100644 client/client.62c09633.js
 create mode 100644 client/createOctokit-777bf8f6.css
 create mode 100644 client/createOctokit.d581d69f.js
 create mode 100644 client/error-a44b661b.css
 create mode 100644 client/error.d7e1380d.js
 create mode 100644 client/index-87d8f7e9.css
 create mode 100644 client/index.2e47f3a3.js
 create mode 100644 client/inject_styles.5607aec6.js
 create mode 100644 client/legacy/[number]-7cdb9800.css
 create mode 100644 client/legacy/[number]-e7104239.css
 create mode 100644 client/legacy/[number].1cb27cfd.js
 create mode 100644 client/legacy/[number].b5c7560e.js
 create mode 100644 client/legacy/client-9c935b61.css
 create mode 100644 client/legacy/client.47447cf6.js
 create mode 100644 client/legacy/createOctokit-777bf8f6.css
 create mode 100644 client/legacy/createOctokit.0ef5b617.js
 create mode 100644 client/legacy/error-a44b661b.css
 create mode 100644 client/legacy/error.a8913989.js
 create mode 100644 client/legacy/index-87d8f7e9.css
 create mode 100644 client/legacy/index.794c9a83.js
 create mode 100644 client/legacy/inject_styles.fe622066.js
 create mode 100644 client/legacy/rate-limit-exceeded-e1b7a1b3.css
 create mode 100644 client/legacy/rate-limit-exceeded.33101f17.js
 create mode 100644 client/rate-limit-exceeded-e1b7a1b3.css
 create mode 100644 client/rate-limit-exceeded.db390e5b.js
 create mode 100644 client/[email protected]
 create mode 100644 global.css
 create mode 100644 index.html
 create mode 100644 logo-192.png
 create mode 100644 logo-512.png
 create mode 100644 manifest.json
 create mode 100644 service-worker-index.html
 create mode 100644 service-worker.js
error: src refspec ***@github.com/TomlDev/uptime-saufwaelder.git does not match any
error: failed to push some refs to 'https://'

Disable Dark Theme

Hi,
I was looking through the documentation, but didn't notice an option in the configuration to disable the dark theme. Is this possible?

Upptime seemed still using Actions token despite GH_PAT is already supplied

Describe the bug

It seems that in some way, there is a piece of code that uses the token that is supplied by GitHub Actions, located on the GITHUB_TOKEN environment variable. I think so because after generating new Upptime repositories and setting their respective GH_PAT environment variable with my tokens on my other account, just because I want to avoid my contribution activity to be spammed with the updates.

It worked, mostly. Most of the commits are directed to my other account, but there is a single commit that is present on the contribution activity of my profile every day.

I'm not sure if this is intended or what, but I ever tried to change the tokens myself when it is 1.x, after I realized that my contribution activity is spammed with response time commits, and it works perfectly, no Upptime commits on this account.

To Reproduce

Steps to reproduce the behavior:

  1. Generate a repository using the template repository.
  2. Set the GH_PAT enviroment variable with the token from another account/collaborator, not the repository owner.
  3. Wait for commits to be pushed.
  4. Check the contribution activity on the other account's GitHub profile and click one of the latest day/box. Most of the commits are attributed to the other account. (intended)
  5. Check the contribution activity on the owner's GitHub profile and click one of the latest day/box. A single commit is present from the generated Upptime repository.

Expected behavior

There shouldn't be any commits from the generated Upptime repositories.

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Mozilla Firefox
  • Version 83.0

Additional context

Due to the nature that there is only one commit that are pushed every day, that means that it is caused by one of the daily workflows. I tried to investigate it, and it seems that it boils down into these three commits.

  • 🗃️ Update status summary [skip ci] [upptime]
  • 📝 Update summary in README [skip ci] [upptime]
  • 🍱 Update graphs [skip ci]

By correlating it with the workflows, it seems that it is caused by either the "Summary CI" or the "Graphs CI".

I have no way to confirm if this is right, so please investigate this further.

Can't Deploy to GH Pages

fatal: could not read Username for 'https://github.com': No such device or address

On the "Github Pages Deploy" stage I get the previous error. Do I need to configure some sort of deploy token? I see in the workflows file a GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} variable, but the readme for this repo makes me think that should be automatically set?

Error on GitHub Pages deploy step (w/ GitHub Organizations)

Ahoy,

I'm setting this up for a GitHub Organization, the repo for which is here. For some reason, the GitHub Pages Deploy step always produces this error, regardless of which action is performing it.

error: src refspec ***@github.com/severnbronies/status.git does not match any
error: failed to push some refs to 'https://'

Is there some extra setup needed to get Upptime working with GitHub Organizations? Given orgs do not have Personal Access Tokens, I've used one generated on my personal account instead.

I've tried re-doing set up a few times with the same result, and my configuration isn't drastically different from the default (which is for an org), so I'm at a bit of a loss. Your help appreciated! Thanks!

could not read Username for 'https://github.com': terminal prompts disabled

Hey,

Im trying to set up Upptime for some of my sites but have some very weird messages coming from the static CI job ( https://github.com/pavelloz/upptime/runs/1419647547?check_suite_focus=true#step:3:29 ):

Fetching the repository
  /usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +7ff57fc91d084cbbdafc1bf8451edf963b35d197:refs/remotes/origin/master
  Error: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  The process '/usr/bin/git' failed with exit code 128
  Waiting 18 seconds before trying again
  /usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +7ff57fc91d084cbbdafc1bf8451edf963b35d197:refs/remotes/origin/master
  Error: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  The process '/usr/bin/git' failed with exit code 128
  Waiting 12 seconds before trying again
  /usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +7ff57fc91d084cbbdafc1bf8451edf963b35d197:refs/remotes/origin/master
  Error: fatal: could not read Username for 'https://github.com': terminal prompts disabled
  Error: The process '/usr/bin/git' failed with exit code 128

This is public repo, so i dont know why it needs username anyways.

Result of that is empty gh page: https://pavelloz.github.io/upptime/
And probably thats why badges of uptime are empty, because i get the same error in Setup CI workflow: https://github.com/pavelloz/upptime/runs/1419647511?check_suite_focus=true

Did i broke something using this config? https://github.com/pavelloz/upptime/blob/master/.upptimerc.yml
GH_TAP secret is of course set up, but maybe it needs more access rights (i selected repo, per documentation)?

Telegram notifications dont work with secret sites

The Telegram notification fails with the HTTP code 400 if a secret site is set up.

I checked the logs and it says:
"Bad Request: can't parse entities: Can't find end of the entity starting at byte offset 25".
Then I tried it again with a non-secret URL and it worked.

It seems like Telegram tries to parse the $ prefix of the environment variables and the _ in SECRET_SITE because of markdown enabled and it fails.

graphs not updating

screenshot:

image

I believe this is caused by the change in directory structure of graphs but the readme was not updated for this change?

old: /graphs/website.png
new: /graphs/website/response-time.png

Graphs issue

On my site https://snapwiki.github.io/SnapWikiUptime, the graphs are buggy. When you put your cursor over the dots on the graph "7-day response time", either nothing happens, or the spot that triggers it weirdly offset. This behavior is really annoying. Please fix this!

Update Template CI build failing

The Update Template CI is failing on the Setup Node.js step during the build.
image

This is due to GitHub deprecating a feature as explained here.

The issue was raised in the Setup Node action - actions/setup-node#212
It has been fixed in the latest version (i.e. v2.1.2)

Duplicate percentage on the status page

Hello ! Thank you for awesome this project.
I currently use uptime/uptime-monitor(2c02d16) and I found duplicate percentage string on the status page.

This seems to be due to the presence of duplicate % on the template side and the data side.

スクリーンショット 2020-11-23 17 05 01

Error while running Update Template CI (workflow scope required in PAT)

Hi,

I really like the idea behind this and have been running it for a couple days; thanks so much for putting this together. Over the weekend, one of the CI Actions failed:

https://github.com/richardtape/ubcupptime/runs/1443340141?check_suite_focus=true

In order to fix this I needed to issue a new PAT with both the repo AND workflow scopes (hinted at in the error linked above). May need a quick tweak to the docs, unless I have something wrong? If I'm being honest I don't recall there being a separate workflow scope when I first set this up, so maybe that's a new thing?

Happy to make a PR for the docs if the above is what is needed,

Rich

Clicking on graphs in website throws error

Clicking on the graphs shown in the example website throws an error. I would imagine the expected behavior to either not be a link, or to show a larger version of the graph.

JSON in body is not getting included

I am trying this in my yml file as described in the docs, I tried everything but nothing worked it's just sending empty body to the server.
I don't know why, please look into the issue

  - name: User Login Up
    method: POST
    url: https://untitled-21r9rlkgb6mq.runkit.sh
    headers:
      - "Content-Type: application/json; charset=utf-8"
    body: '{ "password": "hello" }'

I also tried quoting the strings but nothing worked in my runkit there is just

// listen for POST requests and respond based on that POSTed data
app.post("/", (req, res) => {

    console.log(req.body);
        
    return res.send({ message: `You posted ${JSON.stringify(req.body)}` });
});

It works properly with CURL but is not with this action
image

Here is what I get in my runkit logs
image

Error: Input required and not supplied: token

I keep getting an error at Actions check-out. Why am I getting an error when I input GH_PAT?

Run actions/[email protected]
  with:
    repository: r2fresh/chelsea
    ssh-strict: true
    persist-credentials: true
    clean: true
    fetch-depth: 1
    lfs: false
    submodules: false
Error: Input required and not supplied: token

500

How can I fix this error?

Cannot read property 'includes' of undefined

2020-11-17-21-30-32

"Back to all incidents" link on incident details page always leads to domain root

Ahoy!

On the deployed GitHub Pages site, the "Back to all incidents" link that appears at the bottom of the incident details page appears to always return to the site root, regardless of the baseUrl configuration option.

For example, the link on https://severnbronies.github.io/status/incident/1 points to https://severnbronies.github.io, when I would expect it to lead to https://severnbronies.github.io/status.

Not sure if related to my previous issues with getting set up (issue #61), but judging by the line of code responsible it seems like this would happen in any situation where baseUrl is used.

reversed graph direction

The response time graph seems to be inverted. yesterday's data point should be on the left and today's on the right (LTR reading direction). Is this intentional?

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.