Module: Resque::Plugins::Analytics::Server::Helpers

Defined in:
lib/resque-analytics/server.rb

Instance Method Summary collapse

Instance Method Details

#chart_data(data, job, kpi) ⇒ Object



32
33
34
# File 'lib/resque-analytics/server.rb', line 32

def chart_data(data, job, kpi)
  legend_keys.map { |key| @data[job][kpi][key].to_i || 0 }
end

#chart_it(title, legend, data) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/resque-analytics/server.rb', line 36

def chart_it(title, legend, data)
  Gchart.bar(
    data: data,
    title: title,
    format: "image_tag",
    size: "1000x300",
    axis_with_labels: ['x,y'],
    bar_width_and_spacing: '6',
    axis_range: [[-90,0,-5], [0, data.map(&:max).sum ]],
    legend: legend,
    legend_position: 'top',
    bar_colors: ['000000', '0088FF']
  )
end

#counters_for(job, kpi) ⇒ Object



11
12
13
14
# File 'lib/resque-analytics/server.rb', line 11

def counters_for(job, kpi)
  kpi_keys = Resque.redis.keys("analytics:#{kpi}:#{job}:*").sort { |a,b| a <=> b }
  kpi_keys.inject({}) { |res, key| res[key.split(':').last] = key_value(key); res}
end

#key_value(key) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/resque-analytics/server.rb', line 20

def key_value(key)
  if Resque.redis.type(key) == "string"
    Resque.redis.get(key)
  else
    Resque.redis.lrange(key, 0, -1).map(&:to_f).sum
  end
end

#legend_keysObject



28
29
30
# File 'lib/resque-analytics/server.rb', line 28

def legend_keys
  @legend_keys ||= (-90..0).map { |number| number.days.from_now.strftime("%y_%m_%d")}
end

#measured_jobsObject



16
17
18
# File 'lib/resque-analytics/server.rb', line 16

def measured_jobs
  Resque.redis.keys("analytics*").map { |key| key.split(':')[2] }.uniq
end