appsignal 3.0.13 → 3.0.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6c0e512f76340cff38be53ab05f0a4d33adb206873034a130c31da036a34712f
4
- data.tar.gz: 034a9a83ef46e29a8b629c7cf8618d07ea2b93948a5f79d70f6841fc1125ce40
3
+ metadata.gz: 213e42a69aaad1655ff4aa2c30c77d1483d680ab66646a2e5a01712dc5863fcb
4
+ data.tar.gz: 0e2096d74a920968fd45c16d1081b613645603829f4d79dd562a0bdad0d1773b
5
5
  SHA512:
6
- metadata.gz: 9abf872056e90d7fe34a5bf3de282aa452b5bf7bb73aae7c02c6fd980de4a96157ddf555adaf5d1c09dc68633c4826454e647095a375edaa20c5918359bc0584
7
- data.tar.gz: 68d61ffef895fd5f77f41873e19944bc419b9a9c819b7db06b889b196870445c92ddcfb6b96378f04b4d6d8eca239ea3d9d146b31d3667a18f267b4ad7e8a6b6
6
+ metadata.gz: 58d89948088b35d305626980b16363408b56dd56a2fa5333fcf4a167d824d042753e553d8947704a644132a5a32c8c457468099e70f5ebf8420f7f10cc97f8b1
7
+ data.tar.gz: 214179b9bcfee72780f695abc90548ba0d978a4dd25e1d2f57bb66b2be50d9e9c6b198eaa3e2354c4a8f3b41ab7bb1f907526e7d8d30dab45e38e7bcf926e46c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # AppSignal for Ruby gem Changelog
2
2
 
