scout_apm 2.1.8 → 2.1.9
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 +9 -0
- 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 +193 -0
- data/lib/scout_apm/layer_converters/slow_job_converter.rb +14 -73
- data/lib/scout_apm/layer_converters/slow_request_converter.rb +13 -85
- 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 +1 -1
- 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" => {
|
@@ -102,7 +102,7 @@ class PayloadSerializerTest < Minitest::Test
|
|
102
102
|
:quotie => "here are some \"quotes\"",
|
103
103
|
:payload_version => 2,
|
104
104
|
}
|
105
|
-
payload = ScoutApm::Serializers::PayloadSerializerToJson.serialize(metadata, {}, {}, [], [])
|
105
|
+
payload = ScoutApm::Serializers::PayloadSerializerToJson.serialize(metadata, {}, {}, [], [], [])
|
106
106
|
|
107
107
|
# symbol keys turn to strings
|
108
108
|
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: 2.1.
|
4
|
+
version: 2.1.9
|
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
|
@@ -189,6 +189,7 @@ files:
|
|
189
189
|
- lib/scout_apm/scored_item_set.rb
|
190
190
|
- lib/scout_apm/serializers/app_server_load_serializer.rb
|
191
191
|
- lib/scout_apm/serializers/directive_serializer.rb
|
192
|
+
- lib/scout_apm/serializers/histograms_serializer_to_json.rb
|
192
193
|
- lib/scout_apm/serializers/jobs_serializer_to_json.rb
|
193
194
|
- lib/scout_apm/serializers/metrics_to_json_serializer.rb
|
194
195
|
- lib/scout_apm/serializers/payload_serializer.rb
|
@@ -211,9 +212,11 @@ files:
|
|
211
212
|
- lib/scout_apm/tracked_request.rb
|
212
213
|
- lib/scout_apm/utils/active_record_metric_name.rb
|
213
214
|
- lib/scout_apm/utils/backtrace_parser.rb
|
215
|
+
- lib/scout_apm/utils/gzip_helper.rb
|
214
216
|
- lib/scout_apm/utils/installed_gems.rb
|
215
217
|
- lib/scout_apm/utils/klass_helper.rb
|
216
218
|
- lib/scout_apm/utils/null_logger.rb
|
219
|
+
- lib/scout_apm/utils/numbers.rb
|
217
220
|
- lib/scout_apm/utils/sql_sanitizer.rb
|
218
221
|
- lib/scout_apm/utils/sql_sanitizer_regex.rb
|
219
222
|
- lib/scout_apm/utils/sql_sanitizer_regex_1_8_7.rb
|
@@ -232,6 +235,7 @@ files:
|
|
232
235
|
- test/unit/histogram_test.rb
|
233
236
|
- test/unit/ignored_uris_test.rb
|
234
237
|
- test/unit/instruments/active_record_instruments_test.rb
|
238
|
+
- test/unit/instruments/percentile_sampler_test.rb
|
235
239
|
- test/unit/layaway_test.rb
|
236
240
|
- test/unit/metric_set_test.rb
|
237
241
|
- test/unit/scored_item_set_test.rb
|
@@ -242,6 +246,7 @@ files:
|
|
242
246
|
- test/unit/store_test.rb
|
243
247
|
- test/unit/utils/active_record_metric_name_test.rb
|
244
248
|
- test/unit/utils/backtrace_parser_test.rb
|
249
|
+
- test/unit/utils/numbers_test.rb
|
245
250
|
homepage: https://github.com/scoutapp/scout_apm_ruby
|
246
251
|
licenses:
|
247
252
|
- Proprietary (See LICENSE.md)
|
@@ -263,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
263
268
|
version: '0'
|
264
269
|
requirements: []
|
265
270
|
rubyforge_project: scout_apm
|
266
|
-
rubygems_version: 2.4.
|
271
|
+
rubygems_version: 2.4.8
|
267
272
|
signing_key:
|
268
273
|
specification_version: 4
|
269
274
|
summary: Ruby application performance monitoring
|
@@ -279,6 +284,7 @@ test_files:
|
|
279
284
|
- test/unit/histogram_test.rb
|
280
285
|
- test/unit/ignored_uris_test.rb
|
281
286
|
- test/unit/instruments/active_record_instruments_test.rb
|
287
|
+
- test/unit/instruments/percentile_sampler_test.rb
|
282
288
|
- test/unit/layaway_test.rb
|
283
289
|
- test/unit/metric_set_test.rb
|
284
290
|
- test/unit/scored_item_set_test.rb
|
@@ -289,4 +295,4 @@ test_files:
|
|
289
295
|
- test/unit/store_test.rb
|
290
296
|
- test/unit/utils/active_record_metric_name_test.rb
|
291
297
|
- test/unit/utils/backtrace_parser_test.rb
|
292
|
-
|
298
|
+
- test/unit/utils/numbers_test.rb
|