Sha256: dafdbaa10d6903555dbeb84133fae90af297ee6524218680830fc711492bb0fb
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
require 'mackerel/client' require 'tilt/erubis' # tilt autoloading 'tilt/erubis' in a non thread-safe way; explicit require 'tilt/erubis' suggested. require 'norikra/logger' require 'norikra/listener' include Norikra::Log module Norikra module Listener class Mackerel < Norikra::Listener::Base def self.label 'MACKEREL' end 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}" @service, @prefix = @service.split('.', 2) end def process_async(events) metrics = [] events.each do |time, record| record.each do |k, v| if @prefix metrics.push({ time: time.to_i, name: @prefix + '.' + k, value: v }) else metrics.push({ time: time.to_i, name: k, value: v }) end 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 end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
norikra-listener-mackerel-0.1.1-java | lib/norikra/listener/mackerel.rb |