appsignal 4.8.5-java → 4.9.0-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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -0
  3. data/README.md +2 -2
  4. data/SUPPORT.md +1 -1
  5. data/appsignal.gemspec +2 -2
  6. data/build_matrix.yml +35 -0
  7. data/ext/agent.rb +27 -27
  8. data/ext/base.rb +3 -7
  9. data/ext/extconf.rb +1 -1
  10. data/lib/appsignal/check_in/event.rb +5 -4
  11. data/lib/appsignal/cli/diagnose.rb +1 -1
  12. data/lib/appsignal/cli/helpers.rb +2 -2
  13. data/lib/appsignal/cli/install.rb +3 -3
  14. data/lib/appsignal/config.rb +44 -1
  15. data/lib/appsignal/environment.rb +1 -0
  16. data/lib/appsignal/extension/jruby.rb +6 -5
  17. data/lib/appsignal/extension.rb +1 -1
  18. data/lib/appsignal/helpers/instrumentation.rb +12 -12
  19. data/lib/appsignal/hooks/action_cable.rb +2 -2
  20. data/lib/appsignal/hooks/active_job.rb +42 -3
  21. data/lib/appsignal/hooks/delayed_job.rb +2 -1
  22. data/lib/appsignal/hooks/excon.rb +1 -1
  23. data/lib/appsignal/hooks/faraday.rb +21 -0
  24. data/lib/appsignal/hooks/http.rb +9 -0
  25. data/lib/appsignal/hooks/mongo_ruby_driver.rb +2 -1
  26. data/lib/appsignal/hooks/que.rb +7 -1
  27. data/lib/appsignal/hooks/resque.rb +5 -1
  28. data/lib/appsignal/hooks/shoryuken.rb +15 -1
  29. data/lib/appsignal/hooks/sidekiq.rb +14 -1
  30. data/lib/appsignal/hooks.rb +1 -0
  31. data/lib/appsignal/integrations/action_cable.rb +1 -1
  32. data/lib/appsignal/integrations/active_support_notifications.rb +19 -6
  33. data/lib/appsignal/integrations/delayed_job_plugin.rb +38 -1
  34. data/lib/appsignal/integrations/excon.rb +8 -0
  35. data/lib/appsignal/integrations/faraday.rb +51 -0
  36. data/lib/appsignal/integrations/http.rb +9 -0
  37. data/lib/appsignal/integrations/mongo_ruby_driver.rb +4 -2
  38. data/lib/appsignal/integrations/net_http.rb +7 -0
  39. data/lib/appsignal/integrations/object.rb +3 -3
  40. data/lib/appsignal/integrations/que.rb +68 -1
  41. data/lib/appsignal/integrations/rake.rb +1 -1
  42. data/lib/appsignal/integrations/resque.rb +20 -1
  43. data/lib/appsignal/integrations/shoryuken.rb +33 -1
  44. data/lib/appsignal/integrations/sidekiq.rb +73 -36
  45. data/lib/appsignal/integrations/webmachine.rb +1 -1
  46. data/lib/appsignal/logger.rb +4 -1
  47. data/lib/appsignal/rack/abstract_middleware.rb +1 -1
  48. data/lib/appsignal/rack/body_wrapper.rb +5 -5
  49. data/lib/appsignal/rack/hanami_middleware.rb +1 -0
  50. data/lib/appsignal/sample_data.rb +1 -0
  51. data/lib/appsignal/transaction.rb +59 -11
  52. data/lib/appsignal/utils/query_params_sanitizer.rb +2 -0
  53. data/lib/appsignal/version.rb +1 -1
  54. data/lib/appsignal.rb +2 -2
  55. data/lib/puma/plugin/appsignal.rb +1 -1
  56. data/sig/appsignal.rbi +41 -1
  57. data/sig/appsignal.rbs +30 -0
  58. metadata +7 -6
  59. data/lib/appsignal/event_formatter/faraday/request_formatter.rb +0 -24
data/sig/appsignal.rbi CHANGED
@@ -8,7 +8,7 @@
8
8
  module Appsignal
9
9
  extend Appsignal::Helpers::Metrics
10
10
  extend Appsignal::Helpers::Instrumentation
11
- VERSION = T.let("4.8.5", T.untyped)
11
+ VERSION = T.let("4.9.0", T.untyped)
12
12
 
13
13
  class << self
14
14
  # The loaded AppSignal configuration.
@@ -1182,6 +1182,10 @@ module Appsignal
1182
1182
  sig { returns(T::Boolean) }
1183
1183
  attr_accessor :enable_host_metrics
1184
1184
 
