Giter Club home page Giter Club logo

sixnines's Introduction

logo

Managed by Zerocracy DevOps By Rultor.com We recommend RubyMine

rake PDD status Maintainability Hits-of-Code Lines of code codecov

Availability at SixNines

SixNines 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.

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+, Maven 3.2+, Ruby 2.3+, Rubygems, and Bundler. Then:

$ bundle update
$ bundle exec rake --quiet

The build has to be clean. If it's not, submit an issue.

Then, make your changes, make sure the build is still clean, and submit a pull request.

In order to run a single test:

$ bundle exec rake run

Then, in another terminal:

$ 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.

sixnines's People

Contributors

dependabot[bot] avatar maxbugaenko avatar pdacostaporto avatar rultor avatar yegor256 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

Watchers

 avatar  avatar  avatar  avatar  avatar

sixnines's Issues

multiple source points

Let's add a few more servers, where we can ping endpoints from. When connection fails, we should try to do it from another server, two times. Only if they both fail, we report a failure.

pulse

Let's show our current rate of pinging endpoints, to make sure we're alive. Let's just increment some global counter and show that counter on the front page. Let's update it via JavaScript, every second.

caching

We make too many DynamoDB requests. Let's introduce a simple in-memory caching layer for most intensive requests.

email subscribe to endpoints

A user should be able to subscribe to any endpoint and receive emails when the status changes. By default endpoint owner must be subscribed.

AMP pages

Let's add AMP pages for all history pages.

cookie.rb:29-31: We are not encrypting cooking anyhow...

The puzzle 1-e122d8f8 in objects/cookie.rb (lines 29-31) has to be resolved: We are not encrypting cooking anyhow at the moment and this is not secure at all. Let's introduce some encryption mechanism with a secret key.

The puzzle was created by Yegor Bugayenko on 07-Apr-17.

Estimate: 30 minutes, role: IMP.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD.

sitemap.xml

Let's create it for Google and others (together with robots.txt)

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.