0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Little library written to make interacting with the stashboard api a bit easier.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0.6.4

Runtime

>= 0.4.4
>= 0.8.1
 Project Readme

Updated Stashboard gem Gem Version Build Status

Simple little ruby library for interacting with a Stashboard instance (http://www.stashboard.org.

Stashboard is a Python application designed to be run on the Google App Engine, which provides a system status type page for your application similar to the status pages offered by Amazon AWS, or Google Apps.

This library doesn't address setting up your Stashboard instance, but simplifies interacting with it from Ruby.

This is an updated version of the stashboard gem from Sam Mulbe, with fixes from Brian Stolz. This new gem has been created to implement some much-needed updates, as the previous gem is no longer being actively maintained.

I've tried to add some extra set-up instructions to the below usage to help beginners aswell.

Setup

### 1. Download the SDK Download the latest Python SDK for Google App Engine.

### 2. Get the project Download and extract the Stashboard project to your computer.

### 3. Run Locally Open the SDK, choose

File > Add Existing Application...

Navigate to:

Project folder > stashboard

Select open, press Run and navigate to http://localhost:{port} to see your Stashboard installation.

4. Deploy to AppSpot

4.1. Sign up for an AppSpot account.

4.2. Create an application within AppSpot - specifying Python as the language.

4.3. Update your app.yaml file (within the local project folder) and change the application-id to the name of your newly created application.

4.4. Hit the 'Deploy' button, wait a couple of seconds, and then navigate to http://{app-name}.appspot.com to enjoy your new status dashboard

Usage

Into your Gemfile add the line

gem "stashboard-ruby"

Inside of your project, first create a new Stashboard

stashboard = Stashboard::Stashboard.new("https://your-app.appspot.com", "<stashboard_oauth_token>", "<stashboard_oauth_secret>")

To receive an array of services:

stashboard.services
=begin
 =>  [
        {
          "description"=>"Mail Service", 
          "url"=>"https://YOURAPP.appspot.com/api/v1/services/mail-service", 
          "list"=>{
            "url"=>"https://YOURAPP.appspot.com/api/v1/service-lists/application-services", 
            "description"=>"The main services that run the application", 
            "name"=>"Application Services", 
            "id"=>"application-services"
          }, 
          "current-event"=>nil, 
          "id"=>"mail-service", 
          "name"=>"Mail Service"
        }, 
        {
          "description"=>"PDF Cleaner", 
          "url"=>"https://YOURAPP.appspot.com/api/v1/services/pdf-cleaner", 
          "list"=>{
            "url"=>"https://YOURAPP.appspot.com/api/v1/service-lists/helper-services", 
            "description"=>"The little bits that help without being part of the app itself", 
            "name"=>"Helper Services", "id"=>"helper-services"
          }, 
          "current-event"=>nil, 
          "id"=>"pdf-cleaner", 
          "name"=>"PDF Cleaner"
        }, 
        {
          "description"=>"Website service",
          "url"=>"https://YOURAPP.appspot.com/api/v1/services/website", 
          "current-event"=>{
            "status"=>{
              "description"=>"The service is up", 
              "level"=>"NORMAL", 
              "default"=>true, 
              "image"=>"https://YOURAPP.appspot.com/images/icons/iconic/check_alt.png", 
              "url"=>"https://YOURAPP.appspot.com/api/v1/statuses/up", 
              "id"=>"up", 
              "name"=>"Up"
            }, 
            "url"=>"https://YOURAPP.appspot.com/api/v1/services/website/events/ag5zfnBsYW5ocS1zdGF0c3ISCxIFRXZlbnQYgICAgN6QwQsM", 
            "timestamp"=>"Mon, 28 Apr 2014 14:48:16 GMT", 
            "sid"=>"ag5zfnBsYW5ocS1zdGF0c3ISCxIFRXZlbnQYgICAgN6QwQsM", 
            "message"=>"Web server running A-OK", 
            "informational"=>false
          },
          "id"=>"website", 
          "name"=>"Website"
        }
      ]
=end

To receive an array of service ids:

stashboard.service_ids
# =>  ["mail-service", "pdf-cleaner", "website"]

To get details of a service based on it's id:

stashboard.service("website")
=begin
 =>  {
        "description"=>"Website service",
        "url"=>"https://YOURAPP.appspot.com/api/v1/services/website", 
        "current-event"=>{
          "status"=>{
            "description"=>"The service is up", 
            "level"=>"NORMAL", 
            "default"=>true, 
            "image"=>"https://YOURAPP.appspot.com/images/icons/iconic/check_alt.png", 
            "url"=>"https://YOURAPP.appspot.com/api/v1/statuses/up", 
            "id"=>"up", 
            "name"=>"Up"
          }, 
          "url"=>"https://YOURAPP.appspot.com/api/v1/services/website/events/ag5zfnBsYW5ocS1zdGF0c3ISCxIFRXZlbnQYgICAgN6QwQsM", 
          "timestamp"=>"Mon, 28 Apr 2014 14:48:16 GMT", 
          "sid"=>"ag5zfnBsYW5ocS1zdGF0c3ISCxIFRXZlbnQYgICAgN6QwQsM", 
          "message"=>"Web server running A-OK", 
          "informational"=>false
        },
        "id"=>"website", 
        "name"=>"Website"
      }
=end

To generate an event for a service:

#                       Service    Status  Message
stashboard.create_event("website", "down", "Server unavailable, attempting to restart")

# FAQs Here are some of the frequesntly asked questions about this project ### Where do I get my oauth token and secret? Once you have deployed your application onto AppSpot, you will need to run the 'setup' at http://{app-name}.appspot.com/admin once that is done, there is an 'credentials' link that has them both there.