appsignal 4.5.13-java → 4.5.15-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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 05ad2b9b80e1a2b333edb705217ea1a5b372c735275c042a48051c8a5b1ffb1a
4
- data.tar.gz: abfeb2be7e98cad19da981bcc54206fad3a6a07308ed5d4ac0b03043c471b716
3
+ metadata.gz: 279c2c782cc828a26b1dc51f6da6c73128769527c664dc48ac0044d3dd89a7d3
4
+ data.tar.gz: 7133ffdb8d88d96e0d21bdf877b9a94a7a013a79af1ff4bc7a9cc896ff2d493f
5
5
  SHA512:
6
- metadata.gz: 06613e5878a38093819be635c9b7a5c994ed16496959764074ca0efb0e498c3a8b380387d52c7376cbb1de63d84219bd15179b878049dc7a80993b83d230eb86
7
- data.tar.gz: 26e857ed78d111e6c504715de0a967992a9c2b16cf22defe5bb388516db882104fe296b93375e77457f60b87c938290f1e010c90f4f2b1a8a881a67964e358cb
6
+ metadata.gz: 6a0de41ff465afc81d07edb5a21b63883653a59757ab6991f04843fc3d6901283d67294f46f620965f750e02100111eaea1fc4bc437c0d815b33ca48755721e3
7
+ data.tar.gz: eb722b9dbfc3d4c09bfc4487172ea75fc05cc9bc0dd3031b59ea44308a50ff87edd4ca1f25681f8b8f034d47ce185c41d35d210fc3d56b25c4690bbe88061ec0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # AppSignal for Ruby gem Changelog
2
2
 
