Project

redphone

0.03
Repository is archived
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
A rubygem for talking to monitoring service APIs
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

>= 0

Runtime

>= 0
 Project Readme

Redphone, the monitoring service ruby library

  • Pagerduty support (integration, incidents)
  • Pingdom support (checks, results, actions)
  • Loggly support (event, search, facets)
  • StatusPage support (incidents, components)

https://github.com/portertech/redphone/raw/master/redphone.jpg

  • All API request are done over SSL
  • Response bodies are returned as Ruby hashes

Getting started

gem install redphone

Examples

Pagerduty

require "redphone/pagerduty"
pagerduty = Redphone::Pagerduty.new(
  :service_key => SERVICE_KEY,
  :subdomain => SUBDOMAIN,
  :user => USER,
  :password => PASSWORD
)

Trigger an incident

pagerduty.trigger_incident(
  :description => "Testing Redphone Rubygem",
  :incident_key => "redphone/test"
)
# OR Redphone::Pagerduty.trigger_incident()

Resolve an incident

pagerduty.resolve_incident(:incident_key => "redphone/test")
# OR Redphone::Pagerduty.resolve_incident()

List/query current and past incidents

pagerduty.incidents(:incident_key => "redphone/test")

You can add the following options for a date range

:since => "2011-08-01",
:until => "2011-10-01"

Or if you only care about unresolved incidents

:status => "triggered,acknowledged"

Pingdom

require "redphone/pingdom"
pingdom = Redphone::Pingdom.new(
  :user => USER,
  :password => PASSWORD
)

Create a check

response = pingdom.create_check(
  :name => "redphone",
  :host => "www.amazon.ca",
  :type => "http"
)
check_id = response['check']['id']

Delete a check

pingdom.delete_check(:id => check_id)

Loggly

require "redphone/loggly"
loggly = Redphone::Loggly.new(
 :subdomain => SUBDOMAIN,
 :user => USER,
 :password => PASSWORD
)

Create an event

loggly.send_event(
  :input_key => INPUT_KEY,
  :input_type => "json",
  :event => {
    :service => "redphone",
    :message => "test"
  }
)
# OR Redphone::Loggly.send_event()

Search for previous event occurrences

loggly.search(:q => "json.service:redphone")

Faceted search results on date

loggly.facets(:q => "json.service:redphone")

Add an option for faceted search results on input name

:facet_type => "input"

Or on IP address

:facet_type => "ip"

You can add the following options for a date range

:from => "2011-08-01T12:00:00Z",
:until => "2011-10-01T12:00:00Z"

StatusPage.io

require "redphone/statuspage"
statuspage = Redphone::Statuspage.new(
  :page_id => PAGE_ID,
  :api_key => API_KEY
)

Create a realtime incident

response = statuspage.create_realtime_incident(
  :name => "testing",
  :status => "identified",
  :wants_twitter_update => "t",
  :message => "testing message"
)

Update an incident

incident_id = response["id"]
statuspage.update_incident(
  :name => "testing",
  :status => "resolved",
  :wants_twitter_update => "t"
  :incident_id => incident_id
)

Delete an incident

statuspage.delete_incident(
  :incident_id => incident_id
)

Update a component status

statuspage.update_component(
  :component_id => COMPONENT_ID,
  :status => "major_outage"
)

Contributors