Class: SimpleApm::Redis

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_apm/redis.rb

Class Method Summary collapse

Class Method Details

.clear_data(date_str) ⇒ Object



52
53
54
55
56
# 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) ⇒ Object

清理指定日期之前的数据



44
45
46
47
48
49
50
# 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_daysObject

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



39
40
41
# 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

.instanceObject



7
8
9
10
11
12
13
14
15
# 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) ⇒ Object



73
74
75
76
77
# File 'lib/simple_apm/redis.rb', line 73

def method_missing(method, *args)
  instance.send(method, *args)
rescue NoMethodError
  super(method, *args)
end

.rerun!Object



64
65
66
# File 'lib/simple_apm/redis.rb', line 64

def rerun!
  hset('status', 'running', true)
end

.running?Boolean

Returns:

  • (Boolean)


58
59
60
61
62
# File 'lib/simple_apm/redis.rb', line 58

def running?
  hget('status','running').to_s != 'false'
rescue
  false
end

.simple_infoObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 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!Object

停止收集数据



69
70
71
# File 'lib/simple_apm/redis.rb', line 69

def stop!
  hset('status', 'running', false)
end