class MetricsInflux::Module::SysNetStat

Public Class Methods

new(config, params = {}) click to toggle source
# File lib/metrics_influx/module/sysnetstat.rb, line 7
def initialize(config, params = {})
  @config = config
  @config['stats'] ||= %w(rx_packets rx_bytes rx_errors tx_packets tx_bytes tx_errors)
  @config['interfaces'] ||= Dir.glob('/sys/class/net/*').map { |f| File.basename f }
  @params = params
end

Public Instance Methods

sample() click to toggle source
# File lib/metrics_influx/module/sysnetstat.rb, line 14
def sample
  @config['interfaces'].map do |intf|
    data = { time: Time.now.to_i }
    @config['stats'].each do |k|
      v = File.read("/sys/class/net/#{intf}/statistics/#{k}").chomp
      data["#{intf}_#{k}"] = v.to_i
    end
    data
  end
end