blackbeard 0.0.4.0 → 0.0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +44 -16
  3. data/TODO.md +3 -1
  4. data/dashboard/routes/cohorts.rb +25 -0
  5. data/dashboard/routes/features.rb +7 -4
  6. data/dashboard/routes/groups.rb +6 -3
  7. data/dashboard/routes/metrics.rb +25 -5
  8. data/dashboard/routes/tests.rb +6 -3
  9. data/dashboard/views/cohorts/index.erb +22 -0
  10. data/dashboard/views/cohorts/show.erb +41 -0
  11. data/dashboard/views/groups/show.erb +2 -2
  12. data/dashboard/views/layout.erb +1 -0
  13. data/dashboard/views/metrics/show.erb +37 -10
  14. data/dashboard/views/shared/_charts.erb +20 -0
  15. data/lib/blackbeard/chart.rb +65 -0
  16. data/lib/blackbeard/chartable.rb +47 -0
  17. data/lib/blackbeard/cohort.rb +48 -0
  18. data/lib/blackbeard/cohort_data.rb +72 -0
  19. data/lib/blackbeard/cohort_metric.rb +47 -0
  20. data/lib/blackbeard/context.rb +11 -2
  21. data/lib/blackbeard/dashboard.rb +2 -3
  22. data/lib/blackbeard/dashboard_helpers.rb +0 -22
  23. data/lib/blackbeard/errors.rb +2 -0
  24. data/lib/blackbeard/group.rb +3 -0
  25. data/lib/blackbeard/group_metric.rb +39 -0
  26. data/lib/blackbeard/metric.rb +30 -14
  27. data/lib/blackbeard/metric_data/base.rb +18 -35
  28. data/lib/blackbeard/metric_data/total.rb +2 -1
  29. data/lib/blackbeard/metric_data/uid_generator.rb +38 -0
  30. data/lib/blackbeard/metric_data/unique.rb +1 -1
  31. data/lib/blackbeard/metric_date.rb +10 -0
  32. data/lib/blackbeard/metric_hour.rb +8 -0
  33. data/lib/blackbeard/pirate.rb +18 -0
  34. data/lib/blackbeard/redis_store.rb +10 -1
  35. data/lib/blackbeard/storable.rb +1 -0
  36. data/lib/blackbeard/version.rb +1 -1
  37. data/spec/chart_spec.rb +38 -0
  38. data/spec/chartable_spec.rb +56 -0
  39. data/spec/cohort_data_spec.rb +142 -0
  40. data/spec/cohort_metric_spec.rb +26 -0
  41. data/spec/cohort_spec.rb +31 -0
  42. data/spec/context_spec.rb +9 -1
  43. data/spec/dashboard/cohorts_spec.rb +43 -0
  44. data/spec/dashboard/groups_spec.rb +0 -7
  45. data/spec/dashboard/metrics_spec.rb +35 -0
  46. data/spec/group_metric_spec.rb +26 -0
  47. data/spec/metric_data/base_spec.rb +0 -16
  48. data/spec/metric_data/uid_generator_spec.rb +40 -0
  49. data/spec/metric_spec.rb +23 -12
  50. data/spec/pirate_spec.rb +22 -1
  51. data/spec/redis_store_spec.rb +8 -2
  52. data/spec/storable_spec.rb +3 -0
  53. metadata +29 -3
  54. data/dashboard/views/metrics/_metric_data.erb +0 -59
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blackbeard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4.0
4
+ version: 0.0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Graff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-03 00:00:00.000000000 Z
11
+ date: 2014-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -222,23 +222,31 @@ files:
222
222
  - dashboard/public/stylesheets/bootstrap-theme.css
223
223
  - dashboard/public/stylesheets/bootstrap.css
224
224
  - dashboard/routes/base.rb
225
+ - dashboard/routes/cohorts.rb
225
226
  - dashboard/routes/features.rb
226
227
  - dashboard/routes/groups.rb
227
228
  - dashboard/routes/home.rb
228
229
  - dashboard/routes/metrics.rb
229
230
  - dashboard/routes/tests.rb
231
+ - dashboard/views/cohorts/index.erb
232
+ - dashboard/views/cohorts/show.erb
230
233
  - dashboard/views/features/index.erb
231
234
  - dashboard/views/features/show.erb
232
235
  - dashboard/views/groups/index.erb
233
236
  - dashboard/views/groups/show.erb
234
237
  - dashboard/views/index.erb
235
238
  - dashboard/views/layout.erb
236
- - dashboard/views/metrics/_metric_data.erb
237
239
  - dashboard/views/metrics/index.erb
238
240
  - dashboard/views/metrics/show.erb
241
+ - dashboard/views/shared/_charts.erb
239
242
  - dashboard/views/tests/index.erb
240
243
  - dashboard/views/tests/show.erb
241
244
  - lib/blackbeard.rb
245
+ - lib/blackbeard/chart.rb
246
+ - lib/blackbeard/chartable.rb
247
+ - lib/blackbeard/cohort.rb
248
+ - lib/blackbeard/cohort_data.rb
249
+ - lib/blackbeard/cohort_metric.rb
242
250
  - lib/blackbeard/configuration.rb
243
251
  - lib/blackbeard/configuration_methods.rb
244
252
  - lib/blackbeard/context.rb
@@ -248,9 +256,11 @@ files:
248
256
  - lib/blackbeard/feature.rb
249
257
  - lib/blackbeard/feature_rollout.rb
250
258
  - lib/blackbeard/group.rb
259
+ - lib/blackbeard/group_metric.rb
251
260
  - lib/blackbeard/metric.rb
252
261
  - lib/blackbeard/metric_data/base.rb
