appsignal 3.4.12-java → 3.4.14-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.semaphore/semaphore.yml +126 -0
- data/CHANGELOG.md +41 -1
- data/README.md +1 -0
- data/build_matrix.yml +14 -0
- data/ext/agent.rb +27 -27
- data/gemfiles/dry-monitor.gemfile +5 -0
- data/gemfiles/rails-7.1.gemfile +7 -0
- data/lib/appsignal/cli/diagnose.rb +9 -0
- data/lib/appsignal/config.rb +6 -0
- data/lib/appsignal/event_formatter/rom/sql_formatter.rb +18 -0
- data/lib/appsignal/helpers/instrumentation.rb +3 -3
- data/lib/appsignal/hooks/active_support_notifications.rb +18 -9
- data/lib/appsignal/hooks/dry_monitor.rb +20 -0
- data/lib/appsignal/hooks.rb +1 -0
- data/lib/appsignal/integrations/active_support_notifications.rb +26 -0
- data/lib/appsignal/integrations/dry_monitor.rb +22 -0
- data/lib/appsignal/integrations/railtie.rb +8 -3
- data/lib/appsignal/integrations/sidekiq.rb +1 -1
- data/lib/appsignal/probes/sidekiq.rb +5 -3
- data/lib/appsignal/version.rb +1 -1
- data/spec/lib/appsignal/cli/diagnose_spec.rb +33 -1
- data/spec/lib/appsignal/event_formatter/rom/sql_formatter_spec.rb +22 -0
- data/spec/lib/appsignal/hooks/active_support_notifications_spec.rb +6 -0
- data/spec/lib/appsignal/hooks/dry_monitor_spec.rb +104 -0
- data/spec/lib/appsignal/integrations/railtie_spec.rb +91 -74
- data/spec/lib/appsignal/integrations/sidekiq_spec.rb +16 -11
- data/spec/lib/appsignal/probes/sidekiq_spec.rb +29 -6
- data/spec/support/helpers/dependency_helper.rb +4 -0
- data/spec/support/helpers/rails_helper.rb +28 -0
- metadata +11 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 774d3d4ab9304d02728831105a95bd1d5ffa3fad0771936959db8546d3f84c11
|
4
|
+
data.tar.gz: 2fcf98e0fa5f3a92f7fbbde1dde08bbb54c8eff15dbfdbf0080ea9e1e919b0a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6815e3e10960a7d6fdbfbec6cb7a437f9678f1782de458ab8a055e65bffce707a8a48e5ff3189714124007a8b64cdb3021bc25535d10e62bebf7f105dd2c9a07
|
7
|
+
data.tar.gz: cea8d6d4c4b15d7b76d5544bedd5f40689b214ab4a96fca79465604533b1ede3157ab3317cdac06d21affd2a62b538f446e76efc1e7217337cb09e735b145bba
|
data/.semaphore/semaphore.yml
CHANGED
@@ -583,6 +583,24 @@ blocks:
|
|
583
583
|
value: latest
|
584
584
|
commands:
|
585
585
|
- "./support/bundler_wrapper exec rake test"
|
586
|
+
- name: Ruby 3.0.5 for dry-monitor
|
587
|
+
env_vars:
|
588
|
+
- *2
|
589
|
+
- *3
|
590
|
+
- *4
|
591
|
+
- *5
|
592
|
+
- name: RUBY_VERSION
|
593
|
+
value: 3.0.5
|
594
|
+
- name: GEMSET
|
595
|
+
value: dry-monitor
|
596
|
+
- name: BUNDLE_GEMFILE
|
597
|
+
value: gemfiles/dry-monitor.gemfile
|
598
|
+
- name: _RUBYGEMS_VERSION
|
599
|
+
value: latest
|
600
|
+
- name: _BUNDLER_VERSION
|
601
|
+
value: latest
|
602
|
+
commands:
|
603
|
+
- "./support/bundler_wrapper exec rake test"
|
586
604
|
- name: Ruby 3.0.5 for grape
|
587
605
|
env_vars:
|
588
606
|
- *2
|
@@ -781,6 +799,24 @@ blocks:
|
|
781
799
|
value: latest
|
782
800
|
commands:
|
783
801
|
- "./support/bundler_wrapper exec rake test"
|
802
|
+
- name: Ruby 3.0.5 for rails-7.1
|
803
|
+
env_vars:
|
804
|
+
- *2
|
805
|
+
- *3
|
806
|
+
- *4
|
807
|
+
- *5
|
808
|
+
- name: RUBY_VERSION
|
809
|
+
value: 3.0.5
|
810
|
+
- name: GEMSET
|
811
|
+
value: rails-7.1
|
812
|
+
- name: BUNDLE_GEMFILE
|
813
|
+
value: gemfiles/rails-7.1.gemfile
|
814
|
+
- name: _RUBYGEMS_VERSION
|
815
|
+
value: latest
|
816
|
+
- name: _BUNDLER_VERSION
|
817
|
+
value: latest
|
818
|
+
commands:
|
819
|
+
- "./support/bundler_wrapper exec rake test"
|
784
820
|
- name: Ruby 3.0.5 for sequel
|
785
821
|
env_vars:
|
786
822
|
- *2
|
@@ -940,6 +976,24 @@ blocks:
|
|
940
976
|
value: latest
|
941
977
|
commands:
|
942
978
|
- "./support/bundler_wrapper exec rake test"
|
979
|
+
- name: Ruby 3.1.3 for dry-monitor
|
980
|
+
env_vars:
|
981
|
+
- *2
|
982
|
+
- *3
|
983
|
+
- *4
|
984
|
+
- *5
|
985
|
+
- name: RUBY_VERSION
|
986
|
+
value: 3.1.3
|
987
|
+
- name: GEMSET
|
988
|
+
value: dry-monitor
|
989
|
+
- name: BUNDLE_GEMFILE
|
990
|
+
value: gemfiles/dry-monitor.gemfile
|
991
|
+
- name: _RUBYGEMS_VERSION
|
992
|
+
value: latest
|
993
|
+
- name: _BUNDLER_VERSION
|
994
|
+
value: latest
|
995
|
+
commands:
|
996
|
+
- "./support/bundler_wrapper exec rake test"
|
943
997
|
- name: Ruby 3.1.3 for grape
|
944
998
|
env_vars:
|
945
999
|
- *2
|
@@ -1120,6 +1174,24 @@ blocks:
|
|
1120
1174
|
value: latest
|
1121
1175
|
commands:
|
1122
1176
|
- "./support/bundler_wrapper exec rake test"
|
1177
|
+
- name: Ruby 3.1.3 for rails-7.1
|
1178
|
+
env_vars:
|
1179
|
+
- *2
|
1180
|
+
- *3
|
1181
|
+
- *4
|
1182
|
+
- *5
|
1183
|
+
- name: RUBY_VERSION
|
1184
|
+
value: 3.1.3
|
1185
|
+
- name: GEMSET
|
1186
|
+
value: rails-7.1
|
1187
|
+
- name: BUNDLE_GEMFILE
|
1188
|
+
value: gemfiles/rails-7.1.gemfile
|
1189
|
+
- name: _RUBYGEMS_VERSION
|
1190
|
+
value: latest
|
1191
|
+
- name: _BUNDLER_VERSION
|
1192
|
+
value: latest
|
1193
|
+
commands:
|
1194
|
+
- "./support/bundler_wrapper exec rake test"
|
1123
1195
|
- name: Ruby 3.1.3 for sequel
|
1124
1196
|
env_vars:
|
1125
1197
|
- *2
|
@@ -1279,6 +1351,24 @@ blocks:
|
|
1279
1351
|
value: latest
|
1280
1352
|
commands:
|
1281
1353
|
- "./support/bundler_wrapper exec rake test"
|
1354
|
+
- name: Ruby 3.2.1 for dry-monitor
|
1355
|
+
env_vars:
|
1356
|
+
- *2
|
1357
|
+
- *3
|
1358
|
+
- *4
|
1359
|
+
- *5
|
1360
|
+
- name: RUBY_VERSION
|
1361
|
+
value: 3.2.1
|
1362
|
+
- name: GEMSET
|
1363
|
+
value: dry-monitor
|
1364
|
+
- name: BUNDLE_GEMFILE
|
1365
|
+
value: gemfiles/dry-monitor.gemfile
|
1366
|
+
- name: _RUBYGEMS_VERSION
|
1367
|
+
value: latest
|
1368
|
+
- name: _BUNDLER_VERSION
|
1369
|
+
value: latest
|
1370
|
+
commands:
|
1371
|
+
- "./support/bundler_wrapper exec rake test"
|
1282
1372
|
- name: Ruby 3.2.1 for grape
|
1283
1373
|
env_vars:
|
1284
1374
|
- *2
|
@@ -1459,6 +1549,24 @@ blocks:
|
|
1459
1549
|
value: latest
|
1460
1550
|
commands:
|
1461
1551
|
- "./support/bundler_wrapper exec rake test"
|
1552
|
+
- name: Ruby 3.2.1 for rails-7.1
|
1553
|
+
env_vars:
|
1554
|
+
- *2
|
1555
|
+
- *3
|
1556
|
+
- *4
|
1557
|
+
- *5
|
1558
|
+
- name: RUBY_VERSION
|
1559
|
+
value: 3.2.1
|
1560
|
+
- name: GEMSET
|
1561
|
+
value: rails-7.1
|
1562
|
+
- name: BUNDLE_GEMFILE
|
1563
|
+
value: gemfiles/rails-7.1.gemfile
|
1564
|
+
- name: _RUBYGEMS_VERSION
|
1565
|
+
value: latest
|
1566
|
+
- name: _BUNDLER_VERSION
|
1567
|
+
value: latest
|
1568
|
+
commands:
|
1569
|
+
- "./support/bundler_wrapper exec rake test"
|
1462
1570
|
- name: Ruby 3.2.1 for sequel
|
1463
1571
|
env_vars:
|
1464
1572
|
- *2
|
@@ -1636,3 +1744,21 @@ blocks:
|
|
1636
1744
|
value: latest
|
1637
1745
|
commands:
|
1638
1746
|
- "./support/bundler_wrapper exec rake test"
|
1747
|
+
- name: Ruby jruby-9.4.1.0 for rails-7.1
|
1748
|
+
env_vars:
|
1749
|
+
- *2
|
1750
|
+
- *3
|
1751
|
+
- *4
|
1752
|
+
- *5
|
1753
|
+
- name: RUBY_VERSION
|
1754
|
+
value: jruby-9.4.1.0
|
1755
|
+
- name: GEMSET
|
1756
|
+
value: rails-7.1
|
1757
|
+
- name: BUNDLE_GEMFILE
|
1758
|
+
value: gemfiles/rails-7.1.gemfile
|
1759
|
+
- name: _RUBYGEMS_VERSION
|
1760
|
+
value: latest
|
1761
|
+
- name: _BUNDLER_VERSION
|
1762
|
+
value: latest
|
1763
|
+
commands:
|
1764
|
+
- "./support/bundler_wrapper exec rake test"
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,42 @@
|
|
1
1
|
# AppSignal for Ruby gem Changelog
|
2
2
|
|
3
|
+
## 3.4.14
|
4
|
+
|
5
|
+
### Changed
|
6
|
+
|
7
|
+
- [bd15ec20](https://github.com/appsignal/appsignal-ruby/commit/bd15ec204474efdc504973609b70074148032618) patch - Bump agent to e8207c1.
|
8
|
+
|
9
|
+
- Add `memory_in_percentages` and `swap_in_percentages` host metrics that represents metrics in percentages.
|
10
|
+
- Ignore `/snap/` disk mountpoints.
|
11
|
+
- Fix issue with the open span count in logs being logged as a negative number.
|
12
|
+
- Fix agent's TCP server getting stuck when two requests are made within the same fraction of a second.
|
13
|
+
- [09b45c80](https://github.com/appsignal/appsignal-ruby/commit/09b45c808c2d4b215bd38211860e8e89225886e6) patch - Bump agent to b604345.
|
14
|
+
|
15
|
+
- Add an exponential backoff to the retry sleep time to bind to the StatsD, NGINX and OpenTelemetry exporter ports. This gives the agent a longer time to connect to the ports if they become available within a 4 minute window.
|
16
|
+
- Changes to the agent logger:
|
17
|
+
- Logs from the agent and extension now use a more consistent format in logs for spans and transactions.
|
18
|
+
- Logs that are for more internal use are moved to the trace log level and logs that are useful for debugging most support issues are moved to the debug log level. It should not be necessary to use log level 'trace' as often anymore. The 'debug' log level should be enough.
|
19
|
+
- Add `running_in_container` to agent diagnose report, to be used primarily by the Python package as a way to detect if an app's host is a container or not.
|
20
|
+
- [1945d613](https://github.com/appsignal/appsignal-ruby/commit/1945d61326266e225f13c6b828c51faf13c3745b) patch - Bump agent to 1dd2a18.
|
21
|
+
|
22
|
+
- When adding an SQL body attribute via the extension, instead of truncating the body first and sanitising it later, sanitise it first and truncate it later. This prevents an issue where queries containing very big values result in truncated sanitisations.
|
23
|
+
|
24
|
+
### Fixed
|
25
|
+
|
26
|
+
- [c8698dca](https://github.com/appsignal/appsignal-ruby/commit/c8698dca465d84fdac33d88debc6fbb004458bf1) patch - Fix a deprecation warning for Sidekiq 7.1.6+ when an error is reported to AppSignal. (Thanks @bdewater-thatch!)
|
27
|
+
- [1c606c6a](https://github.com/appsignal/appsignal-ruby/commit/1c606c6a095ac9316cdb6fc26b98c72b9c23b583) patch - Fix an internal error when some Redis info keys we're expecting are missing. This will fix the Sidekiq dashboard showing much less data than we can report when Redis is configured to not report all the data points we expect. You'll still miss out of metrics like used memory, but miss less data than before.
|
28
|
+
|
29
|
+
## 3.4.13
|
30
|
+
|
31
|
+
### Added
|
32
|
+
|
33
|
+
- [29970d93](https://github.com/appsignal/appsignal-ruby/commit/29970d93a63aa174fbc4a41b29eff996ef0ede5e) patch - Events from `dry-monitor` are now supported. There's also native support for `rom-sql` instrumentation events if they're configured.
|
34
|
+
- [27656744](https://github.com/appsignal/appsignal-ruby/commit/27656744d5d5657d120b4fcd97857c17421d8dfd) patch - Support Rails 7.1 ActiveSupport Notifications handler.
|
35
|
+
|
36
|
+
### Changed
|
37
|
+
|
38
|
+
- [6932bb3f](https://github.com/appsignal/appsignal-ruby/commit/6932bb3f7eae75beeb86e29ddc16dc16f9da4428) patch - Add configuration load modifiers to diagnose report. Track if the `APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR` environment variable was set.
|
39
|
+
|
3
40
|
## 3.4.12
|
4
41
|
|
5
42
|
### Added
|
@@ -11,9 +48,12 @@
|
|
11
48
|
### Changed
|
12
49
|
|
13
50
|
- [a42da92b](https://github.com/appsignal/appsignal-ruby/commit/a42da92b1ff16c48eb40dc081d3b4fbd6480c7c0) patch - Log an error when sample data is of an invalid type. Accepted types are Array and Hash. If any other types are given, it will log an error to the `appsignal.log` file.
|
51
|
+
|
52
|
+
### Fixed
|
53
|
+
|
14
54
|
- [8e636323](https://github.com/appsignal/appsignal-ruby/commit/8e6363232dc7fabe5f1aeae5758802e4c8d6cbfa) patch - Bump agent to 6133900.
|
15
55
|
|
16
|
-
- Fix `
|
56
|
+
- Fix `disk_inode_usage` metric name format to not be interpreted as a JSON object.
|
17
57
|
|
18
58
|
## 3.4.11
|
19
59
|
|
data/README.md
CHANGED
@@ -231,6 +231,7 @@ configurations you need to run the spec suite with a specific Gemfile.
|
|
231
231
|
```
|
232
232
|
BUNDLE_GEMFILE=gemfiles/capistrano2.gemfile bundle exec rspec
|
233
233
|
BUNDLE_GEMFILE=gemfiles/capistrano3.gemfile bundle exec rspec
|
234
|
+
BUNDLE_GEMFILE=gemfiles/dry-monitor.gemfile bundle exec rspec
|
234
235
|
BUNDLE_GEMFILE=gemfiles/grape.gemfile bundle exec rspec
|
235
236
|
BUNDLE_GEMFILE=gemfiles/hanami.gemfile bundle exec rspec
|
236
237
|
BUNDLE_GEMFILE=gemfiles/http5.gemfile bundle exec rspec
|
data/build_matrix.yml
CHANGED
@@ -170,6 +170,7 @@ matrix:
|
|
170
170
|
- "rails-6.0"
|
171
171
|
- "rails-6.1"
|
172
172
|
- "rails-7.0"
|
173
|
+
- "rails-7.1"
|
173
174
|
|
174
175
|
ruby:
|
175
176
|
- ruby: "2.7.8"
|
@@ -182,6 +183,12 @@ matrix:
|
|
182
183
|
- gem: "no_dependencies"
|
183
184
|
- gem: "capistrano2"
|
184
185
|
- gem: "capistrano3"
|
186
|
+
- gem: "dry-monitor"
|
187
|
+
only:
|
188
|
+
ruby:
|
189
|
+
- "3.0.5"
|
190
|
+
- "3.1.3"
|
191
|
+
- "3.2.1"
|
185
192
|
- gem: "grape"
|
186
193
|
- gem: "hanami"
|
187
194
|
only:
|
@@ -229,6 +236,13 @@ matrix:
|
|
229
236
|
- "3.1.3"
|
230
237
|
- "3.2.1"
|
231
238
|
- "jruby-9.4.1.0"
|
239
|
+
- gem: "rails-7.1"
|
240
|
+
only:
|
241
|
+
ruby:
|
242
|
+
- "3.0.5"
|
243
|
+
- "3.1.3"
|
244
|
+
- "3.2.1"
|
245
|
+
- "jruby-9.4.1.0"
|
232
246
|
- gem: "sequel"
|
233
247
|
- gem: "sinatra"
|
234
248
|
- gem: "webmachine1"
|
data/ext/agent.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# Modifications to this file will be overwritten with the next agent release.
|
7
7
|
|
8
8
|
APPSIGNAL_AGENT_CONFIG = {
|
9
|
-
"version" => "
|
9
|
+
"version" => "1dd2a18",
|
10
10
|
"mirrors" => [
|
11
11
|
"https://appsignal-agent-releases.global.ssl.fastly.net",
|
12
12
|
"https://d135dj0rjqvssy.cloudfront.net"
|
@@ -14,131 +14,131 @@ APPSIGNAL_AGENT_CONFIG = {
|
|
14
14
|
"triples" => {
|
15
15
|
"x86_64-darwin" => {
|
16
16
|
"static" => {
|
17
|
-
"checksum" => "
|
17
|
+
"checksum" => "86b4362f8d9a671c91cd8b2996aa61e9b9b0938010594039084efbead7b1adc4",
|
18
18
|
"filename" => "appsignal-x86_64-darwin-all-static.tar.gz"
|
19
19
|
},
|
20
20
|
"dynamic" => {
|
21
|
-
"checksum" => "
|
21
|
+
"checksum" => "6721591bd53cef762b9304413cec14163850f72db073f2fe183ab3379882d6b0",
|
22
22
|
"filename" => "appsignal-x86_64-darwin-all-dynamic.tar.gz"
|
23
23
|
}
|
24
24
|
},
|
25
25
|
"universal-darwin" => {
|
26
26
|
"static" => {
|
27
|
-
"checksum" => "
|
27
|
+
"checksum" => "86b4362f8d9a671c91cd8b2996aa61e9b9b0938010594039084efbead7b1adc4",
|
28
28
|
"filename" => "appsignal-x86_64-darwin-all-static.tar.gz"
|
29
29
|
},
|
30
30
|
"dynamic" => {
|
31
|
-
"checksum" => "
|
31
|
+
"checksum" => "6721591bd53cef762b9304413cec14163850f72db073f2fe183ab3379882d6b0",
|
32
32
|
"filename" => "appsignal-x86_64-darwin-all-dynamic.tar.gz"
|
33
33
|
}
|
34
34
|
},
|
35
35
|
"aarch64-darwin" => {
|
36
36
|
"static" => {
|
37
|
-
"checksum" => "
|
37
|
+
"checksum" => "b3543d971d1a8958635dbc188cbdc26d3cb2bcf5aace9eccca539ea3396084c0",
|
38
38
|
"filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
|
39
39
|
},
|
40
40
|
"dynamic" => {
|
41
|
-
"checksum" => "
|
41
|
+
"checksum" => "ea476db454e5c824d6d882965a824a11f82e6bafa76af1e35e9458b6bb028fc0",
|
42
42
|
"filename" => "appsignal-aarch64-darwin-all-dynamic.tar.gz"
|
43
43
|
}
|
44
44
|
},
|
45
45
|
"arm64-darwin" => {
|
46
46
|
"static" => {
|
47
|
-
"checksum" => "
|
47
|
+
"checksum" => "b3543d971d1a8958635dbc188cbdc26d3cb2bcf5aace9eccca539ea3396084c0",
|
48
48
|
"filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
|
49
49
|
},
|
50
50
|
"dynamic" => {
|
51
|
-
"checksum" => "
|
51
|
+
"checksum" => "ea476db454e5c824d6d882965a824a11f82e6bafa76af1e35e9458b6bb028fc0",
|
52
52
|
"filename" => "appsignal-aarch64-darwin-all-dynamic.tar.gz"
|
53
53
|
}
|
54
54
|
},
|
55
55
|
"arm-darwin" => {
|
56
56
|
"static" => {
|
57
|
-
"checksum" => "
|
57
|
+
"checksum" => "b3543d971d1a8958635dbc188cbdc26d3cb2bcf5aace9eccca539ea3396084c0",
|
58
58
|
"filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
|
59
59
|
},
|
60
60
|
"dynamic" => {
|
61
|
-
"checksum" => "
|
61
|
+
"checksum" => "ea476db454e5c824d6d882965a824a11f82e6bafa76af1e35e9458b6bb028fc0",
|
62
62
|
"filename" => "appsignal-aarch64-darwin-all-dynamic.tar.gz"
|
63
63
|
}
|
64
64
|
},
|
65
65
|
"aarch64-linux" => {
|
66
66
|
"static" => {
|
67
|
-
"checksum" => "
|
67
|
+
"checksum" => "095d8158d821952b323d6c4daf90dde0d26a1282fb2fd5f9f258bc6cba7b0f68",
|
68
68
|
"filename" => "appsignal-aarch64-linux-all-static.tar.gz"
|
69
69
|
},
|
70
70
|
"dynamic" => {
|
71
|
-
"checksum" => "
|
71
|
+
"checksum" => "7c24309bb785b5b83b354e4fc4bc764d73397ffea81de357e60ae019f5046af1",
|
72
72
|
"filename" => "appsignal-aarch64-linux-all-dynamic.tar.gz"
|
73
73
|
}
|
74
74
|
},
|
75
75
|
"i686-linux" => {
|
76
76
|
"static" => {
|
77
|
-
"checksum" => "
|
77
|
+
"checksum" => "429587080a69e5db4b01dd666113c280d70bd7bd66bd63c5b93deda497b7bd0e",
|
78
78
|
"filename" => "appsignal-i686-linux-all-static.tar.gz"
|
79
79
|
},
|
80
80
|
"dynamic" => {
|
81
|
-
"checksum" => "
|
81
|
+
"checksum" => "ae3f43ecabbf4a5d74a23aad4896661557ae43560a65a3d92bd86584805b5f8f",
|
82
82
|
"filename" => "appsignal-i686-linux-all-dynamic.tar.gz"
|
83
83
|
}
|
84
84
|
},
|
85
85
|
"x86-linux" => {
|
86
86
|
"static" => {
|
87
|
-
"checksum" => "
|
87
|
+
"checksum" => "429587080a69e5db4b01dd666113c280d70bd7bd66bd63c5b93deda497b7bd0e",
|
88
88
|
"filename" => "appsignal-i686-linux-all-static.tar.gz"
|
89
89
|
},
|
90
90
|
"dynamic" => {
|
91
|
-
"checksum" => "
|
91
|
+
"checksum" => "ae3f43ecabbf4a5d74a23aad4896661557ae43560a65a3d92bd86584805b5f8f",
|
92
92
|
"filename" => "appsignal-i686-linux-all-dynamic.tar.gz"
|
93
93
|
}
|
94
94
|
},
|
95
95
|
"x86_64-linux" => {
|
96
96
|
"static" => {
|
97
|
-
"checksum" => "
|
97
|
+
"checksum" => "484b7d9e10798700e63ffa9b96fd43f8f244b1da18f32eb0d0fd9999a8e37351",
|
98
98
|
"filename" => "appsignal-x86_64-linux-all-static.tar.gz"
|
99
99
|
},
|
100
100
|
"dynamic" => {
|
101
|
-
"checksum" => "
|
101
|
+
"checksum" => "938f67239a71bbce18ab9b4bc2e273fba8c77cf08d770ca55ea0843993b330fa",
|
102
102
|
"filename" => "appsignal-x86_64-linux-all-dynamic.tar.gz"
|
103
103
|
}
|
104
104
|
},
|
105
105
|
"x86_64-linux-musl" => {
|
106
106
|
"static" => {
|
107
|
-
"checksum" => "
|
107
|
+
"checksum" => "9e64cdf5d43e6ddeee70d82c60418e02a42c01b2b0a6abc64efe19f40fa4b7e7",
|
108
108
|
"filename" => "appsignal-x86_64-linux-musl-all-static.tar.gz"
|
109
109
|
},
|
110
110
|
"dynamic" => {
|
111
|
-
"checksum" => "
|
111
|
+
"checksum" => "a76aaac159612b86ef010d86cf7429b87e3222dccc0bf3157330ef2098aee5ce",
|
112
112
|
"filename" => "appsignal-x86_64-linux-musl-all-dynamic.tar.gz"
|
113
113
|
}
|
114
114
|
},
|
115
115
|
"aarch64-linux-musl" => {
|
116
116
|
"static" => {
|
117
|
-
"checksum" => "
|
117
|
+
"checksum" => "1f915b9b40421e0fa5cc7773f0970345b2afa807d578a5dc3f0167340c3ac30f",
|
118
118
|
"filename" => "appsignal-aarch64-linux-musl-all-static.tar.gz"
|
119
119
|
},
|
120
120
|
"dynamic" => {
|
121
|
-
"checksum" => "
|
121
|
+
"checksum" => "17ee3b97cddc0583d60a1e72b8816821b638041bd533abc9aabb2254ea88d37b",
|
122
122
|
"filename" => "appsignal-aarch64-linux-musl-all-dynamic.tar.gz"
|
123
123
|
}
|
124
124
|
},
|
125
125
|
"x86_64-freebsd" => {
|
126
126
|
"static" => {
|
127
|
-
"checksum" => "
|
127
|
+
"checksum" => "39fd2d83a2ec1a16e6e441cb4a846bd82b7087be707c9ca86570499e77e09179",
|
128
128
|
"filename" => "appsignal-x86_64-freebsd-all-static.tar.gz"
|
129
129
|
},
|
130
130
|
"dynamic" => {
|
131
|
-
"checksum" => "
|
131
|
+
"checksum" => "5eaffc04d06e70e9c90d3c6f05f63ae5f97fcd9dce0fb53fa63cfd8e42aa19ae",
|
132
132
|
"filename" => "appsignal-x86_64-freebsd-all-dynamic.tar.gz"
|
133
133
|
}
|
134
134
|
},
|
135
135
|
"amd64-freebsd" => {
|
136
136
|
"static" => {
|
137
|
-
"checksum" => "
|
137
|
+
"checksum" => "39fd2d83a2ec1a16e6e441cb4a846bd82b7087be707c9ca86570499e77e09179",
|
138
138
|
"filename" => "appsignal-x86_64-freebsd-all-static.tar.gz"
|
139
139
|
},
|
140
140
|
"dynamic" => {
|
141
|
-
"checksum" => "
|
141
|
+
"checksum" => "5eaffc04d06e70e9c90d3c6f05f63ae5f97fcd9dce0fb53fa63cfd8e42aa19ae",
|
142
142
|
"filename" => "appsignal-x86_64-freebsd-all-dynamic.tar.gz"
|
143
143
|
}
|
144
144
|
}
|
@@ -477,6 +477,10 @@ module Appsignal
|
|
477
477
|
:file => config.file_config,
|
478
478
|
:env => config.env_config,
|
479
479
|
:override => config.override_config
|
480
|
+
},
|
481
|
+
:modifiers => {
|
482
|
+
"APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR" =>
|
483
|
+
ENV.fetch("APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR", "")
|
480
484
|
}
|
481
485
|
}
|
482
486
|
print_config_options(config)
|
@@ -519,6 +523,11 @@ module Appsignal
|
|
519
523
|
end
|
520
524
|
end
|
521
525
|
|
526
|
+
puts
|
527
|
+
puts "Configuration modifiers"
|
528
|
+
puts " APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR: " \
|
529
|
+
"#{data[:config][:modifiers]["APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR"].inspect}"
|
530
|
+
|
522
531
|
puts "\nRead more about how the diagnose config output is rendered\n" \
|
523
532
|
"https://docs.appsignal.com/ruby/command-line/diagnose.html"
|
524
533
|
end
|
data/lib/appsignal/config.rb
CHANGED
@@ -284,6 +284,12 @@ module Appsignal
|
|
284
284
|
config_hash[key]
|
285
285
|
end
|
286
286
|
|
287
|
+
# Update the internal config hash.
|
288
|
+
#
|
289
|
+
# This method does not update the config in the extension and agent. It
|
290
|
+
# should not be used to update the config after AppSignal has started.
|
291
|
+
#
|
292
|
+
# @api private
|
287
293
|
def []=(key, value)
|
288
294
|
config_hash[key] = value
|
289
295
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Appsignal
|
4
|
+
class EventFormatter
|
5
|
+
module Rom
|
6
|
+
class SqlFormatter
|
7
|
+
def format(payload)
|
8
|
+
["query.#{payload[:name]}", payload[:query], SQL_BODY_FORMAT]
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
Appsignal::EventFormatter.register(
|
16
|
+
"sql.dry",
|
17
|
+
Appsignal::EventFormatter::Rom::SqlFormatter
|
18
|
+
)
|
@@ -7,8 +7,8 @@ module Appsignal
|
|
7
7
|
|
8
8
|
# Creates an AppSignal transaction for the given block.
|
9
9
|
#
|
10
|
-
# If AppSignal is not {.active?} it will still execute the
|
11
|
-
# create a transaction for it.
|
10
|
+
# If AppSignal is not {Appsignal.active?} it will still execute the
|
11
|
+
# block, but not create a transaction for it.
|
12
12
|
#
|
13
13
|
# A event is created for this transaction with the name given in the
|
14
14
|
# `name` argument. The event name must start with either `perform_job` or
|
@@ -112,7 +112,7 @@ module Appsignal
|
|
112
112
|
# transaction. Does not add the error to the current transaction.
|
113
113
|
#
|
114
114
|
# Make sure that AppSignal is integrated in your application beforehand.
|
115
|
-
# AppSignal won't record errors unless {
|
115
|
+
# AppSignal won't record errors unless {Appsignal.active?} is `true`.
|
116
116
|
#
|
117
117
|
# @example
|
118
118
|
# # my_app.rb
|
@@ -22,21 +22,30 @@ module Appsignal
|
|
22
22
|
end
|
23
23
|
|
24
24
|
require "appsignal/integrations/active_support_notifications"
|
25
|
-
instrumenter = ::ActiveSupport::Notifications::Instrumenter
|
26
25
|
parent_integration_module = Appsignal::Integrations::ActiveSupportNotificationsIntegration
|
27
|
-
|
28
|
-
|
26
|
+
|
27
|
+
if defined?(::ActiveSupport::Notifications::Fanout::Handle)
|
28
|
+
install_module(
|
29
|
+
parent_integration_module::StartFinishHandlerIntegration,
|
30
|
+
::ActiveSupport::Notifications::Fanout::Handle
|
31
|
+
)
|
29
32
|
else
|
30
|
-
|
31
|
-
end
|
33
|
+
instrumenter = ::ActiveSupport::Notifications::Instrumenter
|
32
34
|
|
33
|
-
|
35
|
+
if instrumenter.method_defined?(:start) && instrumenter.method_defined?(:finish)
|
36
|
+
install_module(parent_integration_module::StartFinishIntegration, instrumenter)
|
37
|
+
else
|
38
|
+
install_module(parent_integration_module::InstrumentIntegration, instrumenter)
|
39
|
+
end
|
34
40
|
|
35
|
-
|
41
|
+
return unless instrumenter.method_defined?(:finish_with_state)
|
42
|
+
|
43
|
+
install_module(parent_integration_module::FinishStateIntegration, instrumenter)
|
44
|
+
end
|
36
45
|
end
|
37
46
|
|
38
|
-
def install_module(mod)
|
39
|
-
|
47
|
+
def install_module(mod, instrumenter)
|
48
|
+
instrumenter.send(:prepend, mod)
|
40
49
|
end
|
41
50
|
end
|
42
51
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Appsignal
|
4
|
+
class Hooks
|
5
|
+
# @api private
|
6
|
+
class DryMonitorHook < Appsignal::Hooks::Hook
|
7
|
+
register :dry_monitor
|
8
|
+
|
9
|
+
def dependencies_present?
|
10
|
+
defined?(::Dry::Monitor::Notifications)
|
11
|
+
end
|
12
|
+
|
13
|
+
def install
|
14
|
+
require "appsignal/integrations/dry_monitor"
|
15
|
+
|
16
|
+
::Dry::Monitor::Notifications.prepend(Appsignal::Integrations::DryMonitorIntegration)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/appsignal/hooks.rb
CHANGED
@@ -95,6 +95,7 @@ require "appsignal/hooks/active_support_notifications"
|
|
95
95
|
require "appsignal/hooks/celluloid"
|
96
96
|
require "appsignal/hooks/delayed_job"
|
97
97
|
require "appsignal/hooks/gvl"
|
98
|
+
require "appsignal/hooks/dry_monitor"
|
98
99
|
require "appsignal/hooks/http"
|
99
100
|
require "appsignal/hooks/mri"
|
100
101
|
require "appsignal/hooks/net_http"
|
@@ -54,6 +54,32 @@ module Appsignal
|
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
|
+
module StartFinishHandlerIntegration
|
58
|
+
def start
|
59
|
+
instrument_this = @name[0] != ActiveSupportNotificationsIntegration::BANG
|
60
|
+
|
61
|
+
Appsignal::Transaction.current.start_event if instrument_this
|
62
|
+
super
|
63
|
+
end
|
64
|
+
|
65
|
+
def finish_with_values(name, id, payload = {})
|
66
|
+
# Events that start with a bang are internal to Rails
|
67
|
+
instrument_this = name[0] != ActiveSupportNotificationsIntegration::BANG
|
68
|
+
|
69
|
+
if instrument_this
|
70
|
+
title, body, body_format = Appsignal::EventFormatter.format(name, payload)
|
71
|
+
Appsignal::Transaction.current.finish_event(
|
72
|
+
name.to_s,
|
73
|
+
title,
|
74
|
+
body,
|
75
|
+
body_format
|
76
|
+
)
|
77
|
+
end
|
78
|
+
|
79
|
+
super
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
57
83
|
module FinishStateIntegration
|
58
84
|
def finish_with_state(listeners_state, name, payload = {})
|
59
85
|
# Events that start with a bang are internal to Rails
|