Module: Resque::Plugins::Analytics::Server::Helpers
- Defined in:
- lib/resque-analytics/server.rb
Instance Method Summary collapse
- #chart_data(data, kpi) ⇒ Object
- #chart_it(title, legend, data) ⇒ Object
- #counters_for(job, kpi) ⇒ Object
- #key_value(key) ⇒ Object
- #legend_keys ⇒ Object
- #measured_jobs ⇒ Object
Instance Method Details
#chart_data(data, kpi) ⇒ Object
32 33 34 |
# File 'lib/resque-analytics/server.rb', line 32 def chart_data(data, kpi) legend_keys.map { |key| @data[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.( 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_keys ⇒ Object
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_jobs ⇒ Object
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 |