3
+ ## 3.0.14
4
+
5
+ - [c40f6d75](https://github.com/appsignal/appsignal-ruby/commit/c40f6d759e8d516cc47bd55cc83bfcb680fbd1ea) patch - Add minutely probe that collects metrics for :class_serial and :global_constant_state from RubyVM.
6
+ - [7c18fb6d](https://github.com/appsignal/appsignal-ruby/commit/7c18fb6db0c72f32adb6803ccde957963977008a) patch - Bump agent to 7376537
7
+
8
+ - Support JSON PostgreSQL operator in sql_lexer.
9
+ - Do not strip comments from SQL queries.
10
+ - [8d7b80ea](https://github.com/appsignal/appsignal-ruby/commit/8d7b80eafc203c295db037f2547f74a2f217f93f) patch - Add configuration option for the AppSignal agent StatsD server. This is on by default, but you can disable it with `enable_statsd: false`.
11
+
3
12
  ## 3.0.13
4
13
 
5
14
  - [5c202185](https://github.com/appsignal/appsignal-ruby/commit/5c20218526e026ab436854508ccfe26ca55e8f15) patch - Bump agent to v-0318770.
data/ext/agent.yml CHANGED
@@ -1,90 +1,94 @@
1
+ # DO NOT EDIT
2
+ # This is a generated file by the `rake ship` family of tasks in the
3
+ # appsignal-agent repository.
4
+ # Modifications to this file will be overwritten with the next agent release.
1
5
  ---
2
- version: '0318770'
6
+ version: '7376537'
3
7
  mirrors:
4
8
  - https://appsignal-agent-releases.global.ssl.fastly.net
5
9
  - https://d135dj0rjqvssy.cloudfront.net
6
10
  triples:
7
11
  x86_64-darwin:
8
12
  static:
9
- checksum: 7b17cb76edc58ea54381455f74934d08efbfb7807007e97ae01f751101da8b50
13
+ checksum: 108f022d9def20cea03aae52f9c07e8f35ef64a2c046edaad01a38966e1e45a7
10
14
  filename: appsignal-x86_64-darwin-all-static.tar.gz
11
15
  dynamic:
12
- checksum: e89f0ba9d1a00fbedeef7ebd2b4f32f0a93cc08ebed0062a150e0613c4324810
16
+ checksum: da1ed61e3a2b3b0aac3557dfa1d394d3cfaa06dd1c523800b3aa4036f603d6dd
13
17
  filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
14
18
  universal-darwin:
15
19
  static:
16
- checksum: 7b17cb76edc58ea54381455f74934d08efbfb7807007e97ae01f751101da8b50
20
+ checksum: 108f022d9def20cea03aae52f9c07e8f35ef64a2c046edaad01a38966e1e45a7
17
21
  filename: appsignal-x86_64-darwin-all-static.tar.gz
18
22
  dynamic:
19
- checksum: e89f0ba9d1a00fbedeef7ebd2b4f32f0a93cc08ebed0062a150e0613c4324810
23
+ checksum: da1ed61e3a2b3b0aac3557dfa1d394d3cfaa06dd1c523800b3aa4036f603d6dd
20
24
  filename: appsignal-x86_64-darwin-all-dynamic.tar.gz
21
25
  aarch64-darwin:
22
26
  static:
23
- checksum: d90172492ccf83527696fcd0353796d3d0d4e1704ff986ae90a774a7f11a85a2
27
+ checksum: 0eacd24a3a053f2f80c8c7aeb7fafa9e851588ddbe798de8f40277b77e2819d5
24
28
  filename: appsignal-aarch64-darwin-all-static.tar.gz
25
29
  dynamic:
26
- checksum: 26677b83d08369ce34026f461c61ea25c645a327129d44871f2ada581de9569f
30
+ checksum: ef50dbb8f69ce25bc9d6145df2df71e105c7c48a66b42005f5529d5671b9618e
27
31
  filename: appsignal-aarch64-darwin-all-dynamic.tar.gz
28
32
  arm64-darwin:
29
33
  static:
30
- checksum: d90172492ccf83527696fcd0353796d3d0d4e1704ff986ae90a774a7f11a85a2
34
+ checksum: 0eacd24a3a053f2f80c8c7aeb7fafa9e851588ddbe798de8f40277b77e2819d5
31
35
  filename: appsignal-aarch64-darwin-all-static.tar.gz
32
36
  dynamic:
33
- checksum: 26677b83d08369ce34026f461c61ea25c645a327129d44871f2ada581de9569f
37
+ checksum: ef50dbb8f69ce25bc9d6145df2df71e105c7c48a66b42005f5529d5671b9618e
34
38
  filename: appsignal-aarch64-darwin-all-dynamic.tar.gz
35
39
  arm-darwin:
36
40
  static:
37
- checksum: d90172492ccf83527696fcd0353796d3d0d4e1704ff986ae90a774a7f11a85a2
41
+ checksum: 0eacd24a3a053f2f80c8c7aeb7fafa9e851588ddbe798de8f40277b77e2819d5
38
42
  filename: appsignal-aarch64-darwin-all-static.tar.gz
39
43
  dynamic:
40
- checksum: 26677b83d08369ce34026f461c61ea25c645a327129d44871f2ada581de9569f
44
+ checksum: ef50dbb8f69ce25bc9d6145df2df71e105c7c48a66b42005f5529d5671b9618e
41
45
  filename: appsignal-aarch64-darwin-all-dynamic.tar.gz
42
46
  aarch64-linux:
43
47
  static:
44
- checksum: bef06f27d98cc1afc30b2d8fa23af69bd0206407b0d8d2f052278de3b8c5f2b5
48
+ checksum: e45c227bf87d855e0a94d3fcb42a96a4140458f796c67865c650ef3ff1275c57
45
49
  filename: appsignal-aarch64-linux-all-static.tar.gz
46
50
  dynamic:
47
- checksum: ad8d4db1ba97afb662d32ffb3fa63b4302f87c4e58a23dd69c938dea3fe86037
51
+ checksum: 36468b88d52d5a9bf139bf6bc58ecf1726691b3e5897d531f3ed444a839366e0
48
52
  filename: appsignal-aarch64-linux-all-dynamic.tar.gz
49
53
  i686-linux:
50
54
  static:
51
- checksum: 7e0aa277c4e49ebe1b805e9db615544c5488a23d8b439867a2a6357d37c897bc
55
+ checksum: 52a6e693650710f1a8b2b389d4a3dc7194069a4eb507b02b068e05f60b92e790
52
56
  filename: appsignal-i686-linux-all-static.tar.gz
53
57
  dynamic:
54
- checksum: e3e825cdeaab9610eedda74403a01ea8a250c180c9d9703b91444035fdd4e623
58
+ checksum: 5365cff91857b87522a524a8e7ba3c19ea2306d4b0b5ea994afd18bdece4e414
55
59
  filename: appsignal-i686-linux-all-dynamic.tar.gz
56
60
  x86-linux:
57
61
  static:
58
- checksum: 7e0aa277c4e49ebe1b805e9db615544c5488a23d8b439867a2a6357d37c897bc
62
+ checksum: 52a6e693650710f1a8b2b389d4a3dc7194069a4eb507b02b068e05f60b92e790
59
63
  filename: appsignal-i686-linux-all-static.tar.gz
60
64
  dynamic:
61
- checksum: e3e825cdeaab9610eedda74403a01ea8a250c180c9d9703b91444035fdd4e623
65
+ checksum: 5365cff91857b87522a524a8e7ba3c19ea2306d4b0b5ea994afd18bdece4e414
62
66
  filename: appsignal-i686-linux-all-dynamic.tar.gz
63
67
  x86_64-linux:
64
68
  static:
65
- checksum: e918e24ff1f86d939b8f571506b11f2890d81c741de56cb06ac81b5dcc3f70e1
69
+ checksum: 8ee5443ca68a3cbac7b63a079bfd734fffd84dbdeab1b9fae7379d7da544d096
66
70
  filename: appsignal-x86_64-linux-all-static.tar.gz
67
71
  dynamic:
68
- checksum: b1420778946b15931b2acc8813ec50d1642ac94e56e8c4f81aa3ce7a3592531e
72
+ checksum: 46c4597cc9cefea80e0a8105998125308dbdfba52939c5bdd8685cbe7493df99
69
73
  filename: appsignal-x86_64-linux-all-dynamic.tar.gz
70
74
  x86_64-linux-musl:
71
75
  static:
72
- checksum: 1a90421519d7860bf41d606866252cc7f1cb828a7efb9622045ee4f04d757ebd
76
+ checksum: 4e01355da3a638bf1fefda47786323eb76345a49e77afab42d79df8510f52e07
73
77
  filename: appsignal-x86_64-linux-musl-all-static.tar.gz
74
78
  dynamic:
75
- checksum: 242da6e33a6b5579a829a178780554f46fc8083f05eecf7d366cd5385a8da994
79
+ checksum: 33d98d3c11670d92ed51df76f30c6024204a2d8d258df5745b50b6319751b377
76
80
  filename: appsignal-x86_64-linux-musl-all-dynamic.tar.gz
77
81
  x86_64-freebsd:
78
82
  static:
79
- checksum: 22cdd8e44e60dd69003d28ea95c994c27d2223a3872c541c966f32dbea3b0462
83
+ checksum: 6ba022dc3c66b3ff53316ef55b4841e329dc84c0c585dcd87314bcd9ffae9aab
80
84
  filename: appsignal-x86_64-freebsd-all-static.tar.gz
81
85
  dynamic:
82
- checksum: 859d6950a25c38a1bd5e262e0b91c409eb16b97d136e132a86747cd0f92e5c31
86
+ checksum: cdce0bf8a9eb0b8496904594a282c58f6c295b1e7c521ed3e4146ea73fb09b0d
83
87
  filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
84
88
  amd64-freebsd:
85
89
  static:
86
- checksum: 22cdd8e44e60dd69003d28ea95c994c27d2223a3872c541c966f32dbea3b0462
90
+ checksum: 6ba022dc3c66b3ff53316ef55b4841e329dc84c0c585dcd87314bcd9ffae9aab
87
91
  filename: appsignal-x86_64-freebsd-all-static.tar.gz
88
92
  dynamic:
89
- checksum: 859d6950a25c38a1bd5e262e0b91c409eb16b97d136e132a86747cd0f92e5c31
93
+ checksum: cdce0bf8a9eb0b8496904594a282c58f6c295b1e7c521ed3e4146ea73fb09b0d
90
94
  filename: appsignal-x86_64-freebsd-all-dynamic.tar.gz
@@ -36,6 +36,7 @@ module Appsignal
36
36
  :enable_gc_instrumentation => false,
37
37
  :enable_host_metrics => true,
38
38
  :enable_minutely_probes => true,
39
+ :enable_statsd => true,
39
40
  :ca_file_path => File.expand_path(File.join("../../../resources/cacert.pem"), __FILE__),
40
41
  :dns_servers => [],
41
42
  :files_world_accessible => true,
@@ -69,6 +70,7 @@ module Appsignal
69
70
  "APPSIGNAL_WORKING_DIRECTORY_PATH" => :working_directory_path,
70
71
  "APPSIGNAL_ENABLE_HOST_METRICS" => :enable_host_metrics,
71
72
  "APPSIGNAL_ENABLE_MINUTELY_PROBES" => :enable_minutely_probes,
73
+ "APPSIGNAL_ENABLE_STATSD" => :enable_statsd,
72
74
  "APPSIGNAL_HOSTNAME" => :hostname,
73
75
  "APPSIGNAL_CA_FILE_PATH" => :ca_file_path,
74
76
  "APPSIGNAL_DNS_SERVERS" => :dns_servers,
@@ -99,6 +101,7 @@ module Appsignal
99
101
  APPSIGNAL_ENABLE_GC_INSTRUMENTATION
100
102
  APPSIGNAL_ENABLE_HOST_METRICS
101
103
  APPSIGNAL_ENABLE_MINUTELY_PROBES
104
+ APPSIGNAL_ENABLE_STATSD
102
105
  APPSIGNAL_FILES_WORLD_ACCESSIBLE
103
106
  APPSIGNAL_INSTRUMENT_NET_HTTP
104
107
  APPSIGNAL_INSTRUMENT_REDIS
@@ -290,7 +293,7 @@ module Appsignal
290
293
  ENV["_APPSIGNAL_FILES_WORLD_ACCESSIBLE"] = config_hash[:files_world_accessible].to_s
291
294
  ENV["_APPSIGNAL_TRANSACTION_DEBUG_MODE"] = config_hash[:transaction_debug_mode].to_s
292
295
  ENV["_APPSIGNAL_SEND_ENVIRONMENT_METADATA"] = config_hash[:send_environment_metadata].to_s
293
- ENV["_APPSIGNAL_ENABLE_STATSD"] = "true"
296
+ ENV["_APPSIGNAL_ENABLE_STATSD"] = config_hash[:enable_statsd].to_s
294
297
  ENV["_APP_REVISION"] = config_hash[:revision].to_s
295
298
  end
296
299
 
@@ -0,0 +1,16 @@
1
+ module Appsignal
2
+ class Hooks
3
+ # @api private
4
+ class MriHook < Appsignal::Hooks::Hook
5
+ register :mri
6
+
7
+ def dependencies_present?
8
+ defined?(::RubyVM)
9
+ end
10
+
11
+ def install
12
+ Appsignal::Minutely.probes.register :mri, Appsignal::Probes::MriProbe
13
+ end
14
+ end
15
+ end
16
+ end
@@ -94,6 +94,7 @@ require "appsignal/hooks/active_job"
94
94
  require "appsignal/hooks/active_support_notifications"
95
95
  require "appsignal/hooks/celluloid"
96
96
  require "appsignal/hooks/delayed_job"
97
+ require "appsignal/hooks/mri"
97
98
  require "appsignal/hooks/net_http"
98
99
  require "appsignal/hooks/passenger"
99
100
  require "appsignal/hooks/puma"
@@ -0,0 +1,26 @@
1
+ module Appsignal
2
+ module Probes
3
+ class MriProbe
4
+ # @api private
5
+ def self.dependencies_present?
6
+ defined?(::RubyVM) && ::RubyVM.respond_to?(:stat)
7
+ end
8
+
9
+ def initialize
10
+ Appsignal.logger.debug("Initializing VM probe")
11
+ end
12
+
13
+ # @api private
14
+ def call
15
+ stat = RubyVM.stat
16
+ [:class_serial, :global_constant_state].each do |metric|
17
+ Appsignal.add_distribution_value(
18
+ "ruby_vm",
19
+ stat[metric],
20
+ :metric => metric
21
+ )
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -3,4 +3,5 @@ module Appsignal
3
3
  end
4
4
  end
5
5
 
6
+ require "appsignal/probes/mri"
6
7
  require "appsignal/probes/sidekiq"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Appsignal
4
- VERSION = "3.0.13".freeze
4
+ VERSION = "3.0.14".freeze
5
5
  end
@@ -172,6 +172,7 @@ describe Appsignal::Config do
172
172
  :enable_gc_instrumentation => false,
173
173
  :enable_host_metrics => true,
174
174
  :enable_minutely_probes => true,
175
+ :enable_statsd => true,
175
176
  :ca_file_path => File.join(resources_dir, "cacert.pem"),
176
177
  :dns_servers => [],
177
178
  :files_world_accessible => true,
@@ -0,0 +1,23 @@
1
+ describe Appsignal::Hooks::MriHook do
2
+ describe "#dependencies_present?" do
3
+ subject { described_class.new.dependencies_present? }
4
+
5
+ if DependencyHelper.running_jruby?
6
+ it { is_expected.to be_falsy }
7
+ else
8
+ it { is_expected.to be_truthy }
9
+ end
10
+ end
11
+
12
+ unless DependencyHelper.running_jruby?
13
+ context "install" do
14
+ before do
15
+ Appsignal::Hooks.load_hooks
16
+ end
17
+
18
+ it "should be added to minutely probes" do
19
+ expect(Appsignal::Minutely.probes[:mri]).to be Appsignal::Probes::MriProbe
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,33 @@
1
+ describe Appsignal::Probes::MriProbe do
2
+ let(:probe) { described_class.new }
3
+
4
+ describe ".dependencies_present?" do
5
+ if DependencyHelper.running_jruby? || DependencyHelper.running_ruby_2_0?
6
+ it "should not be present" do
7
+ expect(described_class.dependencies_present?).to be_falsy
8
+ end
9
+ else
10
+ it "should be present" do
11
+ expect(described_class.dependencies_present?).to be_truthy
12
+ end
13
+ end
14
+ end
15
+
16
+ unless DependencyHelper.running_jruby? || DependencyHelper.running_ruby_2_0?
17
+ describe "#call" do
18
+ it "should track vm metrics" do
19
+ expect_distribution_value(:class_serial)
20
+ expect_distribution_value(:global_constant_state)
21
+
22
+ probe.call
23
+ end
24
+ end
25
+
26
+ def expect_distribution_value(metric)
27
+ expect(Appsignal).to receive(:add_distribution_value)
28
+ .with("ruby_vm", kind_of(Numeric), :metric => metric)
29
+ .and_call_original
30
+ .once
31
+ end
32
+ end
33
+ end
@@ -5,6 +5,10 @@ module DependencyHelper
5
5
  Gem::Version.new(RUBY_VERSION)
6
6
  end
7
7
 
8
+ def running_ruby_2_0?
9
+ ruby_version.segments.take(2) == [2, 0]
10
+ end
11
+
8
12
  def running_jruby?
9
13
  defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
10
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appsignal
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.13
4
+ version: 3.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Beekman
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-08-19 00:00:00.000000000 Z
13
+ date: 2021-09-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rack
@@ -213,6 +213,7 @@ files:
213
213
  - lib/appsignal/hooks/delayed_job.rb
214
214
  - lib/appsignal/hooks/excon.rb
215
215
  - lib/appsignal/hooks/mongo_ruby_driver.rb
216
+ - lib/appsignal/hooks/mri.rb
216
217
  - lib/appsignal/hooks/net_http.rb
217
218
  - lib/appsignal/hooks/passenger.rb
218
219
  - lib/appsignal/hooks/puma.rb
@@ -250,6 +251,7 @@ files:
250
251
  - lib/appsignal/marker.rb
251
252
  - lib/appsignal/minutely.rb
252
253
  - lib/appsignal/probes.rb
254
+ - lib/appsignal/probes/mri.rb
253
255
  - lib/appsignal/probes/sidekiq.rb
254
256
  - lib/appsignal/rack/generic_instrumentation.rb
255
257
  - lib/appsignal/rack/rails_instrumentation.rb
@@ -310,6 +312,7 @@ files:
310
312
  - spec/lib/appsignal/hooks/delayed_job_spec.rb
311
313
  - spec/lib/appsignal/hooks/excon_spec.rb
312
314
  - spec/lib/appsignal/hooks/mongo_ruby_driver_spec.rb
315
+ - spec/lib/appsignal/hooks/mri_spec.rb
313
316
  - spec/lib/appsignal/hooks/net_http_spec.rb
314
317
  - spec/lib/appsignal/hooks/passenger_spec.rb
315
318
  - spec/lib/appsignal/hooks/puma_spec.rb
@@ -336,6 +339,7 @@ files:
336
339
  - spec/lib/appsignal/logger_spec.rb
337
340
  - spec/lib/appsignal/marker_spec.rb
338
341
  - spec/lib/appsignal/minutely_spec.rb
342
+ - spec/lib/appsignal/probes/mri_spec.rb
339
343
  - spec/lib/appsignal/probes/sidekiq_spec.rb
340
344
  - spec/lib/appsignal/rack/generic_instrumentation_spec.rb
341
345
  - spec/lib/appsignal/rack/rails_instrumentation_spec.rb
@@ -458,6 +462,7 @@ test_files:
458
462
  - spec/lib/appsignal/hooks/delayed_job_spec.rb
459
463
  - spec/lib/appsignal/hooks/excon_spec.rb
460
464
  - spec/lib/appsignal/hooks/mongo_ruby_driver_spec.rb
465
+ - spec/lib/appsignal/hooks/mri_spec.rb
461
466
  - spec/lib/appsignal/hooks/net_http_spec.rb
462
467
  - spec/lib/appsignal/hooks/passenger_spec.rb
463
468
  - spec/lib/appsignal/hooks/puma_spec.rb
@@ -484,6 +489,7 @@ test_files:
484
489
  - spec/lib/appsignal/logger_spec.rb
485
490
  - spec/lib/appsignal/marker_spec.rb
486
491
  - spec/lib/appsignal/minutely_spec.rb
492
+ - spec/lib/appsignal/probes/mri_spec.rb
487
493
  - spec/lib/appsignal/probes/sidekiq_spec.rb
488
494
  - spec/lib/appsignal/rack/generic_instrumentation_spec.rb
489
495
  - spec/lib/appsignal/rack/rails_instrumentation_spec.rb