class StatusPageIO::Reporter
Attributes
api_base[RW]
api_key[RW]
error_metric_id[RW]
metric_id[RW]
page_id[RW]
redis_url[RW]
request_metric_id[RW]
Public Class Methods
new() { |self| ... }
click to toggle source
# File lib/status_page/reporter.rb, line 19 def initialize yield(self) @redis = Redis.new(url: redis_url ) end
report(&config)
click to toggle source
# File lib/status_page/reporter.rb, line 14 def self.report(&config) reporter = new(&config) reporter.report end
Public Instance Methods
post_request(metric_id, metrics={})
click to toggle source
# File lib/status_page/reporter.rb, line 51 def post_request(metric_id, metrics={}) HTTParty.post( "#{@api_base}/pages/#{@page_id}/metrics/#{metric_id}/data.json", headers: { 'Authorization' => "OAuth #{@api_key}", }, body: { data: metrics } ) end
report()
click to toggle source
# File lib/status_page/reporter.rb, line 24 def report report_errors report_requests end
report_errors()
click to toggle source
# File lib/status_page/reporter.rb, line 40 def report_errors metric_hash = { timestamp: Time.now.to_i, value: @redis.get('error_count') } post_request(@error_metric_id, metric_hash) @redis.set('error_count', 0) end
report_requests()
click to toggle source
# File lib/status_page/reporter.rb, line 29 def report_requests metric_hash = { timestamp: Time.now.to_i, value: @redis.get('request_count') } post_request @request_metric_id, metric_hash @redis.set('request_count', 0) end