1185
+ # _@return_ — Configure whether to record an event when a background job is enqueued
1186
+ sig { returns(T::Boolean) }
1187
+ attr_accessor :enable_job_enqueue_instrumentation
1188
+
1185
1189
  # _@return_ — Configure whether minutely probes are enabled
1186
1190
  sig { returns(T::Boolean) }
1187
1191
  attr_accessor :enable_minutely_probes
@@ -1218,10 +1222,30 @@ module Appsignal
1218
1222
  sig { returns(T::Boolean) }
1219
1223
  attr_accessor :files_world_accessible
1220
1224
 
1225
+ # _@return_ — Configure whether to instrument Active Job
1226
+ sig { returns(T::Boolean) }
1227
+ attr_accessor :instrument_active_job
1228
+
1229
+ # _@return_ — Configure whether to instrument Delayed Job
1230
+ sig { returns(T::Boolean) }
1231
+ attr_accessor :instrument_delayed_job
1232
+
1233
+ # _@return_ — Configure whether to instrument requests made with the Excon gem
1234
+ sig { returns(T::Boolean) }
1235
+ attr_accessor :instrument_excon
1236
+
1237
+ # _@return_ — Configure whether to instrument requests made with the Faraday gem
1238
+ sig { returns(T::Boolean) }
1239
+ attr_accessor :instrument_faraday
1240
+
1221
1241
  # _@return_ — Configure whether to instrument requests made with the http.rb gem
1222
1242
  sig { returns(T::Boolean) }
1223
1243
  attr_accessor :instrument_http_rb
1224
1244
 
1245
+ # _@return_ — Configure whether to instrument MongoDB queries
1246
+ sig { returns(T::Boolean) }
1247
+ attr_accessor :instrument_mongo
1248
+
1225
1249
  # _@return_ — Configure whether to instrument requests made with Net::HTTP
1226
1250
  sig { returns(T::Boolean) }
1227
1251
  attr_accessor :instrument_net_http
@@ -1230,14 +1254,30 @@ module Appsignal
1230
1254
  sig { returns(T::Boolean) }
1231
1255
  attr_accessor :instrument_ownership
1232
1256
 
1257
+ # _@return_ — Configure whether to instrument Que
1258
+ sig { returns(T::Boolean) }
1259
+ attr_accessor :instrument_que
1260
+
1233
1261
  # _@return_ — Configure whether to instrument Redis queries
1234
1262
  sig { returns(T::Boolean) }
1235
1263
  attr_accessor :instrument_redis
1236
1264
 
1265
+ # _@return_ — Configure whether to instrument Resque
1266
+ sig { returns(T::Boolean) }
1267
+ attr_accessor :instrument_resque
1268
+
1237
1269
  # _@return_ — Configure whether to instrument Sequel queries
1238
1270
  sig { returns(T::Boolean) }
1239
1271
  attr_accessor :instrument_sequel
1240
1272
 
1273
+ # _@return_ — Configure whether to instrument Shoryuken
1274
+ sig { returns(T::Boolean) }
1275
+ attr_accessor :instrument_shoryuken
1276
+
1277
+ # _@return_ — Configure whether to instrument Sidekiq
1278
+ sig { returns(T::Boolean) }
1279
+ attr_accessor :instrument_sidekiq
1280
+
1241
1281
  # _@return_ — Configure whether the Ownership gem instrumentation should set namespace
1242
1282
  sig { returns(T::Boolean) }
1243
1283
  attr_accessor :ownership_set_namespace
data/sig/appsignal.rbs CHANGED
@@ -1105,6 +1105,9 @@ module Appsignal
1105
1105
  # _@return_ — Configure whether host metrics collection is enabled
1106
1106
  attr_accessor enable_host_metrics: bool
1107
1107
 
1108
+ # _@return_ — Configure whether to record an event when a background job is enqueued
1109
+ attr_accessor enable_job_enqueue_instrumentation: bool
1110
+
1108
1111
  # _@return_ — Configure whether minutely probes are enabled
1109
1112
  attr_accessor enable_minutely_probes: bool
1110
1113
 
@@ -1132,21 +1135,48 @@ module Appsignal
1132
1135
  # _@return_ — Configure whether files created by AppSignal should be world accessible
1133
1136
  attr_accessor files_world_accessible: bool
1134
1137
 
1138
+ # _@return_ — Configure whether to instrument Active Job
1139
+ attr_accessor instrument_active_job: bool
1140
+
1141
+ # _@return_ — Configure whether to instrument Delayed Job
1142
+ attr_accessor instrument_delayed_job: bool
1143
+
1144
+ # _@return_ — Configure whether to instrument requests made with the Excon gem
1145
+ attr_accessor instrument_excon: bool
1146
+
1147
+ # _@return_ — Configure whether to instrument requests made with the Faraday gem
1148
+ attr_accessor instrument_faraday: bool
1149
+
1135
1150
  # _@return_ — Configure whether to instrument requests made with the http.rb gem
