class SimpleApm::Redis

Public Class Methods

clear_data(date_str) click to toggle source
# File lib/simple_apm/redis.rb, line 52
def clear_data(date_str)
  return {success: false, msg: '当日没有数据'} unless in_apm_days.include?(date_str)
  keys = SimpleApm::Redis.keys("#{date_str}:*")
  {success: true, msg: SimpleApm::Redis.del(keys)}
end
clear_data_before_time(date) click to toggle source

清理指定日期之前的数据

# File lib/simple_apm/redis.rb, line 44
def clear_data_before_time(date)
  i = 0
  SimpleApm::Redis.in_apm_days.each do |d|
    SimpleApm::Redis.clear_data(d) and i+=1 if Time.parse(d) <= date
  end
  i
end
in_apm_days() click to toggle source

所有统计的日期,通过hits来判断

# File lib/simple_apm/redis.rb, line 39
def in_apm_days
  SimpleApm::Redis.keys('*:action-names').map{|x|x.split(':').first}.sort.reverse
end
instance() click to toggle source
# File lib/simple_apm/redis.rb, line 7
def instance
  @current ||= ::Redis::Namespace.new(
    "simple_apm:#{SimpleApm::Setting::APP_NAME}",
    :redis => ::Redis.new(
      url: SimpleApm::Setting::REDIS_URL,
      driver: SimpleApm::Setting::REDIS_DRIVER
    )
  )
end
method_missing(method, *args) click to toggle source
Calls superclass method
# File lib/simple_apm/redis.rb, line 73
def method_missing(method, *args)
  instance.send(method, *args)
rescue NoMethodError
  super(method, *args)
end
rerun!() click to toggle source
# File lib/simple_apm/redis.rb, line 64
def rerun!
  hset('status', 'running', true)
end
running?() click to toggle source
# File lib/simple_apm/redis.rb, line 58
def running?
  hget('status','running').to_s != 'false'
rescue
  false
end
simple_info() click to toggle source

redisdoc.com/server/info.html

# File lib/simple_apm/redis.rb, line 18
def simple_info
  h = {}
  redis.info.each do |k, v|
    if k == 'total_system_memory_human'
      h['系统内存'] = v
    elsif k == 'used_memory_human'
      h['当前内存占用'] = v
    elsif k == 'used_memory_rss_human'
      h['当前内存占用(rss)'] = v
    elsif k == 'used_memory_peak_human'
      h['占用内存峰值'] = v
    elsif k == 'redis_version'
      h['redis版本'] = v
    elsif k =~ /db[0-9]+/
      h[k] = v
    end
  end
  h
end
stop!() click to toggle source

停止收集数据

# File lib/simple_apm/redis.rb, line 69
def stop!
  hset('status', 'running', false)
end