class Mysqlcollector::Influxdb
Public Class Methods
new()
click to toggle source
# File lib/mysqlcollector/influxdb.rb, line 5 def initialize @influx = InfluxDB::Client.new(host: $config[:influx_host], database: $config[:influx_database], username: $config[:influx_user], password: $config[:influx_password], retry: 10) end
Public Instance Methods
data(type, metrics, instance)
click to toggle source
# File lib/mysqlcollector/influxdb.rb, line 22 def data(type, metrics, instance) # Validate a variable metrics has values on array? return nil if type.nil? return nil if instance.nil? return nil if metrics.nil? return nil if metrics.count == 0 return nil unless metrics.is_a?(Array) # Send value: values = [] metrics.each do |metric, value| if value.is_number? values << { series: type, values: { value: Float(value) }, tags: { metric: metric, instance: instance } } Mysqlcollector::Log.new.debug("InfluxDB Values: #{values.last}"); end end values end
send(type, metrics)
click to toggle source
# File lib/mysqlcollector/influxdb.rb, line 47 def send(type, metrics) metrics = vacuum(metrics) metrics = data(type, metrics, $config[:alias]) return nil unless metrics.is_a?(Array) @influx.write_points(metrics) rescue Exception => error Mysqlcollector::Log.new.error(error.message) end
vacuum(values)
click to toggle source
# File lib/mysqlcollector/influxdb.rb, line 13 def vacuum(values) # Validate it is array and have values? return nil if values.nil? return nil unless values.is_a?(Array) # Remove empty variable on array of array: values.reject{ |a| a.all? {|e| e.nil? || e.strip.empty? }} end