Class: Norikra::Listener::Mackerel
- Inherits:
-
Base
- Object
- Base
- Norikra::Listener::Mackerel
- Defined in:
- lib/norikra/listener/mackerel.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(argument, query_name, query_group) ⇒ Mackerel
constructor
A new instance of Mackerel.
- #process_async(events) ⇒ Object
Constructor Details
#initialize(argument, query_name, query_group) ⇒ Mackerel
Returns a new instance of Mackerel.
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/norikra/listener/mackerel.rb', line 15 def initialize(argument, query_name, query_group) super @service, api_key = argument.split(',', 2) api_key ||= ENV['MACKEREL_APIKEY'] raise Norikra::ArgumentError, "service name is not specified" unless @service raise Norikra::ArgumentError, "api_key is not specified" unless api_key @client = ::Mackerel::Client.new(:mackerel_api_key => api_key) debug "Initialized mackerel-client api_key:#{api_key}" end |
Class Method Details
.label ⇒ Object
11 12 13 |
# File 'lib/norikra/listener/mackerel.rb', line 11 def self.label 'MACKEREL' end |
Instance Method Details
#process_async(events) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/norikra/listener/mackerel.rb', line 27 def process_async(events) metrics = [] events.each do |time, record| record.each do |k, v| metrics.push({ time: time.to_i, name: k, value: v }) end end debug "post_service_metriccs(#{@service}, #{metrics})" begin @client.post_service_metrics(@service, metrics) rescue => e warn "post_service_metrics failed #{e}" end end |