Sha256: b30deb0a7545d7efe1ea9348a6972e7bb3d8fc5b4fe7991302ca22783d14b1a9
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
require "zabbix-ruby-client/logger" module ZabbixRubyClient module Plugins module Mysqlcommand extend self def collect(*args) host = args.delete app = args.delete mysqldb = args.delete mysqlargs = args.delete mysqlcommand = "mysql #{mysqlargs} -s --skip-column-names -e \"%s\" #{mysqldb}" back = [] Hash[*args].each do |name, command| time = Time.now.to_i comm = sprintf(mysqlcommand, command.gsub(/"/,'\"')) res = `#{comm}` if $?.to_i == 0 if name[0] == "_" res.each_line do |line| label, value = line,split("\t") back << "#{host} app.#{app}[#{name[1..-1]},#{label}] #{time} #{value}" end elsif name[/,/] res = res.split("\t") name.split(',').each_with_index do |n, i| back << "#{host} app.#{app}[#{n}] #{time} #{res[i]}" end else back << "#{host} app.#{app}[#{name}] #{time} #{res}" end else Log.warn "The connection failed." return [] end end return back end end end end ZabbixRubyClient::Plugins.register('mysqlcommand', ZabbixRubyClient::Plugins::Mysqlcommand)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
zabbix-ruby-client-0.0.22 | lib/zabbix-ruby-client/plugins/mysqlcommand.rb |