Coder Social home page Coder Social logo

statusdashboard's Introduction

Status Dashboard

Status Dashboard is status page for your configured services or applications.

Demo @ Heroku : http://statusdashboard-node.herokuapp.com

Screenshots

Installation

Optionally, you can install as a global package

Roadmap

  • Improve UI: scrollbars, filters, check type column, ...
  • Add network services like SMTP, POP3, ...
  • Improve REST API to get / push data ...

How To Use

As an application

Add your entry in settings.js.

settings['xxx'] = {
...
};
  • export APP_ENV=demo
  • ./bin/statusdashboard

You can override settings with an external settings for private information like passwords, ..

  • vi ~/.statusdashboard/settings.js
exports.create = function() {
  var appSettings = {
    port: 8081,
    services: [{
      name: 'FTP Local',
      password: 'xxx'
    }]
  };
  return appSettings;
};
}
  • export APP_SETTINGS=~/.statusdashboard/settings.js

As a node module

`` var dashboard = require('statusdashboard').dashboard(settings);

``

Code

dashboard.api.addService(serviceObject)

Add a new service to be checked

dashboard.api.removeService(ServiceName)

Remove a service to be checked

dashboard.api.startChecking

Start the scheduled checks. Automatically is started by default when instanciating dashboard

dashboard.api.stopChecking

Stop the scheduled checks

dashboard.api.getStatus()

Return the current status of checked services

All other calls available in api.js are to be used at your own risk. You have been warned

Service

Daemon init script for node.js: https://gist.github.com/1123553

Plugins

Some plugins are available out-of-the-box:

  • Console
  • Graphite, send service state in Graphite
  • Heartbeat
  • History, save service state in Redis (Thanks to sreeix initial pull request) and graph it!
  • IRC bot
  • Mail
  • Twitter
  • Webhook

REST API

  • List services
$ curl http://127.0.0.1:8080/api/services
{"last":"Fri, 17 Jun 2011 22:33:03 GMT","services":[{"name":"couchdb","label":"Couchdb server @ local","status":"up","statusCode":200,"message":""},{"name":"bazoud.free.fr","label":"Olivier Bazoud blog","status":"up","statusCode":200,"message":""},{"name":"bazoud.free.fr","label":"Olivier Bazoud blog test.php","status":"up","statusCode":200,"message":""},{"name":"redis","label":"Redis server @ local","status":"up","statusCode":0,"message":""},{"name":"FTP Local","label":"Ftp @ local","status":"down","statusCode":0,"message":"ECONNREFUSED, Connection refused"},{"name":"PID file","label":"Pid @ local","status":"unknown","statusCode":9,"message":"EBADF, Bad file descriptor '/tmp/terminal.pid'"}],"lastupdate":"Fri, 17 Jun 2011 22:33:08 GMT","summarize":{"lastupdate":"Fri, 17 Jun 2011 22:33:08 GMT","up":3,"critical":0,"down":1,"unknown":2}}
  • Retrieve a specific service
$ curl http://127.0.0.1:8080/api/services/couchdb
{"name":"couchdb","label":"Couchdb server @ local","status":"up","statusCode":200,"message":""}
  • Retrieve a summary
$ curl http://127.0.0.1:8080/api/summarize
{"up":4,"critical":0,"down":1,"unknown":1}
  • Version of application
$ curl -iX GET http://127.0.0.1:8080/api/version
{"commit":"641b97cbcfdc53b1b2b825d588afe08e412471d4","author":"obazoud","committer":"obazoud","date":"Fri, 12 Aug 2011 10:15:27 GMT"}
  • And plugin can contribute to statusdashboard REST API
$ curl http://127.0.0.1:8080/api/history/service/couchdb
["{\"time\":1310024374699,\"status\":\"up\",\"message\":\"\",\"code\":200}","{\"time\":1310024379591,\"status\":\"up\",\"message\":\"\",\"code\":200}", ...]

Early adopters

status.exoplatform.org

  • IRC Plugin screenshot @ exoplatform

In the news

statusdashboard's People

Contributors

obazoud avatar stelcheck avatar sreeix avatar chamerling avatar aheritier avatar koelnconcert avatar vbehar avatar brandonhamilton avatar blakmatrix avatar

Watchers

Michael avatar James Cloos avatar

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.