scout_apm 3.0.0.pre1 → 3.0.0.pre2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.markdown +12 -1
- data/lib/scout_apm.rb +3 -0
- data/lib/scout_apm/agent.rb +9 -6
- data/lib/scout_apm/agent/reporting.rb +5 -3
- data/lib/scout_apm/background_job_integrations/delayed_job.rb +47 -1
- data/lib/scout_apm/background_worker.rb +4 -0
- data/lib/scout_apm/config.rb +2 -1
- data/lib/scout_apm/environment.rb +1 -1
- data/lib/scout_apm/histogram.rb +11 -2
- data/lib/scout_apm/instruments/mongoid.rb +14 -1
- data/lib/scout_apm/instruments/percentile_sampler.rb +36 -19
- data/lib/scout_apm/instruments/process/process_cpu.rb +3 -2
- data/lib/scout_apm/instruments/process/process_memory.rb +3 -3
- data/lib/scout_apm/layer_converters/converter_base.rb +213 -0
- data/lib/scout_apm/layer_converters/slow_job_converter.rb +19 -93
- data/lib/scout_apm/layer_converters/slow_request_converter.rb +15 -100
- data/lib/scout_apm/metric_set.rb +6 -0
- data/lib/scout_apm/reporter.rb +53 -15
- data/lib/scout_apm/request_histograms.rb +4 -0
- data/lib/scout_apm/scored_item_set.rb +7 -0
- data/lib/scout_apm/serializers/histograms_serializer_to_json.rb +21 -0
- data/lib/scout_apm/serializers/payload_serializer.rb +9 -3
- data/lib/scout_apm/serializers/payload_serializer_to_json.rb +2 -1
- data/lib/scout_apm/serializers/slow_jobs_serializer_to_json.rb +1 -1
- data/lib/scout_apm/slow_job_record.rb +4 -1
- data/lib/scout_apm/slow_transaction.rb +18 -2
- data/lib/scout_apm/store.rb +42 -11
- data/lib/scout_apm/tracked_request.rb +1 -1
- data/lib/scout_apm/utils/gzip_helper.rb +24 -0
- data/lib/scout_apm/utils/numbers.rb +14 -0
- data/lib/scout_apm/version.rb +2 -2
- data/test/test_helper.rb +10 -0
- data/test/unit/config_test.rb +7 -9
- data/test/unit/histogram_test.rb +14 -0
- data/test/unit/instruments/percentile_sampler_test.rb +137 -0
- data/test/unit/serializers/payload_serializer_test.rb +3 -3
- data/test/unit/store_test.rb +51 -0
- data/test/unit/utils/numbers_test.rb +15 -0
- metadata +10 -4
@@ -17,7 +17,7 @@ class PayloadSerializerTest < Minitest::Test
|
|
17
17
|
:unique_id => "unique_idz",
|
18
18
|
:agent_version => 123
|
19
19
|
}
|
20
|
-
payload = ScoutApm::Serializers::PayloadSerializerToJson.serialize(metadata, {}, {}, [], [])
|
20
|
+
payload = ScoutApm::Serializers::PayloadSerializerToJson.serialize(metadata, {}, {}, [], [], [])
|
21
21
|
|
22
22
|
# symbol keys turn to strings
|
23
23
|
formatted_metadata = {
|
@@ -58,7 +58,7 @@ class PayloadSerializerTest < Minitest::Test
|
|
58
58
|
stats.total_exclusive_time = 0.07813208899999999
|
59
59
|
}
|
60
60
|
}
|
61
|
-
payload = ScoutApm::Serializers::PayloadSerializerToJson.serialize({}, metrics, {}, [], [])
|
61
|
+
payload = ScoutApm::Serializers::PayloadSerializerToJson.serialize({}, metrics, {}, [], [], [])
|
62
62
|
formatted_metrics = [
|
63
63
|
{
|
64
64
|
"key" => {
|
@@ -104,7 +104,7 @@ class PayloadSerializerTest < Minitest::Test
|
|
104
104
|
:quotie => "here are some \"quotes\"",
|
105
105
|
:payload_version => 2,
|
106
106
|
}
|
107
|
-
payload = ScoutApm::Serializers::PayloadSerializerToJson.serialize(metadata, {}, {}, [], [])
|
107
|
+
payload = ScoutApm::Serializers::PayloadSerializerToJson.serialize(metadata, {}, {}, [], [], [])
|
108
108
|
|
109
109
|
# symbol keys turn to strings
|
110
110
|
formatted_metadata = {
|
data/test/unit/store_test.rb
CHANGED
@@ -21,3 +21,54 @@ class StoreTest < Minitest::Test
|
|
21
21
|
assert_equal({}, s.reporting_periods)
|
22
22
|
end
|
23
23
|
end
|
24
|
+
|
25
|
+
class StoreReportingPeriodTest < Minitest::Test
|
26
|
+
HistogramReport = ScoutApm::Instruments::HistogramReport
|
27
|
+
|
28
|
+
attr_reader :subject
|
29
|
+
|
30
|
+
def setup
|
31
|
+
@subject = ScoutApm::StoreReportingPeriod.new(ScoutApm::StoreReportingPeriodTimestamp.new)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Check default values at creation time
|
35
|
+
def test_empty_values
|
36
|
+
assert_equal [], subject.histograms
|
37
|
+
assert_equal ScoutApm::ScoredItemSet.new, subject.request_traces
|
38
|
+
assert_equal ScoutApm::ScoredItemSet.new, subject.job_traces
|
39
|
+
assert_equal ScoutApm::MetricSet.new, subject.metric_set
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_merge_histograms
|
43
|
+
histogramFoo1 = histogram
|
44
|
+
histogramFoo2 = histogram
|
45
|
+
histogramBar1 = histogram
|
46
|
+
histogramBar2 = histogram
|
47
|
+
|
48
|
+
# This assertion may be fragile to reordering in the merge_histograms! function.
|
49
|
+
histogramFoo1.expects(:combine!).with(histogramFoo2)
|
50
|
+
histogramBar1.expects(:combine!).with(histogramBar2)
|
51
|
+
|
52
|
+
subject.merge_histograms!([
|
53
|
+
HistogramReport.new("foo", histogramFoo1),
|
54
|
+
HistogramReport.new("bar", histogramBar1),
|
55
|
+
])
|
56
|
+
|
57
|
+
subject.merge_histograms!([
|
58
|
+
HistogramReport.new("foo", histogramFoo2),
|
59
|
+
HistogramReport.new("bar", histogramBar2),
|
60
|
+
])
|
61
|
+
|
62
|
+
result = subject.histograms
|
63
|
+
assert_equal 2, result.length
|
64
|
+
assert_equal ["bar", "foo"], result.map(&:name).sort
|
65
|
+
end
|
66
|
+
|
67
|
+
###############################################################################
|
68
|
+
# Helpers
|
69
|
+
###############################################################################
|
70
|
+
def histogram
|
71
|
+
max_bins = 20
|
72
|
+
ScoutApm::NumericHistogram.new(max_bins)
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
require 'scout_apm/utils/numbers'
|
3
|
+
|
4
|
+
class NumbersTest < Minitest::Test
|
5
|
+
Numbers = ScoutApm::Utils::Numbers
|
6
|
+
|
7
|
+
def test_round
|
8
|
+
assert_equal 12, Numbers.round(12.1234567, 0)
|
9
|
+
assert_equal 12.1, Numbers.round(12.1234567, 1)
|
10
|
+
assert_equal 12.12, Numbers.round(12.1234567, 2)
|
11
|
+
assert_equal 12.123, Numbers.round(12.1234567, 3)
|
12
|
+
|
13
|
+
assert_equal 12, Numbers.round(12.0000, 2)
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scout_apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.0.
|
4
|
+
version: 3.0.0.pre2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derek Haynes
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-09-
|
12
|
+
date: 2016-09-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
@@ -193,6 +193,7 @@ files:
|
|
193
193
|
- lib/scout_apm/scored_item_set.rb
|
194
194
|
- lib/scout_apm/serializers/app_server_load_serializer.rb
|
195
195
|
- lib/scout_apm/serializers/directive_serializer.rb
|
196
|
+
- lib/scout_apm/serializers/histograms_serializer_to_json.rb
|
196
197
|
- lib/scout_apm/serializers/jobs_serializer_to_json.rb
|
197
198
|
- lib/scout_apm/serializers/metrics_to_json_serializer.rb
|
198
199
|
- lib/scout_apm/serializers/payload_serializer.rb
|
@@ -217,9 +218,11 @@ files:
|
|
217
218
|
- lib/scout_apm/utils/active_record_metric_name.rb
|
218
219
|
- lib/scout_apm/utils/backtrace_parser.rb
|
219
220
|
- lib/scout_apm/utils/fake_stacks.rb
|
221
|
+
- lib/scout_apm/utils/gzip_helper.rb
|
220
222
|
- lib/scout_apm/utils/installed_gems.rb
|
221
223
|
- lib/scout_apm/utils/klass_helper.rb
|
222
224
|
- lib/scout_apm/utils/null_logger.rb
|
225
|
+
- lib/scout_apm/utils/numbers.rb
|
223
226
|
- lib/scout_apm/utils/sql_sanitizer.rb
|
224
227
|
- lib/scout_apm/utils/sql_sanitizer_regex.rb
|
225
228
|
- lib/scout_apm/utils/sql_sanitizer_regex_1_8_7.rb
|
@@ -238,6 +241,7 @@ files:
|
|
238
241
|
- test/unit/histogram_test.rb
|
239
242
|
- test/unit/ignored_uris_test.rb
|
240
243
|
- test/unit/instruments/active_record_instruments_test.rb
|
244
|
+
- test/unit/instruments/percentile_sampler_test.rb
|
241
245
|
- test/unit/layaway_test.rb
|
242
246
|
- test/unit/metric_set_test.rb
|
243
247
|
- test/unit/scored_item_set_test.rb
|
@@ -248,6 +252,7 @@ files:
|
|
248
252
|
- test/unit/store_test.rb
|
249
253
|
- test/unit/utils/active_record_metric_name_test.rb
|
250
254
|
- test/unit/utils/backtrace_parser_test.rb
|
255
|
+
- test/unit/utils/numbers_test.rb
|
251
256
|
- tester.rb
|
252
257
|
homepage: https://github.com/scoutapp/scout_apm_ruby
|
253
258
|
licenses:
|
@@ -270,7 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
270
275
|
version: 1.3.1
|
271
276
|
requirements: []
|
272
277
|
rubyforge_project: scout_apm
|
273
|
-
rubygems_version: 2.4.
|
278
|
+
rubygems_version: 2.4.8
|
274
279
|
signing_key:
|
275
280
|
specification_version: 4
|
276
281
|
summary: Ruby application performance monitoring
|
@@ -286,6 +291,7 @@ test_files:
|
|
286
291
|
- test/unit/histogram_test.rb
|
287
292
|
- test/unit/ignored_uris_test.rb
|
288
293
|
- test/unit/instruments/active_record_instruments_test.rb
|
294
|
+
- test/unit/instruments/percentile_sampler_test.rb
|
289
295
|
- test/unit/layaway_test.rb
|
290
296
|
- test/unit/metric_set_test.rb
|
291
297
|
- test/unit/scored_item_set_test.rb
|
@@ -296,4 +302,4 @@ test_files:
|
|
296
302
|
- test/unit/store_test.rb
|
297
303
|
- test/unit/utils/active_record_metric_name_test.rb
|
298
304
|
- test/unit/utils/backtrace_parser_test.rb
|
299
|
-
|
305
|
+
- test/unit/utils/numbers_test.rb
|