253
262
  - lib/blackbeard/metric_data/total.rb
263
+ - lib/blackbeard/metric_data/uid_generator.rb
254
264
  - lib/blackbeard/metric_data/unique.rb
255
265
  - lib/blackbeard/metric_date.rb
256
266
  - lib/blackbeard/metric_hour.rb
@@ -264,8 +274,14 @@ files:
264
274
  - lib/blackbeard/test.rb
265
275
  - lib/blackbeard/version.rb
266
276
  - spec/blackbeard_spec.rb
277
+ - spec/chart_spec.rb
278
+ - spec/chartable_spec.rb
279
+ - spec/cohort_data_spec.rb
280
+ - spec/cohort_metric_spec.rb
281
+ - spec/cohort_spec.rb
267
282
  - spec/configuration_spec.rb
268
283
  - spec/context_spec.rb
284
+ - spec/dashboard/cohorts_spec.rb
269
285
  - spec/dashboard/features_spec.rb
270
286
  - spec/dashboard/groups_spec.rb
271
287
  - spec/dashboard/home_spec.rb
@@ -273,9 +289,11 @@ files:
273
289
  - spec/dashboard/tests_spec.rb
274
290
  - spec/feature_rollout_spec.rb
275
291
  - spec/feature_spec.rb
292
+ - spec/group_metric_spec.rb
276
293
  - spec/group_spec.rb
277
294
  - spec/metric_data/base_spec.rb
278
295
  - spec/metric_data/total_spec.rb
296
+ - spec/metric_data/uid_generator_spec.rb
279
297
  - spec/metric_data/unique_spec.rb
280
298
  - spec/metric_spec.rb
281
299
  - spec/pirate_spec.rb
@@ -312,8 +330,14 @@ specification_version: 4
312
330
  summary: Blackbeard is a Redis backed metrics collection system with a Rack dashboard
313
331
  test_files:
314
332
  - spec/blackbeard_spec.rb
333
+ - spec/chart_spec.rb
334
+ - spec/chartable_spec.rb
335
+ - spec/cohort_data_spec.rb
336
+ - spec/cohort_metric_spec.rb
337
+ - spec/cohort_spec.rb
315
338
  - spec/configuration_spec.rb
316
339
  - spec/context_spec.rb
340
+ - spec/dashboard/cohorts_spec.rb
317
341
  - spec/dashboard/features_spec.rb
318
342
  - spec/dashboard/groups_spec.rb
319
343
  - spec/dashboard/home_spec.rb
@@ -321,9 +345,11 @@ test_files:
321
345
  - spec/dashboard/tests_spec.rb
322
346
  - spec/feature_rollout_spec.rb
323
347
  - spec/feature_spec.rb
348
+ - spec/group_metric_spec.rb
324
349
  - spec/group_spec.rb
325
350
  - spec/metric_data/base_spec.rb
326
351
  - spec/metric_data/total_spec.rb
352
+ - spec/metric_data/uid_generator_spec.rb
327
353
  - spec/metric_data/unique_spec.rb
328
354
  - spec/metric_spec.rb
329
355
  - spec/pirate_spec.rb
@@ -1,59 +0,0 @@
1
- <div id="recent_hours_chart_div"></div>
2
- <div id="recent_days_chart_div"></div>
3
-
4
- <script type="text/javascript" src="https://www.google.com/jsapi"></script>
5
- <script type="text/javascript">
6
- // Load the Visualization API and the piechart package.
7
- google.load('visualization', '1.0', {'packages':['corechart']});
8
-
9
- // Set a callback to run when the Google Visualization API is loaded.
10
- google.setOnLoadCallback(drawHoursChart);
11
- google.setOnLoadCallback(drawDaysChart);
12
-
13
- // Callback that creates and populates a data table,
14
- // instantiates the pie chart, passes in the data and
15
- // draws it.
16
- function drawHoursChart() {
17
-
18
- // Create the data table.
19
- var data = new google.visualization.DataTable();
20
- data.addColumn('datetime', 'Hour');
21
- <% metric_data.segments.each do |segment| %>
22
- data.addColumn('number', '<%= segment %>');
23
- <% end %>
24
- data.addRows([
25
- <%= metric_data.recent_hours.map{|h| js_metric_hour(metric_data.segments, h) }.join(',') %>
26
- ]);
27
-
28
- // Set chart options
29
- var options = {'title':'Last 24 Hours / <%= metric_data.group.nil? ? "All" : metric_data.group.name %>',
30
- // 'width':900,
31
- 'height':300};
32
-
33
- // Instantiate and draw our chart, passing in some options.
34
- var chart = new google.visualization.LineChart(document.getElementById('recent_hours_chart_div'));
35
- chart.draw(data, options);
36
- }
37
-
38
- function drawDaysChart() {
39
-
40
- // Create the data table.
41
- var data = new google.visualization.DataTable();
42
- data.addColumn('date', 'Day');
43
- <% metric_data.segments.each do |segment| %>
44
- data.addColumn('number', '<%= segment %>');
45
- <% end %>
46
- data.addRows([
47
- <%= metric_data.recent_days.map{|d| js_metric_date(metric_data.segments, d) }.join(',') %>
48
- ]);
49
-
50
- // Set chart options
51
- var options = {'title':'Last 28 Days / <%= metric_data.group.nil? ? "All" : metric_data.group.name %>',
52
- // 'width':900,
53
- 'height':300};
54
-
55
- // Instantiate and draw our chart, passing in some options.
56
- var chart = new google.visualization.LineChart(document.getElementById('recent_days_chart_div'));
57
- chart.draw(data, options);
58
- }
59
- </script>