appsignal 3.4.12 → 3.4.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: 23564a15fbad1ecb68987675c925a81b0e423ffa66a3481563999f97db10ef79
4
- data.tar.gz: a42321ba0bc9809e2b4b26a3c7e3707e5c06941a30ed6187cba491cbc76b9cfd
3
+ metadata.gz: 3be39595c43a43356e031bcdebd1f053160c2ce4861589df88a056be6f6f9820
4
+ data.tar.gz: 2fcf98e0fa5f3a92f7fbbde1dde08bbb54c8eff15dbfdbf0080ea9e1e919b0a2
5
5
  SHA512:
6
- metadata.gz: ff4db633c340cf16fc0cfb3b154f4b754ef3416d3e56077203b7a298851457624dba934576c634b56bad599199fe427d1200dfa019f3bcfab67a9aa7349a0591
7
- data.tar.gz: 811176ae1f6735a901e1b0b822b4956aa5a0ca86efd2fbc8cc969afde01510022d3d2adf4fe11de50609f324df4dab0c699dbf84ca120ab27556d18735e7748b
6
+ metadata.gz: 91f90641d2ac7bf6706d9c76b6f2cc3f72f72c90b99ca90e9756c3fb9778ac958a74b352b2d45b0db1e6212e4d3c041fa583785341e0df7c45574e67d57d7951
7
+ data.tar.gz: cea8d6d4c4b15d7b76d5544bedd5f40689b214ab4a96fca79465604533b1ede3157ab3317cdac06d21affd2a62b538f446e76efc1e7217337cb09e735b145bba
@@ -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 `disk_inodes_usage` metric name format to not be interpreted as a JSON object.
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" => "6133900",
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" => "19cfea536fc6c4a8fe335a26d14ce955b422c23217902642f95d7df670152238",
17
+ "checksum" => "86b4362f8d9a671c91cd8b2996aa61e9b9b0938010594039084efbead7b1adc4",
18
18
  "filename" => "appsignal-x86_64-darwin-all-static.tar.gz"
19
19
  },
20
20
  "dynamic" => {
21
- "checksum" => "f5c4b66b45faac47473befdbe286a037d8fca9386339b00f59be9e9505d15b13",
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" => "19cfea536fc6c4a8fe335a26d14ce955b422c23217902642f95d7df670152238",
27
+ "checksum" => "86b4362f8d9a671c91cd8b2996aa61e9b9b0938010594039084efbead7b1adc4",
28
28
  "filename" => "appsignal-x86_64-darwin-all-static.tar.gz"
29
29
  },
30
30
  "dynamic" => {
31
- "checksum" => "f5c4b66b45faac47473befdbe286a037d8fca9386339b00f59be9e9505d15b13",
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" => "4fa0dbccba79f70edc6844a86bfd047ccdd612d752b65aff46fe0e21d8a610ea",
37
+ "checksum" => "b3543d971d1a8958635dbc188cbdc26d3cb2bcf5aace9eccca539ea3396084c0",
38
38
  "filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
39
39
  },
40
40
  "dynamic" => {
41
- "checksum" => "f86e88647be6c64f0f1f56b1ac15e0e4453c7e4a6c997fd5e510cf459c572a57",
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" => "4fa0dbccba79f70edc6844a86bfd047ccdd612d752b65aff46fe0e21d8a610ea",
47
+ "checksum" => "b3543d971d1a8958635dbc188cbdc26d3cb2bcf5aace9eccca539ea3396084c0",
48
48
  "filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
49
49
  },
50
50
  "dynamic" => {
51
- "checksum" => "f86e88647be6c64f0f1f56b1ac15e0e4453c7e4a6c997fd5e510cf459c572a57",
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" => "4fa0dbccba79f70edc6844a86bfd047ccdd612d752b65aff46fe0e21d8a610ea",
57
+ "checksum" => "b3543d971d1a8958635dbc188cbdc26d3cb2bcf5aace9eccca539ea3396084c0",
58
58
  "filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
59
59
  },
60
60
  "dynamic" => {
61
- "checksum" => "f86e88647be6c64f0f1f56b1ac15e0e4453c7e4a6c997fd5e510cf459c572a57",
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" => "cdd75637940fcfd369b569e873048c7d37a3844d9d31d783e4459b375b78ee0e",
67
+ "checksum" => "095d8158d821952b323d6c4daf90dde0d26a1282fb2fd5f9f258bc6cba7b0f68",
68
68
  "filename" => "appsignal-aarch64-linux-all-static.tar.gz"
69
69
  },
70
70
  "dynamic" => {
71
- "checksum" => "99b52c29d497d63f02a4ff7162152641b51e7ecd292d07f0330e7d4f3abc8075",
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" => "a9374d1fd4baae84f1c4a74957cbb8c919b29ae2ab05a571ff75b9ca483717ab",
77
+ "checksum" => "429587080a69e5db4b01dd666113c280d70bd7bd66bd63c5b93deda497b7bd0e",
78
78
  "filename" => "appsignal-i686-linux-all-static.tar.gz"
79
79
  },