3
+ ## 4.5.15
4
+
5
+ _Published on 2025-06-06._
6
+
7
+ ### Added
8
+
9
+ - Add `nginx_port` configuration option. This configuration option can be used to customize the port on which the AppSignal integration exposes [the NGINX metrics server](https://docs.appsignal.com/metrics/nginx.html). (patch [16976de8](https://github.com/appsignal/appsignal-ruby/commit/16976de8ad3cedda2b6ba3986c325728f5629f50))
10
+
11
+ ## 4.5.14
12
+
13
+ _Published on 2025-05-27._
14
+
15
+ ### Fixed
16
+
17
+ - Resolve problems with transactions not being properly closed when using libraries that change Fibers during the transactions. Previously, completed transactions would be attempted to be reused when creating a transaction, when the Fiber would be switched during a transaction. (patch [32733b25](https://github.com/appsignal/appsignal-ruby/commit/32733b25ced393cc7ed4bd6f15f3b6b293b133c5))
18
+ - Fix a config error log message when the config is not active and should not validate the config. (patch [0d114b43](https://github.com/appsignal/appsignal-ruby/commit/0d114b435f63fe11bebce26efe282f90e2eb57aa))
19
+
3
20
  ## 4.5.13
4
21
 
5
22
  _Published on 2025-05-12._
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" => "0.36.5",
9
+ "version" => "0.36.6",
10
10
  "mirrors" => [
11
11
  "https://d135dj0rjqvssy.cloudfront.net",
12
12
  "https://appsignal-agent-releases.global.ssl.fastly.net"
@@ -14,131 +14,131 @@ APPSIGNAL_AGENT_CONFIG = {
14
14
  "triples" => {
15
15
  "x86_64-darwin" => {
16
16
  "static" => {
17
- "checksum" => "174222cc211a50eefa35f1b2391f94ea1a0fede07ab4210f90764ea4353e24f7",
17
+ "checksum" => "b4a9453064663f969f2012d0fbbfad4566a35f3231d92d05c46b0e4fd15e62de",
18
18
  "filename" => "appsignal-x86_64-darwin-all-static.tar.gz"
19
19
  },
20
20
  "dynamic" => {
21
- "checksum" => "5057e7e99d033765bc49e949f2c313299430cdcdce257d2ee2e7f0565be38776",
21
+ "checksum" => "2d4db66cf830c9949acde834c70bd50581331cbe0919610fc09697334994015d",
22
22
  "filename" => "appsignal-x86_64-darwin-all-dynamic.tar.gz"
23
23
  }
24
24
  },
25
25
  "universal-darwin" => {
26
26
  "static" => {
27
- "checksum" => "174222cc211a50eefa35f1b2391f94ea1a0fede07ab4210f90764ea4353e24f7",
27
+ "checksum" => "b4a9453064663f969f2012d0fbbfad4566a35f3231d92d05c46b0e4fd15e62de",
28
28
  "filename" => "appsignal-x86_64-darwin-all-static.tar.gz"
29
29
  },
30
30
  "dynamic" => {
31
- "checksum" => "5057e7e99d033765bc49e949f2c313299430cdcdce257d2ee2e7f0565be38776",
31
+ "checksum" => "2d4db66cf830c9949acde834c70bd50581331cbe0919610fc09697334994015d",
32
32
  "filename" => "appsignal-x86_64-darwin-all-dynamic.tar.gz"
33
33
  }
34
34
  },
35
35
  "aarch64-darwin" => {
36
36
  "static" => {
37
- "checksum" => "54d9687a716c5e607f92aa93782b1c64fe064d4a42c58473e0b07eb313378103",
37
+ "checksum" => "fc1245fca1445c2eb25f9e4f0dd5809f86eefa7e96ea87a227891ce76af81bfc",
38
38
  "filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
39
39
  },
40
40
  "dynamic" => {
41
- "checksum" => "3b6e420e306856c3d35fefb3a1e0b57cbc4623732a661517ccb75ab0657b5aa5",
41
+ "checksum" => "fae30a5dadbc0a3d8815055683a686ab96e9713a067778abdb99a25a7dc7d6f8",
42
42
  "filename" => "appsignal-aarch64-darwin-all-dynamic.tar.gz"
43
43
  }
44
44
  },
45
45
  "arm64-darwin" => {
46
46
  "static" => {
47
- "checksum" => "54d9687a716c5e607f92aa93782b1c64fe064d4a42c58473e0b07eb313378103",
47
+ "checksum" => "fc1245fca1445c2eb25f9e4f0dd5809f86eefa7e96ea87a227891ce76af81bfc",
48
48
  "filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
49
49
  },
50
50
  "dynamic" => {
51
- "checksum" => "3b6e420e306856c3d35fefb3a1e0b57cbc4623732a661517ccb75ab0657b5aa5",
51
+ "checksum" => "fae30a5dadbc0a3d8815055683a686ab96e9713a067778abdb99a25a7dc7d6f8",
52
52
  "filename" => "appsignal-aarch64-darwin-all-dynamic.tar.gz"
53
53
  }
54
54
  },
55
55
  "arm-darwin" => {
56
56
  "static" => {
57
- "checksum" => "54d9687a716c5e607f92aa93782b1c64fe064d4a42c58473e0b07eb313378103",
57
+ "checksum" => "fc1245fca1445c2eb25f9e4f0dd5809f86eefa7e96ea87a227891ce76af81bfc",
58
58
  "filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
59
59
  },
60
60
  "dynamic" => {
61
- "checksum" => "3b6e420e306856c3d35fefb3a1e0b57cbc4623732a661517ccb75ab0657b5aa5",
61
+ "checksum" => "fae30a5dadbc0a3d8815055683a686ab96e9713a067778abdb99a25a7dc7d6f8",
62
62
  "filename" => "appsignal-aarch64-darwin-all-dynamic.tar.gz"
63
63
  }
64
64
  },
65
65
  "aarch64-linux" => {
66
66
  "static" => {
67
- "checksum" => "59746a7fe722eb9c985e155aeaefdab37d96a96f650eff81b8610955b09edebb",
67
+ "checksum" => "41f69ec7e2d15a552897eb22a745fb6df2589d8b53909155c16bd5fe5d830c71",
68
68
  "filename" => "appsignal-aarch64-linux-all-static.tar.gz"
69
69
  },
70
70
  "dynamic" => {
71
- "checksum" => "6a8c597ed646790c6a70913a8be70e2cc7cc022a3ffedf7b1df6e003b1781aea",
71
+ "checksum" => "ad75ebf30a92261d4a3c5e15ed728f24da54c9b588dc71b840eba3f548096945",
72
72
  "filename" => "appsignal-aarch64-linux-all-dynamic.tar.gz"
73
73
  }
74
74
  },
75
75
  "i686-linux" => {
76
76
  "static" => {
77
- "checksum" => "4202807069dcd2b9df2c478273f7ce23f88e47224e75a5062592ed6af8a675ec",
77
+ "checksum" => "abdaeca2c16362838ad0c81a36f55ae05638b9bc4cee647928e5c07c56582f6d",
78
78
  "filename" => "appsignal-i686-linux-all-static.tar.gz"
79
79
  },
80
80
  "dynamic" => {
81
- "checksum" => "34a6b6502eb924c60fe98a4c0d62fc83b8ca210beb334c559f909cad24276312",
81
+ "checksum" => "b2e7ce869405e9198d920c5ba94249a36ae4fa310666c8fcd250e6d7b7f8495f",
82
82
  "filename" => "appsignal-i686-linux-all-dynamic.tar.gz"
83
83
  }
84
84
  },
85
85
  "x86-linux" => {
86
86
  "static" => {
87
- "checksum" => "4202807069dcd2b9df2c478273f7ce23f88e47224e75a5062592ed6af8a675ec",
87
+ "checksum" => "abdaeca2c16362838ad0c81a36f55ae05638b9bc4cee647928e5c07c56582f6d",
88
88
  "filename" => "appsignal-i686-linux-all-static.tar.gz"
89
89
  },
90
90
  "dynamic" => {
91
- "checksum" => "34a6b6502eb924c60fe98a4c0d62fc83b8ca210beb334c559f909cad24276312",
91
+ "checksum" => "b2e7ce869405e9198d920c5ba94249a36ae4fa310666c8fcd250e6d7b7f8495f",
92
92
  "filename" => "appsignal-i686-linux-all-dynamic.tar.gz"
93
93
  }
94
94
  },
95
95
  "x86_64-linux" => {
96
96
  "static" => {
97
- "checksum" => "948ae7a80b5c33807ddfd7f7e575515db76868dc4750993e658a19920db43d99",
97
+ "checksum" => "ca8bf1da8e0477027000ecad7b224244d3ff3217fa90652841567aa76bb0e2dc",
98
98
  "filename" => "appsignal-x86_64-linux-all-static.tar.gz"
99
99
  },
100
100
  "dynamic" => {
101
- "checksum" => "bdc95b8c5da28802c4023eb48d30aa7f8c4ec85484436d083f43fea0087c946e",
101
+ "checksum" => "69dda126449371fc0cdbff3b381c3f40d98b2a8526ba900a21e8b7e1f5e293ad",
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" => "e9d717aecfe1a7bcc139289b8aa10d3e4e52f487776cd1a26025ac13b55b7754",
107
+ "checksum" => "dd9ea02fe7c0521a9761d94b232dd91d4fb2d39e73955872eb7b8344926d439d",
108
108
  "filename" => "appsignal-x86_64-linux-musl-all-static.tar.gz"
109
109
  },
110
110
  "dynamic" => {
111
- "checksum" => "bef8053e0bf3cc35f21e448360ae3f0e63a3be82e44473fcdf15022f0d7536c4",
111
+ "checksum" => "98aa3ef8d21998c35416760be24a202141f6b20718a09ebe449d1bdb58e78700",
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" => "313affebfe45a3d31a368e39cb3f1ea3860de21282c52ad97c0d194a9dbd52e8",
117
+ "checksum" => "dab51a719c468faa87232fd4c1c5ea1ad43a3ec0fcade99cafe1d82b039e3708",
118
118
  "filename" => "appsignal-aarch64-linux-musl-all-static.tar.gz"
119
119
  },
120
120
  "dynamic" => {
121
- "checksum" => "8f36aea4e175b60627172521ef40eda5f52bc995b52ac2a23b30cf93d59052c4",
121
+ "checksum" => "b1ed4b3cfc02515c302b3ac1443f86dc34a8c9c27061a4a6587a7f050e2d8f3c",
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" => "b35d43501b22bf9a98fc37545932fe79c4adee3cea7c4b5a677266a858ceab88",
127
+ "checksum" => "115abdd9452f37037e7cc1f0e5b205e00317142a1d1d31d84c5729e6fba3cd46",
128
128
  "filename" => "appsignal-x86_64-freebsd-all-static.tar.gz"
129
129
  },
130
130
  "dynamic" => {
131
- "checksum" => "ce0d483848b5d44a5a1dfa5f9bc7d9299d9c7c9c5e5a9e1f0b7b5793a01aa349",
131
+ "checksum" => "5077cfcffaab249de505cba8a3e70f645e0a26d3ab26d4aac908226f9a818ea4",
132
132
  "filename" => "appsignal-x86_64-freebsd-all-dynamic.tar.gz"
133
133
  }
134
134
  },
135
135
  "amd64-freebsd" => {
136
136
  "static" => {
137
- "checksum" => "b35d43501b22bf9a98fc37545932fe79c4adee3cea7c4b5a677266a858ceab88",
137
+ "checksum" => "115abdd9452f37037e7cc1f0e5b205e00317142a1d1d31d84c5729e6fba3cd46",
138
138
  "filename" => "appsignal-x86_64-freebsd-all-static.tar.gz"
139
139
  },
140
140
  "dynamic" => {
141
- "checksum" => "ce0d483848b5d44a5a1dfa5f9bc7d9299d9c7c9c5e5a9e1f0b7b5793a01aa349",
141
+ "checksum" => "5077cfcffaab249de505cba8a3e70f645e0a26d3ab26d4aac908226f9a818ea4",
142
142
  "filename" => "appsignal-x86_64-freebsd-all-dynamic.tar.gz"
143
143
  }
144
144
  }
@@ -166,6 +166,7 @@ module Appsignal
166
166
  :push_api_key => "APPSIGNAL_PUSH_API_KEY",
167
167
  :sidekiq_report_errors => "APPSIGNAL_SIDEKIQ_REPORT_ERRORS",
168
168
  :statsd_port => "APPSIGNAL_STATSD_PORT",
169
+ :nginx_port => "APPSIGNAL_NGINX_PORT",
169
170
  :working_directory_path => "APPSIGNAL_WORKING_DIRECTORY_PATH",
170
171
  :revision => "APP_REVISION"
171
172
  }.freeze
@@ -393,8 +394,12 @@ module Appsignal
393
394
  @valid
394
395
  end
395
396
 
397
+ def active_for_env?
398
+ config_hash[:active]
399
+ end
400
+
396
401
  def active?
397
- @valid && config_hash[:active]
402
+ valid? && active_for_env?
398
403
  end
399
404
 
400
405
  # @api private
@@ -432,6 +437,7 @@ module Appsignal
432
437
  ENV["_APPSIGNAL_RUNNING_IN_CONTAINER"] = config_hash[:running_in_container].to_s
433
438
  ENV["_APPSIGNAL_SEND_ENVIRONMENT_METADATA"] = config_hash[:send_environment_metadata].to_s
434
439
  ENV["_APPSIGNAL_STATSD_PORT"] = config_hash[:statsd_port].to_s
440
+ ENV["_APPSIGNAL_NGINX_PORT"] = config_hash[:nginx_port].to_s
435
441
  if config_hash[:working_directory_path]
436
442
  ENV["_APPSIGNAL_WORKING_DIRECTORY_PATH"] = config_hash[:working_directory_path]
437
443
  end
@@ -444,13 +450,16 @@ module Appsignal
444
450
  merge(options)
445
451
  end
446
452
 
447
- # @return [void]
453
+ # Apply any overrides for invalid settings.
448
454
  # @api private
449
- def validate
450
- # Apply any overrides for invalid settings.
455
+ def apply_overrides
451
456
  @override_config = determine_overrides
452
457
  merge(override_config)
458
+ end
453
459
 
460
+ # @return [void]
461
+ # @api private
462
+ def validate
454
463
  # Strip path from endpoint so we're backwards compatible with
455
464
  # earlier versions of the gem.
456
465
  # TODO: Move to its own method, maybe in `#[]=`?
@@ -27,20 +27,25 @@ module Appsignal
27
27
  # @param namespace [String] Namespace of the to be created transaction.
28
28
  # @return [Transaction]
29
29
  def create(namespace)
30
- # Check if we already have a running transaction
30
+ # Reset the transaction if it was already completed but not cleared
31
+ if Thread.current[:appsignal_transaction]&.completed?
32
+ Thread.current[:appsignal_transaction] = nil
33
+ end
34
+
31
35
  if Thread.current[:appsignal_transaction].nil?
32
36
  # If not, start a new transaction
33
37
  set_current_transaction(Appsignal::Transaction.new(namespace))
34
38
  else
39
+ transaction = current
35
40
  # Otherwise, log the issue about trying to start another transaction
36
41
  Appsignal.internal_logger.warn(
37
42
  "Trying to start new transaction, but a transaction " \
38
- "with id '#{current.transaction_id}' is already running. " \
39
- "Using transaction '#{current.transaction_id}'."
43
+ "with id '#{transaction.transaction_id}' is already running. " \
44
+ "Using transaction '#{transaction.transaction_id}'."
40
45
  )
41
46
 
42
47
  # And return the current transaction instead
43
- current
48
+ transaction
44
49
  end
45
50
  end
46
51
 
@@ -154,6 +159,7 @@ module Appsignal
154
159
  @namespace = namespace
155
160
  @paused = false
156
161
  @discarded = false
162
+ @completed = false
157
163
  @tags = {}
158
164
  @breadcrumbs = []
159
165
  @store = Hash.new { |hash, key| hash[key] = {} }
@@ -185,6 +191,11 @@ module Appsignal
185
191
  false
186
192
  end
187
193
 
194
+ # @api private
195
+ def completed?
196
+ @completed
197
+ end
198
+
188
199
  # @api private
189
200
  def complete
190
201
  if discarded?
@@ -233,6 +244,7 @@ module Appsignal
233
244
 
234
245
  sample_data if should_sample
235
246
 
247
+ @completed = true
236
248
  @ext.complete
237
249
  end
238
250
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Appsignal
4
- VERSION = "4.5.13"
4
+ VERSION = "4.5.15"
5
5
  end
data/lib/appsignal.rb CHANGED
@@ -133,8 +133,8 @@ module Appsignal
133
133
  _load_config!
134
134
  _start_logger
135
135
 
136
- if config.valid?
137
- if config.active?
136
+ if config.active_for_env?
137
+ if config.valid?
138
138
  @started = true
139
139
  internal_logger.info "Starting AppSignal #{Appsignal::VERSION} " \
140
140
  "(#{$PROGRAM_NAME}, Ruby #{RUBY_VERSION}, #{RUBY_PLATFORM})"
@@ -153,10 +153,10 @@ module Appsignal
153
153
  collect_environment_metadata
154
154
  @config.freeze
155
155
  else
156
- internal_logger.info("Not starting, not active for #{config.env}")
156
+ internal_logger.info("Not starting, no valid config for this environment")
157
157
  end
158
158
  else
159
- internal_logger.error("Not starting, no valid config for this environment")
159
+ internal_logger.info("Not starting, not active for #{config.env}")
160
160
  end
161
161
  nil
162
162
  end
@@ -166,7 +166,7 @@ module Appsignal
166
166
  # @param env_param [String, NilClass] Used by diagnose CLI to pass through
167
167
  # the environment CLI option value.
168
168
  # @api private
169
- def _load_config!(env_param = nil, &block)
169
+ def _load_config!(env_param = nil, &block) # rubocop:disable Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity
170
170
  # Ensure it's not an empty string if it's a value
171
171
  proper_env_param = env_param&.to_s&.strip
172
172
  # Unset it if it's an empty string
@@ -206,9 +206,17 @@ module Appsignal
206
206
  # This will load the config/appsignal.yml file automatically
207
207
  @config ||= Config.new(context.root_path, context.env)
208
208
  end
209
+
209
210
  # Allow a block to be given to customize the config and override any
210
211
  # loaded config before it's validated.
211
212
  block.call(config) if block_given?
213
+
214
+ # Apply any config overrides after the user config has been merged
215
+ config&.apply_overrides
216
+
217
+ # Skip validation if not configured as active for this environment
218
+ return unless config.active_for_env?
219
+
212
220
  # Validate the config, if present
213
221
  config&.validate
214
222
  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: 4.5.13
4
+ version: 4.5.15
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: 2025-05-12 00:00:00.000000000 Z
13
+ date: 2025-06-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: logger
@@ -331,7 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
331
331
  - !ruby/object:Gem::Version
332
332
  version: '0'
333
333
  requirements: []
334
- rubygems_version: 3.5.23
334
+ rubygems_version: 3.3.7
335
335
  signing_key:
336
336
  specification_version: 4
337
337
  summary: Logs performance and exception data from your app to appsignal.com