active_metric 2.5.2

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 (45) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +5 -0
  3. data/Rakefile +37 -0
  4. data/lib/active_metric.rb +38 -0
  5. data/lib/active_metric/axis.rb +11 -0
  6. data/lib/active_metric/behavior/calculates_derivative.rb +18 -0
  7. data/lib/active_metric/behavior/graph_calculation.rb +78 -0
  8. data/lib/active_metric/calculators/reservoir.rb +81 -0
  9. data/lib/active_metric/calculators/standard_deviator.rb +39 -0
  10. data/lib/active_metric/config/initializers/inflections.rb +4 -0
  11. data/lib/active_metric/graph_view_model.rb +60 -0
  12. data/lib/active_metric/measurement.rb +13 -0
  13. data/lib/active_metric/point_series_data.rb +17 -0
  14. data/lib/active_metric/report.rb +57 -0
  15. data/lib/active_metric/report_view_model.rb +106 -0
  16. data/lib/active_metric/sample.rb +148 -0
  17. data/lib/active_metric/series_data.rb +26 -0
  18. data/lib/active_metric/stat.rb +72 -0
  19. data/lib/active_metric/stat_definition.rb +20 -0
  20. data/lib/active_metric/statistics/defaults.rb +157 -0
  21. data/lib/active_metric/statistics/standard_deviation.rb +43 -0
  22. data/lib/active_metric/subject.rb +117 -0
  23. data/lib/active_metric/version.rb +3 -0
  24. data/test/active_metric_test.rb +30 -0
  25. data/test/axis_test.rb +22 -0
  26. data/test/behavior_tests/calculates_derivative_test.rb +35 -0
  27. data/test/behavior_tests/graph_calculation_test.rb +68 -0
  28. data/test/config/mongoid.yml +13 -0
  29. data/test/dummy/db/test.sqlite3 +0 -0
  30. data/test/dummy/log/test.log +18597 -0
  31. data/test/graph_view_model_test.rb +92 -0
  32. data/test/integration_test.rb +149 -0
  33. data/test/measurement_test.rb +45 -0
  34. data/test/mongoid_test.rb +24 -0
  35. data/test/point_series_data_test.rb +27 -0
  36. data/test/report_test.rb +73 -0
  37. data/test/report_view_model_test.rb +94 -0
  38. data/test/reservoir_test.rb +67 -0
  39. data/test/sample_test.rb +142 -0
  40. data/test/series_data_test.rb +20 -0
  41. data/test/standard_deviator_test.rb +45 -0
  42. data/test/stat_test.rb +222 -0
  43. data/test/subject_test.rb +22 -0
  44. data/test/test_helper.rb +76 -0
  45. metadata +123 -0
