active_metric 2.5.2

Sign up to get free protection for your applications and to get access to all the features.
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