active_metric 2.5.2
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/README.rdoc +5 -0
- data/Rakefile +37 -0
- data/lib/active_metric.rb +38 -0
- data/lib/active_metric/axis.rb +11 -0
- data/lib/active_metric/behavior/calculates_derivative.rb +18 -0
- data/lib/active_metric/behavior/graph_calculation.rb +78 -0
- data/lib/active_metric/calculators/reservoir.rb +81 -0
- data/lib/active_metric/calculators/standard_deviator.rb +39 -0
- data/lib/active_metric/config/initializers/inflections.rb +4 -0
- data/lib/active_metric/graph_view_model.rb +60 -0
- data/lib/active_metric/measurement.rb +13 -0
- data/lib/active_metric/point_series_data.rb +17 -0
- data/lib/active_metric/report.rb +57 -0
- data/lib/active_metric/report_view_model.rb +106 -0
- data/lib/active_metric/sample.rb +148 -0
- data/lib/active_metric/series_data.rb +26 -0
- data/lib/active_metric/stat.rb +72 -0
- data/lib/active_metric/stat_definition.rb +20 -0
- data/lib/active_metric/statistics/defaults.rb +157 -0
- data/lib/active_metric/statistics/standard_deviation.rb +43 -0
- data/lib/active_metric/subject.rb +117 -0
- data/lib/active_metric/version.rb +3 -0
- data/test/active_metric_test.rb +30 -0
- data/test/axis_test.rb +22 -0
- data/test/behavior_tests/calculates_derivative_test.rb +35 -0
- data/test/behavior_tests/graph_calculation_test.rb +68 -0
- data/test/config/mongoid.yml +13 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +18597 -0
- data/test/graph_view_model_test.rb +92 -0
- data/test/integration_test.rb +149 -0
- data/test/measurement_test.rb +45 -0
- data/test/mongoid_test.rb +24 -0
- data/test/point_series_data_test.rb +27 -0
- data/test/report_test.rb +73 -0
- data/test/report_view_model_test.rb +94 -0
- data/test/reservoir_test.rb +67 -0
- data/test/sample_test.rb +142 -0
- data/test/series_data_test.rb +20 -0
- data/test/standard_deviator_test.rb +45 -0
- data/test/stat_test.rb +222 -0
- data/test/subject_test.rb +22 -0
- data/test/test_helper.rb +76 -0
- 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
|
data/test/test_helper.rb
ADDED
@@ -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
|