80
80
  "dynamic" => {
81
- "checksum" => "d643c72add6fe1054faff034101cf5a2676a169c7bff479f3d79e71875598b8a",
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" => "a9374d1fd4baae84f1c4a74957cbb8c919b29ae2ab05a571ff75b9ca483717ab",
87
+ "checksum" => "429587080a69e5db4b01dd666113c280d70bd7bd66bd63c5b93deda497b7bd0e",
88
88
  "filename" => "appsignal-i686-linux-all-static.tar.gz"
89
89
  },
90
90
  "dynamic" => {
91
- "checksum" => "d643c72add6fe1054faff034101cf5a2676a169c7bff479f3d79e71875598b8a",
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" => "bd625ed84100d0632b298ac602b152463628c41afe56a8621745cdae626f8413",
97
+ "checksum" => "484b7d9e10798700e63ffa9b96fd43f8f244b1da18f32eb0d0fd9999a8e37351",
98
98
  "filename" => "appsignal-x86_64-linux-all-static.tar.gz"
99
99
  },
100
100
  "dynamic" => {
101
- "checksum" => "0daa644acfee46848282ad733b175e4994e7faf64c8bc046d2efff2b8fc1afdd",
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" => "7988c4a2a6ba5d59be2186ce9bf51ab50b6537a60888b08c8e9066172516e59d",
107
+ "checksum" => "9e64cdf5d43e6ddeee70d82c60418e02a42c01b2b0a6abc64efe19f40fa4b7e7",
108
108
  "filename" => "appsignal-x86_64-linux-musl-all-static.tar.gz"
109
109
  },
110
110
  "dynamic" => {
111
- "checksum" => "93e47c9400ddae42a8cd2b80c09c9134ee96a76bf622c3ad5d53b776fec1a3f0",
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" => "8e5fe2a8bc4cb7de4ba7d61fec48f15aa0cd580050f67752f07625853636eb16",
117
+ "checksum" => "1f915b9b40421e0fa5cc7773f0970345b2afa807d578a5dc3f0167340c3ac30f",
118
118
  "filename" => "appsignal-aarch64-linux-musl-all-static.tar.gz"
119
119
  },
120
120
  "dynamic" => {
121
- "checksum" => "01f993b3320f0377ef9f652bb215ce268da208f46a6f59ad0c0e71f57257b4ef",
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" => "09e21821eb98ad6afdb5d3708b67ea25799aedbee2ccb0d566b99d9c5703cb1e",
127
+ "checksum" => "39fd2d83a2ec1a16e6e441cb4a846bd82b7087be707c9ca86570499e77e09179",
128
128
  "filename" => "appsignal-x86_64-freebsd-all-static.tar.gz"
129
129
  },
130
130
  "dynamic" => {
131
- "checksum" => "e77592de9dd7ff41efb6c1d2d88e06fa7b663e9ff009392bb971b1333e0f28d7",
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" => "09e21821eb98ad6afdb5d3708b67ea25799aedbee2ccb0d566b99d9c5703cb1e",
137
+ "checksum" => "39fd2d83a2ec1a16e6e441cb4a846bd82b7087be707c9ca86570499e77e09179",
138
138
  "filename" => "appsignal-x86_64-freebsd-all-static.tar.gz"
139
139
  },
140
140
  "dynamic" => {
141
- "checksum" => "e77592de9dd7ff41efb6c1d2d88e06fa7b663e9ff009392bb971b1333e0f28d7",
141
+ "checksum" => "5eaffc04d06e70e9c90d3c6f05f63ae5f97fcd9dce0fb53fa63cfd8e42aa19ae",
142
142
  "filename" => "appsignal-x86_64-freebsd-all-dynamic.tar.gz"
143
143
  }
144
144
  }
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "dry-monitor", "~> 1.0.1"
4
+
5
+ gemspec :path => '../'
@@ -0,0 +1,7 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "rails", "~> 7.1.0"
4
+ gem "rake", "> 12.2"
5
+ gem "sidekiq"
6
+
7
+ gemspec :path => "../"
@@ -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
@@ -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 block, but not
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 {Config#active?} is `true`.
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
- if instrumenter.method_defined?(:start) && instrumenter.method_defined?(:finish)
28
- install_module(parent_integration_module::StartFinishIntegration)
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
- install_module(parent_integration_module::InstrumentIntegration)
31
- end
33
+ instrumenter = ::ActiveSupport::Notifications::Instrumenter
32
34
 
33
- return unless instrumenter.method_defined?(:finish_with_state)
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
- install_module(parent_integration_module::FinishStateIntegration)
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
- ::ActiveSupport::Notifications::Instrumenter.send(:prepend, mod)
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
@@ -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