Sha256: 2df60767ed0ab7b1f4d10a191e94b828d3ad2f13b5140c68a8bc995e2ff335dc
Contents?: true
Size: 1.47 KB
Versions: 14
Compression:
Stored size: 1.47 KB
Contents
#!/usr/bin/env ruby # frozen_string_literal: true # # RabbitMQ Exchange Metrics # === # # DESCRIPTION: # This plugin gathers by default all the available exchange metrics. # The list of gathered metrics can also be specified with an option # # Code mostly copied from metrics-rabbitmq-queue # # PLATFORMS: # Linux, BSD, Solaris # # DEPENDENCIES: # RabbitMQ rabbitmq_management plugin # gem: sensu-plugin # gem: carrot-top # # LICENSE: # Copyright 2017 Romain Thouvenin <romain@thouvenin.pro> # # Released under the same terms as Sensu (the MIT license); see LICENSE # for details. require 'sensu-plugins-rabbitmq' # main plugin class class RabbitMQExchangeMetrics < Sensu::Plugin::RabbitMQ::Metrics option :filter, description: 'Regular expression for filtering exchanges', long: '--filter REGEX' option :metrics, description: 'Regular expression for filtering metrics in each exchange', long: '--metrics REGEX' def run timestamp = Time.now.to_i acquire_rabbitmq_info(:exchanges).each do |exchange| if config[:filter] next unless exchange['name'].match(config[:filter]) end metrics = dotted_keys(exchange) metrics.each do |metric| if config[:metrics] next unless metric.match(config[:metrics]) end value = exchange.dig(*metric.split('.')) output("#{config[:scheme]}.#{exchange['name']}.#{metric}", value, timestamp) unless value.nil? end end ok end end
Version data entries
14 entries across 14 versions & 1 rubygems