appsignal 3.0.21.alpha.1-java → 3.0.21-java
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.md +10 -0
- data/lib/appsignal/cli/diagnose.rb +2 -1
- data/lib/appsignal/config.rb +40 -26
- data/lib/appsignal/version.rb +1 -1
- data/lib/appsignal.rb +0 -15
- data/spec/lib/appsignal/cli/diagnose_spec.rb +9 -6
- data/spec/lib/appsignal/config_spec.rb +81 -72
- data/spec/lib/appsignal_spec.rb +0 -18
- metadata +4 -6
- data/spec/support/mocks/mock_extension.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d06f2baec0dd5d4ddc29c70448bc5bf2631b229f7a09b3e3348b30222b801c9d
|
4
|
+
data.tar.gz: 4bf2cdd9526d816434467686959ca3f2af27413ab3389253dfb7c7a5a0f0218c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24e9204497e65b7131724c37e67a1ffa106992244be8aa17ac0055869ea166a5679ff982dc1e726c95045efab17488d6c9c3b679c44314fa2f9a3accd9420734
|
7
|
+
data.tar.gz: fcd17e8dd7d8cfbd68ea2f51e2809553629cac960d3b75ce78ac42c8d5c2773faf665f7eb70886f0ffec39c9b6058cf1693dbc3d2e9112c4a98394c1e12ca15c
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# AppSignal for Ruby gem Changelog
|
2
2
|
|
3
|
+
## 3.0.21
|
4
|
+
|
5
|
+
### Changed
|
6
|
+
|
7
|
+
- [548dd6f4](https://github.com/appsignal/appsignal-ruby/commit/548dd6f4c61ae3be24995a200dc3e5bea1a5f58c) patch - Add config override source. Track final decisions made by the Ruby gem in the configuration in the `override` config source. This will help us track new config options which are being set by their deprecated predecessors in the diagnose report.
|
8
|
+
|
9
|
+
### Removed
|
10
|
+
|
11
|
+
- [3f503ade](https://github.com/appsignal/appsignal-ruby/commit/3f503ade83f22f4b0d86d76ea00e5f4dd3c56b6f) patch - Remove internal `Appsignal.extensions` system. It was unused.
|
12
|
+
|
3
13
|
## 3.0.21.alpha.1
|
4
14
|
|
5
15
|
### Changed
|
@@ -471,7 +471,8 @@ module Appsignal
|
|
471
471
|
:system => config.system_config,
|
472
472
|
:initial => config.initial_config,
|
473
473
|
:file => config.file_config,
|
474
|
-
:env => config.env_config
|
474
|
+
:env => config.env_config,
|
475
|
+
:override => config.override_config
|
475
476
|
}
|
476
477
|
}
|
477
478
|
print_config_options(config)
|
data/lib/appsignal/config.rb
CHANGED
@@ -170,7 +170,7 @@ module Appsignal
|
|
170
170
|
# @return [Hash]
|
171
171
|
|
172
172
|
attr_reader :root_path, :env, :config_hash, :system_config,
|
173
|
-
:initial_config, :file_config, :env_config
|
173
|
+
:initial_config, :file_config, :env_config, :override_config
|
174
174
|
attr_accessor :logger
|
175
175
|
|
176
176
|
# Initialize a new configuration object for AppSignal.
|
@@ -231,6 +231,9 @@ module Appsignal
|
|
231
231
|
# Load config from environment variables
|
232
232
|
@env_config = load_from_environment
|
233
233
|
merge(env_config)
|
234
|
+
# Load config overrides
|
235
|
+
@override_config = determine_overrides
|
236
|
+
merge(override_config)
|
234
237
|
# Handle deprecated config options
|
235
238
|
maintain_backwards_compatibility
|
236
239
|
# Validate that we have a correct config
|
@@ -396,37 +399,23 @@ module Appsignal
|
|
396
399
|
|
397
400
|
# Maintain backwards compatibility with deprecated config options.
|
398
401
|
#
|
399
|
-
# Add deprecated config options here
|
400
|
-
# replacement,
|
402
|
+
# Add warnings for deprecated config options here if they have no
|
403
|
+
# replacement, or should be non-functional.
|
404
|
+
#
|
405
|
+
# Add them to {determine_overrides} if replacement config options should be
|
406
|
+
# set instead.
|
401
407
|
#
|
402
408
|
# Make sure to remove the contents of this method in the next major
|
403
409
|
# version, but the method itself with an empty body can stick around as a
|
404
410
|
# structure for future deprecations.
|
405
411
|
def maintain_backwards_compatibility
|
406
|
-
|
407
|
-
send_session_data = config_hash[:send_session_data]
|
408
|
-
if skip_session_data.nil? # Deprecated option is not set
|
409
|
-
if send_session_data.nil? # Not configured by user
|
410
|
-
@system_config[:send_session_data] = true
|
411
|
-
merge(:send_session_data => true) # Set default value
|
412
|
-
end
|
413
|
-
else
|
414
|
-
if send_session_data.nil? # Not configured by user
|
415
|
-
@system_config[:send_session_data] = !skip_session_data
|
416
|
-
merge(:send_session_data => !skip_session_data)
|
417
|
-
end
|
418
|
-
deprecation_message "The `skip_session_data` config option is " \
|
419
|
-
"deprecated. Please use `send_session_data` instead.",
|
420
|
-
logger
|
421
|
-
end
|
412
|
+
return unless config_hash.key?(:working_dir_path)
|
422
413
|
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
logger
|
429
|
-
end
|
414
|
+
deprecation_message \
|
415
|
+
"The `working_dir_path` option is deprecated, please use " \
|
416
|
+
"`working_directory_path` instead and specify the " \
|
417
|
+
"full path to the working directory",
|
418
|
+
logger
|
430
419
|
end
|
431
420
|
|
432
421
|
def load_from_environment
|
@@ -456,6 +445,31 @@ module Appsignal
|
|
456
445
|
config
|
457
446
|
end
|
458
447
|
|
448
|
+
# Set config options based on the final user config. Fix any conflicting
|
449
|
+
# config or set new config options based on deprecated config options.
|
450
|
+
#
|
451
|
+
# Make sure to remove behavior for deprecated config options in this method
|
452
|
+
# in the next major version, but the method itself with an empty body can
|
453
|
+
# stick around as a structure for future deprecations.
|
454
|
+
def determine_overrides
|
455
|
+
config = {}
|
456
|
+
skip_session_data = config_hash[:skip_session_data]
|
457
|
+
send_session_data = config_hash[:send_session_data]
|
458
|
+
if skip_session_data.nil? # Deprecated option is not set
|
459
|
+
if send_session_data.nil? # Not configured by user
|
460
|
+
config[:send_session_data] = true # Set default value
|
461
|
+
end
|
462
|
+
else
|
463
|
+
deprecation_message "The `skip_session_data` config option is " \
|
464
|
+
"deprecated. Please use `send_session_data` instead.",
|
465
|
+
logger
|
466
|
+
# Not configured by user
|
467
|
+
config[:send_session_data] = !skip_session_data if send_session_data.nil?
|
468
|
+
end
|
469
|
+
|
470
|
+
config
|
471
|
+
end
|
472
|
+
|
459
473
|
def merge(new_config)
|
460
474
|
new_config.each do |key, value|
|
461
475
|
unless config_hash[key].nil?
|
data/lib/appsignal/version.rb
CHANGED
data/lib/appsignal.rb
CHANGED
@@ -58,20 +58,6 @@ module Appsignal
|
|
58
58
|
# @see start_logger
|
59
59
|
attr_writer :logger
|
60
60
|
|
61
|
-
# @api private
|
62
|
-
def extensions
|
63
|
-
@extensions ||= []
|
64
|
-
end
|
65
|
-
|
66
|
-
# @api private
|
67
|
-
def initialize_extensions
|
68
|
-
Appsignal.logger.debug("Initializing extensions")
|
69
|
-
extensions.each do |extension|
|
70
|
-
Appsignal.logger.debug("Initializing #{extension}")
|
71
|
-
extension.initializer
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
61
|
# @api private
|
76
62
|
def testing?
|
77
63
|
false
|
@@ -123,7 +109,6 @@ module Appsignal
|
|
123
109
|
config.write_to_environment
|
124
110
|
Appsignal::Extension.start
|
125
111
|
Appsignal::Hooks.load_hooks
|
126
|
-
initialize_extensions
|
127
112
|
|
128
113
|
if config[:enable_allocation_tracking] && !Appsignal::System.jruby?
|
129
114
|
Appsignal::Extension.install_allocation_event_hook
|
@@ -772,10 +772,11 @@ describe Appsignal::CLI::Diagnose, :api_stub => true, :send_report => :yes_cli_i
|
|
772
772
|
"options" => default_config.merge("env" => "", "send_session_data" => true),
|
773
773
|
"sources" => {
|
774
774
|
"default" => default_config,
|
775
|
-
"system" => {
|
775
|
+
"system" => {},
|
776
776
|
"initial" => { "env" => "" },
|
777
777
|
"file" => {},
|
778
|
-
"env" => {}
|
778
|
+
"env" => {},
|
779
|
+
"override" => { "send_session_data" => true }
|
779
780
|
}
|
780
781
|
)
|
781
782
|
end
|
@@ -890,10 +891,11 @@ describe Appsignal::CLI::Diagnose, :api_stub => true, :send_report => :yes_cli_i
|
|
890
891
|
"options" => hash_with_string_keys(final_config),
|
891
892
|
"sources" => {
|
892
893
|
"default" => hash_with_string_keys(Appsignal::Config::DEFAULT_CONFIG),
|
893
|
-
"system" => {
|
894
|
+
"system" => {},
|
894
895
|
"initial" => hash_with_string_keys(config.initial_config.merge(additional_initial_config)),
|
895
896
|
"file" => hash_with_string_keys(config.file_config),
|
896
|
-
"env" => {}
|
897
|
+
"env" => {},
|
898
|
+
"override" => { "send_session_data" => true }
|
897
899
|
}
|
898
900
|
)
|
899
901
|
end
|
@@ -917,10 +919,11 @@ describe Appsignal::CLI::Diagnose, :api_stub => true, :send_report => :yes_cli_i
|
|
917
919
|
"options" => hash_with_string_keys(config.config_hash).merge("env" => "foobar"),
|
918
920
|
"sources" => {
|
919
921
|
"default" => hash_with_string_keys(Appsignal::Config::DEFAULT_CONFIG),
|
920
|
-
"system" => {
|
922
|
+
"system" => {},
|
921
923
|
"initial" => hash_with_string_keys(config.initial_config),
|
922
924
|
"file" => hash_with_string_keys(config.file_config),
|
923
|
-
"env" => {}
|
925
|
+
"env" => {},
|
926
|
+
"override" => { "send_session_data" => true }
|
924
927
|
}
|
925
928
|
)
|
926
929
|
end
|
@@ -434,6 +434,87 @@ describe Appsignal::Config do
|
|
434
434
|
end
|
435
435
|
end
|
436
436
|
|
437
|
+
describe "with config based on overrides" do
|
438
|
+
let(:log_stream) { StringIO.new }
|
439
|
+
let(:logger) { test_logger(log_stream) }
|
440
|
+
let(:logs) { log_contents(log_stream) }
|
441
|
+
let(:config) do
|
442
|
+
described_class.new(Dir.pwd, "production", config_options, logger)
|
443
|
+
end
|
444
|
+
|
445
|
+
describe "skip_session_data" do
|
446
|
+
let(:err_stream) { std_stream }
|
447
|
+
let(:stderr) { err_stream.read }
|
448
|
+
let(:deprecation_message) do
|
449
|
+
"The `skip_session_data` config option is deprecated. Please use " \
|
450
|
+
"`send_session_data` instead."
|
451
|
+
end
|
452
|
+
before do
|
453
|
+
capture_std_streams(std_stream, err_stream) { config }
|
454
|
+
end
|
455
|
+
|
456
|
+
context "when not set" do
|
457
|
+
let(:config_options) { {} }
|
458
|
+
|
459
|
+
it "sets the default send_session_data value" do
|
460
|
+
expect(config[:skip_session_data]).to be_nil
|
461
|
+
expect(config[:send_session_data]).to eq(true)
|
462
|
+
expect(config.override_config[:send_session_data]).to eq(true)
|
463
|
+
end
|
464
|
+
|
465
|
+
it "does not print a deprecation warning" do
|
466
|
+
expect(stderr).to_not include("appsignal WARNING: #{deprecation_message}")
|
467
|
+
expect(logs).to_not include(deprecation_message)
|
468
|
+
end
|
469
|
+
end
|
470
|
+
|
471
|
+
context "when set to true" do
|
472
|
+
let(:config_options) { { :skip_session_data => true } }
|
473
|
+
|
474
|
+
it "sets send_session_data if send_session_data is not set by the user" do
|
475
|
+
expect(config[:skip_session_data]).to eq(true)
|
476
|
+
expect(config[:send_session_data]).to eq(false)
|
477
|
+
expect(config.override_config[:send_session_data]).to eq(false)
|
478
|
+
end
|
479
|
+
|
480
|
+
it "prints a deprecation warning" do
|
481
|
+
expect(stderr).to include("appsignal WARNING: #{deprecation_message}")
|
482
|
+
expect(logs).to include(deprecation_message)
|
483
|
+
end
|
484
|
+
end
|
485
|
+
|
486
|
+
context "when set to false" do
|
487
|
+
let(:config_options) { { :skip_session_data => false } }
|
488
|
+
|
489
|
+
it "sets send_session_data if send_session_data is not set by the user" do
|
490
|
+
expect(config[:skip_session_data]).to eq(false)
|
491
|
+
expect(config[:send_session_data]).to eq(true)
|
492
|
+
expect(config.override_config[:send_session_data]).to eq(true)
|
493
|
+
end
|
494
|
+
|
495
|
+
it "prints a deprecation warning" do
|
496
|
+
expect(stderr).to include("appsignal WARNING: #{deprecation_message}")
|
497
|
+
expect(logs).to include(deprecation_message)
|
498
|
+
end
|
499
|
+
end
|
500
|
+
|
501
|
+
context "when skip_session_data and send_session_data are both set" do
|
502
|
+
let(:config_options) { { :skip_session_data => true, :send_session_data => true } }
|
503
|
+
|
504
|
+
it "does not overwrite the send_session_data value" do
|
505
|
+
expect(config[:skip_session_data]).to eq(true)
|
506
|
+
expect(config[:send_session_data]).to eq(true)
|
507
|
+
expect(config.override_config[:send_session_data]).to be_nil
|
508
|
+
end
|
509
|
+
|
510
|
+
it "prints a deprecation warning" do
|
511
|
+
expect(stderr).to include("appsignal WARNING: #{deprecation_message}")
|
512
|
+
expect(logs).to include(deprecation_message)
|
513
|
+
end
|
514
|
+
end
|
515
|
+
end
|
516
|
+
end
|
517
|
+
|
437
518
|
describe "config keys" do
|
438
519
|
describe ":endpoint" do
|
439
520
|
subject { config[:endpoint] }
|
@@ -789,78 +870,6 @@ describe Appsignal::Config do
|
|
789
870
|
end
|
790
871
|
end
|
791
872
|
end
|
792
|
-
|
793
|
-
describe "skip_session_data" do
|
794
|
-
let(:err_stream) { std_stream }
|
795
|
-
let(:stderr) { err_stream.read }
|
796
|
-
let(:deprecation_message) do
|
797
|
-
"The `skip_session_data` config option is deprecated. Please use " \
|
798
|
-
"`send_session_data` instead."
|
799
|
-
end
|
800
|
-
before do
|
801
|
-
capture_std_streams(std_stream, err_stream) { config }
|
802
|
-
end
|
803
|
-
|
804
|
-
context "when not set" do
|
805
|
-
let(:config_options) { {} }
|
806
|
-
|
807
|
-
it "sets the default send_session_data value" do
|
808
|
-
expect(config[:skip_session_data]).to be_nil
|
809
|
-
expect(config[:send_session_data]).to eq(true)
|
810
|
-
expect(config.system_config[:send_session_data]).to eq(true)
|
811
|
-
end
|
812
|
-
|
813
|
-
it "does not print a deprecation warning" do
|
814
|
-
expect(stderr).to_not include("appsignal WARNING: #{deprecation_message}")
|
815
|
-
expect(logs).to_not include(deprecation_message)
|
816
|
-
end
|
817
|
-
end
|
818
|
-
|
819
|
-
context "when set to true" do
|
820
|
-
let(:config_options) { { :skip_session_data => true } }
|
821
|
-
|
822
|
-
it "sets send_session_data if send_session_data is not set by the user" do
|
823
|
-
expect(config[:skip_session_data]).to eq(true)
|
824
|
-
expect(config[:send_session_data]).to eq(false)
|
825
|
-
expect(config.system_config[:send_session_data]).to eq(false)
|
826
|
-
end
|
827
|
-
|
828
|
-
it "prints a deprecation warning" do
|
829
|
-
expect(stderr).to include("appsignal WARNING: #{deprecation_message}")
|
830
|
-
expect(logs).to include(deprecation_message)
|
831
|
-
end
|
832
|
-
end
|
833
|
-
|
834
|
-
context "when set to false" do
|
835
|
-
let(:config_options) { { :skip_session_data => false } }
|
836
|
-
|
837
|
-
it "sets send_session_data if send_session_data is not set by the user" do
|
838
|
-
expect(config[:skip_session_data]).to eq(false)
|
839
|
-
expect(config[:send_session_data]).to eq(true)
|
840
|
-
expect(config.system_config[:send_session_data]).to eq(true)
|
841
|
-
end
|
842
|
-
|
843
|
-
it "prints a deprecation warning" do
|
844
|
-
expect(stderr).to include("appsignal WARNING: #{deprecation_message}")
|
845
|
-
expect(logs).to include(deprecation_message)
|
846
|
-
end
|
847
|
-
end
|
848
|
-
|
849
|
-
context "when skip_session_data and send_session_data are both set" do
|
850
|
-
let(:config_options) { { :skip_session_data => true, :send_session_data => true } }
|
851
|
-
|
852
|
-
it "does not overwrite the send_session_data value" do
|
853
|
-
expect(config[:skip_session_data]).to eq(true)
|
854
|
-
expect(config[:send_session_data]).to eq(true)
|
855
|
-
expect(config.system_config[:send_session_data]).to be_nil
|
856
|
-
end
|
857
|
-
|
858
|
-
it "prints a deprecation warning" do
|
859
|
-
expect(stderr).to include("appsignal WARNING: #{deprecation_message}")
|
860
|
-
expect(logs).to include(deprecation_message)
|
861
|
-
end
|
862
|
-
end
|
863
|
-
end
|
864
873
|
end
|
865
874
|
|
866
875
|
describe "#validate" do
|
data/spec/lib/appsignal_spec.rb
CHANGED
@@ -5,7 +5,6 @@ describe Appsignal do
|
|
5
5
|
# Make sure we have a clean state because we want to test
|
6
6
|
# initialization here.
|
7
7
|
Appsignal.config = nil
|
8
|
-
Appsignal.extensions.clear
|
9
8
|
end
|
10
9
|
|
11
10
|
let(:transaction) { http_request_transaction }
|
@@ -20,14 +19,6 @@ describe Appsignal do
|
|
20
19
|
end
|
21
20
|
end
|
22
21
|
|
23
|
-
describe ".extensions" do
|
24
|
-
it "should keep a list of extensions" do
|
25
|
-
expect(Appsignal.extensions).to be_empty
|
26
|
-
Appsignal.extensions << Appsignal::MockExtension
|
27
|
-
expect(Appsignal.extensions.size).to eq(1)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
22
|
describe ".start" do
|
32
23
|
context "with no config set beforehand" do
|
33
24
|
it "should do nothing when config is not set and there is no valid config in the env" do
|
@@ -63,15 +54,6 @@ describe Appsignal do
|
|
63
54
|
Appsignal.start
|
64
55
|
end
|
65
56
|
|
66
|
-
context "with an extension" do
|
67
|
-
before { Appsignal.extensions << Appsignal::MockExtension }
|
68
|
-
|
69
|
-
it "should call the extension's initializer" do
|
70
|
-
expect(Appsignal::MockExtension).to receive(:initializer)
|
71
|
-
Appsignal.start
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
57
|
context "when allocation tracking and gc instrumentation have been enabled" do
|
76
58
|
before do
|
77
59
|
allow(GC::Profiler).to receive(:enable)
|
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.21
|
4
|
+
version: 3.0.21
|
5
5
|
platform: java
|
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: 2022-02-
|
13
|
+
date: 2022-02-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rack
|
@@ -405,7 +405,6 @@ files:
|
|
405
405
|
- spec/support/matchers/contains_log.rb
|
406
406
|
- spec/support/matchers/have_colorized_text.rb
|
407
407
|
- spec/support/mocks/fake_gc_profiler.rb
|
408
|
-
- spec/support/mocks/mock_extension.rb
|
409
408
|
- spec/support/mocks/mock_probe.rb
|
410
409
|
- spec/support/rails/my_app.rb
|
411
410
|
- spec/support/shared_examples/instrument.rb
|
@@ -437,9 +436,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
437
436
|
version: '2.0'
|
438
437
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
439
438
|
requirements:
|
440
|
-
- - "
|
439
|
+
- - ">="
|
441
440
|
- !ruby/object:Gem::Version
|
442
|
-
version:
|
441
|
+
version: '0'
|
443
442
|
requirements: []
|
444
443
|
rubygems_version: 3.1.6
|
445
444
|
signing_key:
|
@@ -559,7 +558,6 @@ test_files:
|
|
559
558
|
- spec/support/matchers/contains_log.rb
|
560
559
|
- spec/support/matchers/have_colorized_text.rb
|
561
560
|
- spec/support/mocks/fake_gc_profiler.rb
|
562
|
-
- spec/support/mocks/mock_extension.rb
|
563
561
|
- spec/support/mocks/mock_probe.rb
|
564
562
|
- spec/support/rails/my_app.rb
|
565
563
|
- spec/support/shared_examples/instrument.rb
|