Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yegor256/sixnines
Website Availability Monitor: add your website to our dashboard and get 24x7 monitoring of its availability (and a badge!)
https://github.com/yegor256/sixnines
availability hosted monitoring ruby
Last synced: 3 months ago
JSON representation
Website Availability Monitor: add your website to our dashboard and get 24x7 monitoring of its availability (and a badge!)
- Host: GitHub
- URL: https://github.com/yegor256/sixnines
- Owner: yegor256
- License: mit
- Created: 2017-03-10T19:48:30.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-03-05T11:22:30.000Z (11 months ago)
- Last Synced: 2024-05-01T23:12:24.264Z (9 months ago)
- Topics: availability, hosted, monitoring, ruby
- Language: Ruby
- Homepage: https://www.sixnines.io
- Size: 629 KB
- Stars: 70
- Watchers: 5
- Forks: 10
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
[![Managed by Zerocracy](https://www.0crat.com/badge/C6MATTB7E.svg)](https://www.0crat.com/p/C6MATTB7E)
[![DevOps By Rultor.com](http://www.rultor.com/b/yegor256/sixnines)](http://www.rultor.com/p/yegor256/sixnines)
[![We recommend RubyMine](https://www.elegantobjects.org/rubymine.svg)](https://www.jetbrains.com/ruby/)[![rake](https://github.com/yegor256/sixnines/actions/workflows/rake.yml/badge.svg)](https://github.com/yegor256/sixnines/actions/workflows/rake.yml)
[![PDD status](http://www.0pdd.com/svg?name=yegor256/sixnines)](http://www.0pdd.com/p?name=yegor256/sixnines)
[![Maintainability](https://api.codeclimate.com/v1/badges/c3b56d829753998ee405/maintainability)](https://codeclimate.com/github/yegor256/sixnines/maintainability)
[![Hits-of-Code](https://hitsofcode.com/github/yegor256/sixnines)](https://hitsofcode.com/view/github/yegor256/sixnines)
![Lines of code](https://img.shields.io/tokei/lines/github/yegor256/sixnines)
[![codecov](https://codecov.io/gh/yegor256/sixnines/branch/master/graph/badge.svg)](https://codecov.io/gh/yegor256/sixnines)[![Availability at SixNines](https://www.sixnines.io/b/9ccc)](https://www.sixnines.io/h/9ccc)
[SixNines](https://www.sixnines.io) is a hosted service to validate
and prove availability of your web service and sites.Read this blog post for more details:
[_SixNines.io, Your Website Availability Monitor_](http://www.yegor256.com/2017/04/25/sixnines.html).The badge is available as:
```
https://www.sixnines.io/b/5fa8?style=flat&format=png
```Here, the `style` parameter can be either `round` or `flat`.
The `format` parameter can be either `svg` (106x20) or `png` (424x80).This is how you put it in your `README` (in Markdown):
```
[![Availability at SixNines](https://www.sixnines.io/b/5fa8)](https://www.sixnines.io/h/5fa8)
```The badge you see above works exactly like that.
## DynamoDB Schema
The `sn-endpoints` table contains all registered end-points:
```
fields:
login/H: GitHub login of the owner
uri/R: URI of the endpoint, e.g. "http://www.google.com/?q=hello"
id: Unique ID of the endpoint
active: "yes" if it's alive, "no" otherwise
created: Epoch time number of when it was added
hostname: Host name of the URI, e.g. "google.com"
pings: Total amount of ping's we've done so far
failures: Total amount of failed attempts
state: Either "up" or "down"
updated: Epoch time of the most recent update of this record
flipped: Epoch time of recent state change
expires: Epoch time when it has to be pinged again
log: Detailed log of the most recent failure
favicon: URI of the favicon
sn-endpoints/unique: (index)
id/H
sn-endpoints/hostnames: (index)
active/H
hostname/R
sn-endpoints/flips: (index)
active/H
flipped/R
sn-endpoints/expires: (index)
active/H
expires/R
```The `sn-pings` table contains all recent pings:
```
fields:
uri/H: URI of the endpoint we pinged
time/R: Epoch time of ping
local: IP address where we were pinging from
remote: IP address of the endpoint we reached
msec: How many milliseconds it took
code: HTTP response code (2xx means success)
delete_on: TTL attribute for DynamoDB (when to delete this item)
```## How to contribute?
First, install
[Java 8+](https://java.com/en/download/),
[Maven 3.2+](https://maven.apache.org/),
[Ruby 2.3+](https://www.ruby-lang.org/en/documentation/installation/),
[Rubygems](https://rubygems.org/pages/download),
and
[Bundler](https://bundler.io/).
Then:```bash
$ bundle update
$ bundle exec rake --quiet
```The build has to be clean. If it's not, [submit an issue](https://github.com/zold-io/out/issues).
Then, make your changes, make sure the build is still clean,
and [submit a pull request](https://www.yegor256.com/2014/04/15/github-guidelines.html).In order to run a single test:
```bash
$ bundle exec rake run
```Then, in another terminal:
```bash
$ bundle exec ruby test/test_base.rb -n test_lists_flips
```Then, if you want to test the UI, open `http://localhost:9292` in your browser,
and login, if necessary, by adding `?glogin=tester` to the URL.