@@ -0,0 +1,22 @@
1
+ require_relative 'test_helper'
2
+
3
+ module ActiveMetric
4
+
5
+ class SubjectTest < ActiveSupport::TestCase
6
+
7
+
8
+ test "can retrieve report specific fields" do
9
+
10
+ class SubjectWithFields < Subject
11
+ field :foo
12
+
13
+ calculated_with Sample, 5
14
+ end
15
+
16
+ expected_fields = {foo: "bar"}.stringify_keys
17
+
18
+ subject = SubjectWithFields.create foo: "bar"
19
+ assert_equal expected_fields, subject.not_inherited_attributes
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,76 @@
1
+ # Configure Active Metric Environment
2
+ ENV["AM_ENV"] = "test"
3
+
4
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
+
6
+ require 'active_metric'
7
+
8
+ ENV["MONGOID_ENV"] = ENV["AM_ENV"]
9
+ Mongoid.load!(File.join(File.dirname(__FILE__), "config/mongoid.yml"))
10
+
11
+ require 'test-unit'
12
+ require 'active_support/test_case'
13
+
14
+ # Load support files
15
+ #Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
16
+
17
+ #require 'minitest/reporters'
18
+ #MiniTest::Reporters.use!
19
+
20
+ module ActiveMetric
21
+ INTERVAL_LENGTH = 5
22
+
23
+ class TestMeasurement < Measurement
24
+ field :value, :default => 0
25
+ end
26
+
27
+ class TestStat < Stat
28
+ end
29
+
30
+ class TestSample < Sample
31
+ stat :value
32
+ stat :value, [:standard_deviation], axis: 1
33
+ stat :value, [:delta], axis: 1
34
+ stat :value, [:speed], axis: 1
35
+ stat :value, [:bucket], axis: 2
36
+ stat :value, [:percent_false], axis: 3
37
+
38
+ custom_stat :test_count, Integer, 0, 1 do |measurement|
39
+ self.value += 1
40
+ end
41
+
42
+ custom_stat :test_response_codes, Hash, {} do |measurement|
43
+ self.value[measurement.value.to_s] ||= 0
44
+ self.value[measurement.value.to_s] += 1
45
+ end
46
+
47
+ axis index: 0, label: "first axis"
48
+ axis index: 1, label: "second axis"
49
+ axis index: 2, label: "third axis"
50
+ axis index: 3, label: "fourth axis"
51
+ end
52
+
53
+ class TestSubject < Subject
54
+ field :test_field
55
+ calculated_with TestSample, INTERVAL_LENGTH
56
+ end
57
+
58
+ end
59
+
60
+ class ActiveSupport::TestCase
61
+
62
+ setup :clear_database
63
+ def clear_database
64
+ Mongoid.default_session.collections.select { |c| c.name != 'system.indexes' }.each(&:drop)
65
+ end
66
+
67
+ def assert_within_range(range, value)
68
+ assert range === value, "Expected #{value} to be within #{range}"
69
+ end
70
+
71
+ def assert_close_to expected, actual
72
+ rounded = ((actual * 100).round) / 100.0
73
+ assert_equal expected, rounded
74
+ end
75
+
76
+ end
metadata ADDED
@@ -0,0 +1,123 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: active_metric
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.5.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ryan McGarvey
9
+ - Eric Jones
10
+ - Aldric Giacomoni
11
+ - Bob Nadler, Jr.
12
+ - Tim Johnson
13
+ - Eric Liu
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+ date: 2013-07-01 00:00:00.000000000 Z
18
+ dependencies: []
19
+ description: ActiveMetric is a mongo based statistics calculator and persistance layer
20
+ email:
21
+ - mcgarvey.ryan@gmail.com
22
+ - ejones@cyrusinnovation.com
23
+ - trevoke@gmail.com
24
+ - bnadlerjr@gmail.com
25
+ - timjohnson@chubtoad.com
26
+ - liukke@gmail.com
27
+ executables: []
28
+ extensions: []
29
+ extra_rdoc_files: []
30
+ files:
31
+ - lib/active_metric.rb
32
+ - lib/active_metric/measurement.rb
33
+ - lib/active_metric/axis.rb
34
+ - lib/active_metric/graph_view_model.rb
35
+ - lib/active_metric/report_view_model.rb
36
+ - lib/active_metric/point_series_data.rb
37
+ - lib/active_metric/series_data.rb
38
+ - lib/active_metric/report.rb
39
+ - lib/active_metric/behavior/calculates_derivative.rb
40
+ - lib/active_metric/behavior/graph_calculation.rb
41
+ - lib/active_metric/calculators/reservoir.rb
42
+ - lib/active_metric/calculators/standard_deviator.rb
43
+ - lib/active_metric/stat_definition.rb
44
+ - lib/active_metric/stat.rb
45
+ - lib/active_metric/subject.rb
46
+ - lib/active_metric/statistics/defaults.rb
47
+ - lib/active_metric/statistics/standard_deviation.rb
48
+ - lib/active_metric/version.rb
49
+ - lib/active_metric/config/initializers/inflections.rb
50
+ - lib/active_metric/sample.rb
51
+ - MIT-LICENSE
52
+ - Rakefile
53
+ - README.rdoc
54
+ - test/subject_test.rb
55
+ - test/active_metric_test.rb
56
+ - test/reservoir_test.rb
57
+ - test/point_series_data_test.rb
58
+ - test/graph_view_model_test.rb
59
+ - test/integration_test.rb
60
+ - test/dummy/log/test.log
61
+ - test/dummy/db/test.sqlite3
62
+ - test/measurement_test.rb
63
+ - test/mongoid_test.rb
64
+ - test/report_test.rb
65
+ - test/standard_deviator_test.rb
66
+ - test/sample_test.rb
67
+ - test/test_helper.rb
68
+ - test/report_view_model_test.rb
69
+ - test/behavior_tests/calculates_derivative_test.rb
70
+ - test/behavior_tests/graph_calculation_test.rb
71
+ - test/series_data_test.rb
72
+ - test/config/mongoid.yml
73
+ - test/stat_test.rb
74
+ - test/axis_test.rb
75
+ homepage: http://github.com/SoftwareWithFriends/ActiveMetric
76
+ licenses: []
77
+ post_install_message:
78
+ rdoc_options: []
79
+ require_paths:
80
+ - lib
81
+ required_ruby_version: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ segments:
88
+ - 0
89
+ hash: 881746595493551969
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ requirements: []
97
+ rubyforge_project:
98
+ rubygems_version: 1.8.24
99
+ signing_key:
100
+ specification_version: 3
101
+ summary: ActiveMetric is a mongo based statistics calculator and persistance layer
102
+ test_files:
103
+ - test/subject_test.rb
104
+ - test/active_metric_test.rb
105
+ - test/reservoir_test.rb
106
+ - test/point_series_data_test.rb
107
+ - test/graph_view_model_test.rb
108
+ - test/integration_test.rb
109
+ - test/dummy/log/test.log
110
+ - test/dummy/db/test.sqlite3
111
+ - test/measurement_test.rb
112
+ - test/mongoid_test.rb
113
+ - test/report_test.rb
114
+ - test/standard_deviator_test.rb
115
+ - test/sample_test.rb
116
+ - test/test_helper.rb
117
+ - test/report_view_model_test.rb
118
+ - test/behavior_tests/calculates_derivative_test.rb
119
+ - test/behavior_tests/graph_calculation_test.rb
120
+ - test/series_data_test.rb
121
+ - test/config/mongoid.yml
122
+ - test/stat_test.rb
123
+ - test/axis_test.rb