1136
1151
  attr_accessor instrument_http_rb: bool
1137
1152
 
1153
+ # _@return_ — Configure whether to instrument MongoDB queries
1154
+ attr_accessor instrument_mongo: bool
1155
+
1138
1156
  # _@return_ — Configure whether to instrument requests made with Net::HTTP
1139
1157
  attr_accessor instrument_net_http: bool
1140
1158
 
1141
1159
  # _@return_ — Configure whether to instrument the Ownership gem
1142
1160
  attr_accessor instrument_ownership: bool
1143
1161
 
1162
+ # _@return_ — Configure whether to instrument Que
1163
+ attr_accessor instrument_que: bool
1164
+
1144
1165
  # _@return_ — Configure whether to instrument Redis queries
1145
1166
  attr_accessor instrument_redis: bool
1146
1167
 
1168
+ # _@return_ — Configure whether to instrument Resque
1169
+ attr_accessor instrument_resque: bool
1170
+
1147
1171
  # _@return_ — Configure whether to instrument Sequel queries
1148
1172
  attr_accessor instrument_sequel: bool
1149
1173
 
1174
+ # _@return_ — Configure whether to instrument Shoryuken
1175
+ attr_accessor instrument_shoryuken: bool
1176
+
1177
+ # _@return_ — Configure whether to instrument Sidekiq
1178
+ attr_accessor instrument_sidekiq: bool
1179
+
1150
1180
  # _@return_ — Configure whether the Ownership gem instrumentation should set namespace
1151
1181
  attr_accessor ownership_set_namespace: bool
1152
1182
 
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: 4.8.5
4
+ version: 4.9.0
5
5
  platform: java
6
6
  authors:
7
7
  - Robert Beekman
@@ -85,16 +85,16 @@ dependencies:
85
85
  name: rubocop
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - '='
88
+ - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: 1.64.1
90
+ version: 1.87.0
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - '='
95
+ - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: 1.64.1
97
+ version: 1.87.0
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: sord
100
100
  requirement: !ruby/object:Gem::Requirement
@@ -213,7 +213,6 @@ files:
213
213
  - lib/appsignal/event_formatter/active_record/instantiation_formatter.rb
214
214
  - lib/appsignal/event_formatter/active_record/sql_formatter.rb
215
215
  - lib/appsignal/event_formatter/elastic_search/search_formatter.rb
216
- - lib/appsignal/event_formatter/faraday/request_formatter.rb
217
216
  - lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter.rb
218
217
  - lib/appsignal/event_formatter/rom/sql_formatter.rb
219
218
  - lib/appsignal/event_formatter/sequel/sql_formatter.rb
@@ -236,6 +235,7 @@ files:
236
235
  - lib/appsignal/hooks/delayed_job.rb
237
236
  - lib/appsignal/hooks/dry_monitor.rb
238
237
  - lib/appsignal/hooks/excon.rb
238
+ - lib/appsignal/hooks/faraday.rb
239
239
  - lib/appsignal/hooks/gvl.rb
240
240
  - lib/appsignal/hooks/http.rb
241
241
  - lib/appsignal/hooks/mongo_ruby_driver.rb
@@ -264,6 +264,7 @@ files:
264
264
  - lib/appsignal/integrations/delayed_job_plugin.rb
265
265
  - lib/appsignal/integrations/dry_monitor.rb
266
266
  - lib/appsignal/integrations/excon.rb
267
+ - lib/appsignal/integrations/faraday.rb
267
268
  - lib/appsignal/integrations/http.rb
268
269
  - lib/appsignal/integrations/mongo_ruby_driver.rb
269
270
  - lib/appsignal/integrations/net_http.rb
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Appsignal
4
- class EventFormatter
5
- # @!visibility private
6
- module Faraday
7
- class RequestFormatter
8
- def format(payload)
9
- http_method = payload[:method].to_s.upcase
10
- uri = payload[:url]
11
- [
12
- "#{http_method} #{uri.scheme}://#{uri.host}",
13
- "#{http_method} #{uri.scheme}://#{uri.host}#{uri.path}"
14
- ]
15
- end
16
- end
17
- end
18
- end
19
- end
20
-
21
- Appsignal::EventFormatter.register(
22
- "request.faraday",
23
- Appsignal::EventFormatter::Faraday::RequestFormatter
24
- )