class Flapjack::Data::Metrics
Public Class Methods
jsonapi_associations()
click to toggle source
# File lib/flapjack/data/metrics.rb, line 189 def self.jsonapi_associations @jsonapi_associations ||= {} end
jsonapi_methods()
click to toggle source
# File lib/flapjack/data/metrics.rb, line 179 def self.jsonapi_methods @jsonapi_methods ||= { :get => Flapjack::Gateways::JSONAPI::Data::MethodDescriptor.new( :attributes => [:total_keys, :processed_events, :event_queue_length, :check_freshness, :check_counts], :description => "Get global metrics and event counter values." ) } end
swagger_included_classes()
click to toggle source
# File lib/flapjack/data/metrics.rb, line 174 def self.swagger_included_classes # hack -- hardcoding for now [] end
Public Instance Methods
check_counts()
click to toggle source
# File lib/flapjack/data/metrics.rb, line 64 def check_counts { :all => Flapjack::Data::Check.count, :enabled => Flapjack::Data::Check.intersect(:enabled => true).count, :failing => Flapjack::Data::Check.intersect(:failing => true).count } end
check_freshness()
click to toggle source
# File lib/flapjack/data/metrics.rb, line 38 def check_freshness ages = [0, 60, 300, 900, 3600] start_time = Time.now current_checks = Flapjack::Data::Check.intersect(:enabled => true).all skeleton = {} ages.each {|a| skeleton[a] = 0 } age_ranges = ages.reverse.each_cons(2) current_checks.each_with_object(skeleton) do |check, memo| current_state = check.current_state last_update = current_state.nil? ? nil : current_state.updated_at next if last_update.nil? check_age = start_time - last_update check_age = 0 unless check_age > 0 if check_age >= ages.last memo[ages.last] += 1 else age_range = age_ranges.detect {|a, b| (check_age < a) && (check_age >= b) } memo[age_range.last] += 1 unless age_range.nil? end end end
event_queue_length()
click to toggle source
# File lib/flapjack/data/metrics.rb, line 23 def event_queue_length Flapjack.redis.llen('events') end
processed_events()
click to toggle source
# File lib/flapjack/data/metrics.rb, line 27 def processed_events global_stats = Flapjack::Data::Statistic. intersect(:instance_name => 'global').all.first [:all_events, :ok_events, :failure_events, :action_events, :invalid_events].each_with_object({}) do |event_type, memo| memo[event_type] = global_stats.nil? ? 0 : global_stats.send(event_type) end end
total_keys()
click to toggle source
# File lib/flapjack/data/metrics.rb, line 19 def total_keys Flapjack.redis.dbsize end