appsignal 3.4.10 → 3.4.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/.semaphore/semaphore.yml +341 -2
- data/CHANGELOG.md +28 -0
- data/appsignal.gemspec +1 -1
- data/build_matrix.yml +6 -0
- data/ext/agent.rb +27 -27
- data/ext/base.rb +1 -1
- data/lib/appsignal/config.rb +30 -2
- data/lib/appsignal/event_formatter/action_view/render_formatter.rb +1 -1
- data/lib/appsignal/event_formatter.rb +1 -1
- data/lib/appsignal/transaction.rb +9 -2
- data/lib/appsignal/version.rb +1 -1
- data/spec/lib/appsignal/config_spec.rb +54 -13
- data/spec/lib/appsignal/transaction_spec.rb +4 -2
- data/spec/spec_helper.rb +6 -6
- data/spec/support/matchers/have_colorized_text.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23564a15fbad1ecb68987675c925a81b0e423ffa66a3481563999f97db10ef79
|
4
|
+
data.tar.gz: a42321ba0bc9809e2b4b26a3c7e3707e5c06941a30ed6187cba491cbc76b9cfd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff4db633c340cf16fc0cfb3b154f4b754ef3416d3e56077203b7a298851457624dba934576c634b56bad599199fe427d1200dfa019f3bcfab67a9aa7349a0591
|
7
|
+
data.tar.gz: 811176ae1f6735a901e1b0b822b4956aa5a0ca86efd2fbc8cc969afde01510022d3d2adf4fe11de50609f324df4dab0c699dbf84ca120ab27556d18735e7748b
|
data/.rubocop.yml
CHANGED
data/.semaphore/semaphore.yml
CHANGED
@@ -138,7 +138,7 @@ blocks:
|
|
138
138
|
.bundle
|
139
139
|
- cache store $_GEMS_CACHE-gems-$RUBY_VERSION-diagnose-$(checksum Gemfile)
|
140
140
|
$HOME/.gem
|
141
|
-
- name: Ruby
|
141
|
+
- name: Ruby 2.7.8
|
142
142
|
dependencies:
|
143
143
|
- Validation
|
144
144
|
task:
|
@@ -165,7 +165,7 @@ blocks:
|
|
165
165
|
file found'"
|
166
166
|
- "[ -f ext/mkmf.log ] && cat ext/mkmf.log || echo 'No ext/mkmf.log file found'"
|
167
167
|
jobs:
|
168
|
-
- name: Ruby
|
168
|
+
- name: Ruby 2.7.8 for no_dependencies
|
169
169
|
env_vars:
|
170
170
|
- &2
|
171
171
|
name: BUNDLE_PATH
|
@@ -179,6 +179,345 @@ blocks:
|
|
179
179
|
- &5
|
180
180
|
name: COV
|
181
181
|
value: '1'
|
182
|
+
- name: RUBY_VERSION
|
183
|
+
value: 2.7.8
|
184
|
+
- name: GEMSET
|
185
|
+
value: no_dependencies
|
186
|
+
- name: BUNDLE_GEMFILE
|
187
|
+
value: gemfiles/no_dependencies.gemfile
|
188
|
+
- name: _RUBYGEMS_VERSION
|
189
|
+
value: latest
|
190
|
+
- name: _BUNDLER_VERSION
|
191
|
+
value: latest
|
192
|
+
commands:
|
193
|
+
- "./support/bundler_wrapper exec rake test"
|
194
|
+
- "./support/bundler_wrapper exec rake test:failure"
|
195
|
+
- name: Ruby 2.7.8 - Gems
|
196
|
+
dependencies:
|
197
|
+
- Ruby 2.7.8
|
198
|
+
task:
|
199
|
+
prologue:
|
200
|
+
commands:
|
201
|
+
- cache restore $_BUNDLER_CACHE-bundler-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE)-$(checksum
|
202
|
+
appsignal.gemspec)
|
203
|
+
- cache restore $_GEMS_CACHE-gems-$RUBY_VERSION-$(checksum $BUNDLE_GEMFILE)-$(checksum
|
204
|
+
appsignal.gemspec)
|
205
|
+
- "./support/install_deps"
|
206
|
+
- bundle config set clean 'true'
|
207
|
+
- "./support/bundler_wrapper install --jobs=3 --retry=3"
|
208
|
+
- "./support/bundler_wrapper exec rake extension:install"
|
209
|
+
epilogue: *1
|
210
|
+
jobs:
|
211
|
+
- name: Ruby 2.7.8 for capistrano2
|
212
|
+
env_vars:
|
213
|
+
- *2
|
214
|
+
- *3
|
215
|
+
- *4
|
216
|
+
- *5
|
217
|
+
- name: RUBY_VERSION
|
218
|
+
value: 2.7.8
|
219
|
+
- name: GEMSET
|
220
|
+
value: capistrano2
|
221
|
+
- name: BUNDLE_GEMFILE
|
222
|
+
value: gemfiles/capistrano2.gemfile
|
223
|
+
- name: _RUBYGEMS_VERSION
|
224
|
+
value: latest
|
225
|
+
- name: _BUNDLER_VERSION
|
226
|
+
value: latest
|
227
|
+
commands:
|
228
|
+
- "./support/bundler_wrapper exec rake test"
|
229
|
+
- name: Ruby 2.7.8 for capistrano3
|
230
|
+
env_vars:
|
231
|
+
- *2
|
232
|
+
- *3
|
233
|
+
- *4
|
234
|
+
- *5
|
235
|
+
- name: RUBY_VERSION
|
236
|
+
value: 2.7.8
|
237
|
+
- name: GEMSET
|
238
|
+
value: capistrano3
|
239
|
+
- name: BUNDLE_GEMFILE
|
240
|
+
value: gemfiles/capistrano3.gemfile
|
241
|
+
- name: _RUBYGEMS_VERSION
|
242
|
+
value: latest
|
243
|
+
- name: _BUNDLER_VERSION
|
244
|
+
value: latest
|
245
|
+
commands:
|
246
|
+
- "./support/bundler_wrapper exec rake test"
|
247
|
+
- name: Ruby 2.7.8 for grape
|
248
|
+
env_vars:
|
249
|
+
- *2
|
250
|
+
- *3
|
251
|
+
- *4
|
252
|
+
- *5
|
253
|
+
- name: RUBY_VERSION
|
254
|
+
value: 2.7.8
|
255
|
+
- name: GEMSET
|
256
|
+
value: grape
|
257
|
+
- name: BUNDLE_GEMFILE
|
258
|
+
value: gemfiles/grape.gemfile
|
259
|
+
- name: _RUBYGEMS_VERSION
|
260
|
+
value: latest
|
261
|
+
- name: _BUNDLER_VERSION
|
262
|
+
value: latest
|
263
|
+
commands:
|
264
|
+
- "./support/bundler_wrapper exec rake test"
|
265
|
+
- name: Ruby 2.7.8 for http5
|
266
|
+
env_vars:
|
267
|
+
- *2
|
268
|
+
- *3
|
269
|
+
- *4
|
270
|
+
- *5
|
271
|
+
- name: RUBY_VERSION
|
272
|
+
value: 2.7.8
|
273
|
+
- name: GEMSET
|
274
|
+
value: http5
|
275
|
+
- name: BUNDLE_GEMFILE
|
276
|
+
value: gemfiles/http5.gemfile
|
277
|
+
- name: _RUBYGEMS_VERSION
|
278
|
+
value: latest
|
279
|
+
- name: _BUNDLER_VERSION
|
280
|
+
value: latest
|
281
|
+
commands:
|
282
|
+
- "./support/bundler_wrapper exec rake test"
|
283
|
+
- name: Ruby 2.7.8 for padrino
|
284
|
+
env_vars:
|
285
|
+
- *2
|
286
|
+
- *3
|
287
|
+
- *4
|
288
|
+
- *5
|
289
|
+
- name: RUBY_VERSION
|
290
|
+
value: 2.7.8
|
291
|
+
- name: GEMSET
|
292
|
+
value: padrino
|
293
|
+
- name: BUNDLE_GEMFILE
|
294
|
+
value: gemfiles/padrino.gemfile
|
295
|
+
- name: _RUBYGEMS_VERSION
|
296
|
+
value: latest
|
297
|
+
- name: _BUNDLER_VERSION
|
298
|
+
value: latest
|
299
|
+
commands:
|
300
|
+
- "./support/bundler_wrapper exec rake test"
|
301
|
+
- name: Ruby 2.7.8 for psych-3
|
302
|
+
env_vars:
|
303
|
+
- *2
|
304
|
+
- *3
|
305
|
+
- *4
|
306
|
+
- *5
|
307
|
+
- name: RUBY_VERSION
|
308
|
+
value: 2.7.8
|
309
|
+
- name: GEMSET
|
310
|
+
value: psych-3
|
311
|
+
- name: BUNDLE_GEMFILE
|
312
|
+
value: gemfiles/psych-3.gemfile
|
313
|
+
- name: _RUBYGEMS_VERSION
|
314
|
+
value: latest
|
315
|
+
- name: _BUNDLER_VERSION
|
316
|
+
value: latest
|
317
|
+
commands:
|
318
|
+
- "./support/bundler_wrapper exec rake test"
|
319
|
+
- name: Ruby 2.7.8 for psych-4
|
320
|
+
env_vars:
|
321
|
+
- *2
|
322
|
+
- *3
|
323
|
+
- *4
|
324
|
+
- *5
|
325
|
+
- name: RUBY_VERSION
|
326
|
+
value: 2.7.8
|
327
|
+
- name: GEMSET
|
328
|
+
value: psych-4
|
329
|
+
- name: BUNDLE_GEMFILE
|
330
|
+
value: gemfiles/psych-4.gemfile
|
331
|
+
- name: _RUBYGEMS_VERSION
|
332
|
+
value: latest
|
333
|
+
- name: _BUNDLER_VERSION
|
334
|
+
value: latest
|
335
|
+
commands:
|
336
|
+
- "./support/bundler_wrapper exec rake test"
|
337
|
+
- name: Ruby 2.7.8 for que
|
338
|
+
env_vars:
|
339
|
+
- *2
|
340
|
+
- *3
|
341
|
+
- *4
|
342
|
+
- *5
|
343
|
+
- name: RUBY_VERSION
|
344
|
+
value: 2.7.8
|
345
|
+
- name: GEMSET
|
346
|
+
value: que
|
347
|
+
- name: BUNDLE_GEMFILE
|
348
|
+
value: gemfiles/que.gemfile
|
349
|
+
- name: _RUBYGEMS_VERSION
|
350
|
+
value: latest
|
351
|
+
- name: _BUNDLER_VERSION
|
352
|
+
value: latest
|
353
|
+
commands:
|
354
|
+
- "./support/bundler_wrapper exec rake test"
|
355
|
+
- name: Ruby 2.7.8 for que_beta
|
356
|
+
env_vars:
|
357
|
+
- *2
|
358
|
+
- *3
|
359
|
+
- *4
|
360
|
+
- *5
|
361
|
+
- name: RUBY_VERSION
|
362
|
+
value: 2.7.8
|
363
|
+
- name: GEMSET
|
364
|
+
value: que_beta
|
365
|
+
- name: BUNDLE_GEMFILE
|
366
|
+
value: gemfiles/que_beta.gemfile
|
367
|
+
- name: _RUBYGEMS_VERSION
|
368
|
+
value: latest
|
369
|
+
- name: _BUNDLER_VERSION
|
370
|
+
value: latest
|
371
|
+
commands:
|
372
|
+
- "./support/bundler_wrapper exec rake test"
|
373
|
+
- name: Ruby 2.7.8 for rails-6.0
|
374
|
+
env_vars:
|
375
|
+
- *2
|
376
|
+
- *3
|
377
|
+
- *4
|
378
|
+
- *5
|
379
|
+
- name: RUBY_VERSION
|
380
|
+
value: 2.7.8
|
381
|
+
- name: GEMSET
|
382
|
+
value: rails-6.0
|
383
|
+
- name: BUNDLE_GEMFILE
|
384
|
+
value: gemfiles/rails-6.0.gemfile
|
385
|
+
- name: _RUBYGEMS_VERSION
|
386
|
+
value: latest
|
387
|
+
- name: _BUNDLER_VERSION
|
388
|
+
value: latest
|
389
|
+
commands:
|
390
|
+
- "./support/bundler_wrapper exec rake test"
|
391
|
+
- name: Ruby 2.7.8 for rails-6.1
|
392
|
+
env_vars:
|
393
|
+
- *2
|
394
|
+
- *3
|
395
|
+
- *4
|
396
|
+
- *5
|
397
|
+
- name: RUBY_VERSION
|
398
|
+
value: 2.7.8
|
399
|
+
- name: GEMSET
|
400
|
+
value: rails-6.1
|
401
|
+
- name: BUNDLE_GEMFILE
|
402
|
+
value: gemfiles/rails-6.1.gemfile
|
403
|
+
- name: _RUBYGEMS_VERSION
|
404
|
+
value: latest
|
405
|
+
- name: _BUNDLER_VERSION
|
406
|
+
value: latest
|
407
|
+
commands:
|
408
|
+
- "./support/bundler_wrapper exec rake test"
|
409
|
+
- name: Ruby 2.7.8 for rails-7.0
|
410
|
+
env_vars:
|
411
|
+
- *2
|
412
|
+
- *3
|
413
|
+
- *4
|
414
|
+
- *5
|
415
|
+
- name: RUBY_VERSION
|
416
|
+
value: 2.7.8
|
417
|
+
- name: GEMSET
|
418
|
+
value: rails-7.0
|
419
|
+
- name: BUNDLE_GEMFILE
|
420
|
+
value: gemfiles/rails-7.0.gemfile
|
421
|
+
- name: _RUBYGEMS_VERSION
|
422
|
+
value: latest
|
423
|
+
- name: _BUNDLER_VERSION
|
424
|
+
value: latest
|
425
|
+
commands:
|
426
|
+
- "./support/bundler_wrapper exec rake test"
|
427
|
+
- name: Ruby 2.7.8 for sequel
|
428
|
+
env_vars:
|
429
|
+
- *2
|
430
|
+
- *3
|
431
|
+
- *4
|
432
|
+
- *5
|
433
|
+
- name: RUBY_VERSION
|
434
|
+
value: 2.7.8
|
435
|
+
- name: GEMSET
|
436
|
+
value: sequel
|
437
|
+
- name: BUNDLE_GEMFILE
|
438
|
+
value: gemfiles/sequel.gemfile
|
439
|
+
- name: _RUBYGEMS_VERSION
|
440
|
+
value: latest
|
441
|
+
- name: _BUNDLER_VERSION
|
442
|
+
value: latest
|
443
|
+
commands:
|
444
|
+
- "./support/bundler_wrapper exec rake test"
|
445
|
+
- name: Ruby 2.7.8 for sinatra
|
446
|
+
env_vars:
|
447
|
+
- *2
|
448
|
+
- *3
|
449
|
+
- *4
|
450
|
+
- *5
|
451
|
+
- name: RUBY_VERSION
|
452
|
+
value: 2.7.8
|
453
|
+
- name: GEMSET
|
454
|
+
value: sinatra
|
455
|
+
- name: BUNDLE_GEMFILE
|
456
|
+
value: gemfiles/sinatra.gemfile
|
457
|
+
- name: _RUBYGEMS_VERSION
|
458
|
+
value: latest
|
459
|
+
- name: _BUNDLER_VERSION
|
460
|
+
value: latest
|
461
|
+
commands:
|
462
|
+
- "./support/bundler_wrapper exec rake test"
|
463
|
+
- name: Ruby 2.7.8 for webmachine1
|
464
|
+
env_vars:
|
465
|
+
- *2
|
466
|
+
- *3
|
467
|
+
- *4
|
468
|
+
- *5
|
469
|
+
- name: RUBY_VERSION
|
470
|
+
value: 2.7.8
|
471
|
+
- name: GEMSET
|
472
|
+
value: webmachine1
|
473
|
+
- name: BUNDLE_GEMFILE
|
474
|
+
value: gemfiles/webmachine1.gemfile
|
475
|
+
- name: _RUBYGEMS_VERSION
|
476
|
+
value: latest
|
477
|
+
- name: _BUNDLER_VERSION
|
478
|
+
value: latest
|
479
|
+
commands:
|
480
|
+
- "./support/bundler_wrapper exec rake test"
|
481
|
+
- name: Ruby 2.7.8 for webmachine2
|
482
|
+
env_vars:
|
483
|
+
- *2
|
484
|
+
- *3
|
485
|
+
- *4
|
486
|
+
- *5
|
487
|
+
- name: RUBY_VERSION
|
488
|
+
value: 2.7.8
|
489
|
+
- name: GEMSET
|
490
|
+
value: webmachine2
|
491
|
+
- name: BUNDLE_GEMFILE
|
492
|
+
value: gemfiles/webmachine2.gemfile
|
493
|
+
- name: _RUBYGEMS_VERSION
|
494
|
+
value: latest
|
495
|
+
- name: _BUNDLER_VERSION
|
496
|
+
value: latest
|
497
|
+
commands:
|
498
|
+
- "./support/bundler_wrapper exec rake test"
|
499
|
+
- name: Ruby 3.0.5
|
500
|
+
dependencies:
|
501
|
+
- Validation
|
502
|
+
task:
|
503
|
+
prologue:
|
504
|
+
commands:
|
505
|
+
- cache restore $_BUNDLER_CACHE-bundler-$RUBY_VERSION-$GEMSET-$(checksum $BUNDLE_GEMFILE)-$(checksum
|
506
|
+
appsignal.gemspec)
|
507
|
+
- cache restore $_GEMS_CACHE-gems-$RUBY_VERSION-$(checksum $BUNDLE_GEMFILE)-$(checksum
|
508
|
+
appsignal.gemspec)
|
509
|
+
- "./support/install_deps"
|
510
|
+
- bundle config set clean 'true'
|
511
|
+
- "./support/bundler_wrapper install --jobs=3 --retry=3"
|
512
|
+
- "./support/bundler_wrapper exec rake extension:install"
|
513
|
+
epilogue: *1
|
514
|
+
jobs:
|
515
|
+
- name: Ruby 3.0.5 for no_dependencies
|
516
|
+
env_vars:
|
517
|
+
- *2
|
518
|
+
- *3
|
519
|
+
- *4
|
520
|
+
- *5
|
182
521
|
- name: RUBY_VERSION
|
183
522
|
value: 3.0.5
|
184
523
|
- name: GEMSET
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,33 @@
|
|
1
1
|
# AppSignal for Ruby gem Changelog
|
2
2
|
|
3
|
+
## 3.4.12
|
4
|
+
|
5
|
+
### Added
|
6
|
+
|
7
|
+
- [441de353](https://github.com/appsignal/appsignal-ruby/commit/441de3537e7a8f36dd2460149c171aaa80929e53) patch - Add an option to not start AppSignal on config file errors. When the `config/appsignal.yml` file raises an error (due to ERB syntax issues or ERB errors), it will currently ignore the config file and try to make a configuration work from the other config sources (default, auto detection and system environment variables). This can cause unexpected behavior, because the config from the config file is not part of the loaded config.
|
8
|
+
|
9
|
+
In future versions of the Ruby gem, AppSignal will not start when the config file contains an error. To opt-in to this new behavior, set the `APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR` system environment variable to either `1` or `true`.
|
10
|
+
|
11
|
+
### Changed
|
12
|
+
|
13
|
+
- [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.
|
14
|
+
- [8e636323](https://github.com/appsignal/appsignal-ruby/commit/8e6363232dc7fabe5f1aeae5758802e4c8d6cbfa) patch - Bump agent to 6133900.
|
15
|
+
|
16
|
+
- Fix `disk_inodes_usage` metric name format to not be interpreted as a JSON object.
|
17
|
+
|
18
|
+
## 3.4.11
|
19
|
+
|
20
|
+
### Added
|
21
|
+
|
22
|
+
- [4722292d](https://github.com/appsignal/appsignal-ruby/commit/4722292d022fb7ff7f3403b964b24e82112e93bd) patch - Re-add support for Ruby 2.7.
|
23
|
+
- [d782f9a6](https://github.com/appsignal/appsignal-ruby/commit/d782f9a6db0bd679f01c543900b39fc15124a25f) patch - Add the `host_role` config option. This config option can be set per host to generate some metrics automatically per host and possibly do things like grouping in the future.
|
24
|
+
|
25
|
+
### Changed
|
26
|
+
|
27
|
+
- [f61f4f68](https://github.com/appsignal/appsignal-ruby/commit/f61f4f68699f022d3d9dbb0fa5dc98881923a001) patch - Bump agent to version d789895.
|
28
|
+
|
29
|
+
- Increase short data truncation from 2000 to 10000 characters.
|
30
|
+
|
3
31
|
## 3.4.10
|
4
32
|
|
5
33
|
### Changed
|
data/appsignal.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem| # rubocop:disable Metrics/BlockLength
|
|
20
20
|
gem.name = "appsignal"
|
21
21
|
gem.require_paths = %w[lib ext]
|
22
22
|
gem.version = Appsignal::VERSION
|
23
|
-
gem.required_ruby_version = ">=
|
23
|
+
gem.required_ruby_version = ">= 2.7"
|
24
24
|
# Default extension installer. Overridden by JRuby gemspec as defined in
|
25
25
|
# `Rakefile`.
|
26
26
|
gem.extensions = %w[ext/extconf.rb]
|
data/build_matrix.yml
CHANGED
@@ -172,6 +172,7 @@ matrix:
|
|
172
172
|
- "rails-7.0"
|
173
173
|
|
174
174
|
ruby:
|
175
|
+
- ruby: "2.7.8"
|
175
176
|
- ruby: "3.0.5"
|
176
177
|
- ruby: "3.1.3"
|
177
178
|
- ruby: "3.2.1"
|
@@ -193,12 +194,14 @@ matrix:
|
|
193
194
|
- gem: "psych-3"
|
194
195
|
only:
|
195
196
|
ruby:
|
197
|
+
- "2.7.8"
|
196
198
|
- "3.0.5"
|
197
199
|
- "3.1.3"
|
198
200
|
- "3.2.1"
|
199
201
|
- gem: "psych-4"
|
200
202
|
only:
|
201
203
|
ruby:
|
204
|
+
- "2.7.8"
|
202
205
|
- "3.0.5"
|
203
206
|
- "3.1.3"
|
204
207
|
- "3.2.1"
|
@@ -207,11 +210,13 @@ matrix:
|
|
207
210
|
- gem: "rails-6.0"
|
208
211
|
only:
|
209
212
|
ruby:
|
213
|
+
- "2.7.8"
|
210
214
|
- "3.0.5"
|
211
215
|
- "jruby-9.4.1.0"
|
212
216
|
- gem: "rails-6.1"
|
213
217
|
only:
|
214
218
|
ruby:
|
219
|
+
- "2.7.8"
|
215
220
|
- "3.0.5"
|
216
221
|
- "3.1.3"
|
217
222
|
- "3.2.1"
|
@@ -219,6 +224,7 @@ matrix:
|
|
219
224
|
- gem: "rails-7.0"
|
220
225
|
only:
|
221
226
|
ruby:
|
227
|
+
- "2.7.8"
|
222
228
|
- "3.0.5"
|
223
229
|
- "3.1.3"
|
224
230
|
- "3.2.1"
|
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" => "6133900",
|
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" => "19cfea536fc6c4a8fe335a26d14ce955b422c23217902642f95d7df670152238",
|
18
18
|
"filename" => "appsignal-x86_64-darwin-all-static.tar.gz"
|
19
19
|
},
|
20
20
|
"dynamic" => {
|
21
|
-
"checksum" => "
|
21
|
+
"checksum" => "f5c4b66b45faac47473befdbe286a037d8fca9386339b00f59be9e9505d15b13",
|
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" => "19cfea536fc6c4a8fe335a26d14ce955b422c23217902642f95d7df670152238",
|
28
28
|
"filename" => "appsignal-x86_64-darwin-all-static.tar.gz"
|
29
29
|
},
|
30
30
|
"dynamic" => {
|
31
|
-
"checksum" => "
|
31
|
+
"checksum" => "f5c4b66b45faac47473befdbe286a037d8fca9386339b00f59be9e9505d15b13",
|
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" => "4fa0dbccba79f70edc6844a86bfd047ccdd612d752b65aff46fe0e21d8a610ea",
|
38
38
|
"filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
|
39
39
|
},
|
40
40
|
"dynamic" => {
|
41
|
-
"checksum" => "
|
41
|
+
"checksum" => "f86e88647be6c64f0f1f56b1ac15e0e4453c7e4a6c997fd5e510cf459c572a57",
|
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" => "4fa0dbccba79f70edc6844a86bfd047ccdd612d752b65aff46fe0e21d8a610ea",
|
48
48
|
"filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
|
49
49
|
},
|
50
50
|
"dynamic" => {
|
51
|
-
"checksum" => "
|
51
|
+
"checksum" => "f86e88647be6c64f0f1f56b1ac15e0e4453c7e4a6c997fd5e510cf459c572a57",
|
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" => "4fa0dbccba79f70edc6844a86bfd047ccdd612d752b65aff46fe0e21d8a610ea",
|
58
58
|
"filename" => "appsignal-aarch64-darwin-all-static.tar.gz"
|
59
59
|
},
|
60
60
|
"dynamic" => {
|
61
|
-
"checksum" => "
|
61
|
+
"checksum" => "f86e88647be6c64f0f1f56b1ac15e0e4453c7e4a6c997fd5e510cf459c572a57",
|
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" => "cdd75637940fcfd369b569e873048c7d37a3844d9d31d783e4459b375b78ee0e",
|
68
68
|
"filename" => "appsignal-aarch64-linux-all-static.tar.gz"
|
69
69
|
},
|
70
70
|
"dynamic" => {
|
71
|
-
"checksum" => "
|
71
|
+
"checksum" => "99b52c29d497d63f02a4ff7162152641b51e7ecd292d07f0330e7d4f3abc8075",
|
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" => "a9374d1fd4baae84f1c4a74957cbb8c919b29ae2ab05a571ff75b9ca483717ab",
|
78
78
|
"filename" => "appsignal-i686-linux-all-static.tar.gz"
|
79
79
|
},
|
80
80
|
"dynamic" => {
|
81
|
-
"checksum" => "
|
81
|
+
"checksum" => "d643c72add6fe1054faff034101cf5a2676a169c7bff479f3d79e71875598b8a",
|
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" => "a9374d1fd4baae84f1c4a74957cbb8c919b29ae2ab05a571ff75b9ca483717ab",
|
88
88
|
"filename" => "appsignal-i686-linux-all-static.tar.gz"
|
89
89
|
},
|
90
90
|
"dynamic" => {
|
91
|
-
"checksum" => "
|
91
|
+
"checksum" => "d643c72add6fe1054faff034101cf5a2676a169c7bff479f3d79e71875598b8a",
|
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" => "bd625ed84100d0632b298ac602b152463628c41afe56a8621745cdae626f8413",
|
98
98
|
"filename" => "appsignal-x86_64-linux-all-static.tar.gz"
|
99
99
|
},
|
100
100
|
"dynamic" => {
|
101
|
-
"checksum" => "
|
101
|
+
"checksum" => "0daa644acfee46848282ad733b175e4994e7faf64c8bc046d2efff2b8fc1afdd",
|
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" => "7988c4a2a6ba5d59be2186ce9bf51ab50b6537a60888b08c8e9066172516e59d",
|
108
108
|
"filename" => "appsignal-x86_64-linux-musl-all-static.tar.gz"
|
109
109
|
},
|
110
110
|
"dynamic" => {
|
111
|
-
"checksum" => "
|
111
|
+
"checksum" => "93e47c9400ddae42a8cd2b80c09c9134ee96a76bf622c3ad5d53b776fec1a3f0",
|
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" => "8e5fe2a8bc4cb7de4ba7d61fec48f15aa0cd580050f67752f07625853636eb16",
|
118
118
|
"filename" => "appsignal-aarch64-linux-musl-all-static.tar.gz"
|
119
119
|
},
|
120
120
|
"dynamic" => {
|
121
|
-
"checksum" => "
|
121
|
+
"checksum" => "01f993b3320f0377ef9f652bb215ce268da208f46a6f59ad0c0e71f57257b4ef",
|
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" => "09e21821eb98ad6afdb5d3708b67ea25799aedbee2ccb0d566b99d9c5703cb1e",
|
128
128
|
"filename" => "appsignal-x86_64-freebsd-all-static.tar.gz"
|
129
129
|
},
|
130
130
|
"dynamic" => {
|
131
|
-
"checksum" => "
|
131
|
+
"checksum" => "e77592de9dd7ff41efb6c1d2d88e06fa7b663e9ff009392bb971b1333e0f28d7",
|
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" => "09e21821eb98ad6afdb5d3708b67ea25799aedbee2ccb0d566b99d9c5703cb1e",
|
138
138
|
"filename" => "appsignal-x86_64-freebsd-all-static.tar.gz"
|
139
139
|
},
|
140
140
|
"dynamic" => {
|
141
|
-
"checksum" => "
|
141
|
+
"checksum" => "e77592de9dd7ff41efb6c1d2d88e06fa7b663e9ff009392bb971b1333e0f28d7",
|
142
142
|
"filename" => "appsignal-x86_64-freebsd-all-dynamic.tar.gz"
|
143
143
|
}
|
144
144
|
}
|
data/ext/base.rb
CHANGED
@@ -14,7 +14,7 @@ EXT_PATH = File.expand_path(__dir__).freeze
|
|
14
14
|
|
15
15
|
AGENT_PLATFORM = Appsignal::System.agent_platform
|
16
16
|
AGENT_ARCHITECTURE = Appsignal::System.agent_architecture
|
17
|
-
TARGET_TRIPLE = "#{AGENT_ARCHITECTURE}-#{AGENT_PLATFORM}"
|
17
|
+
TARGET_TRIPLE = "#{AGENT_ARCHITECTURE}-#{AGENT_PLATFORM}"
|
18
18
|
ARCH_CONFIG = APPSIGNAL_AGENT_CONFIG["triples"][TARGET_TRIPLE].freeze
|
19
19
|
CA_CERT_PATH = File.join(EXT_PATH, "../resources/cacert.pem").freeze
|
20
20
|
|
data/lib/appsignal/config.rb
CHANGED
@@ -83,6 +83,7 @@ module Appsignal
|
|
83
83
|
"APPSIGNAL_FILTER_PARAMETERS" => :filter_parameters,
|
84
84
|
"APPSIGNAL_FILTER_SESSION_DATA" => :filter_session_data,
|
85
85
|
"APPSIGNAL_HOSTNAME" => :hostname,
|
86
|
+
"APPSIGNAL_HOST_ROLE" => :host_role,
|
86
87
|
"APPSIGNAL_HTTP_PROXY" => :http_proxy,
|
87
88
|
"APPSIGNAL_IGNORE_ACTIONS" => :ignore_actions,
|
88
89
|
"APPSIGNAL_IGNORE_ERRORS" => :ignore_errors,
|
@@ -115,6 +116,7 @@ module Appsignal
|
|
115
116
|
APPSIGNAL_BIND_ADDRESS
|
116
117
|
APPSIGNAL_CA_FILE_PATH
|
117
118
|
APPSIGNAL_HOSTNAME
|
119
|
+
APPSIGNAL_HOST_ROLE
|
118
120
|
APPSIGNAL_HTTP_PROXY
|
119
121
|
APPSIGNAL_LOG
|
120
122
|
APPSIGNAL_LOG_LEVEL
|
@@ -230,6 +232,7 @@ module Appsignal
|
|
230
232
|
# How to integrate AppSignal manually
|
231
233
|
def initialize(root_path, env, initial_config = {}, logger = Appsignal.logger,
|
232
234
|
config_file = nil)
|
235
|
+
@config_file_error = false
|
233
236
|
@root_path = root_path
|
234
237
|
@config_file = config_file
|
235
238
|
@logger = logger
|
@@ -337,6 +340,7 @@ module Appsignal
|
|
337
340
|
ENV["_APPSIGNAL_FILTER_PARAMETERS"] = config_hash[:filter_parameters].join(",")
|
338
341
|
ENV["_APPSIGNAL_FILTER_SESSION_DATA"] = config_hash[:filter_session_data].join(",")
|
339
342
|
ENV["_APPSIGNAL_HOSTNAME"] = config_hash[:hostname].to_s
|
343
|
+
ENV["_APPSIGNAL_HOST_ROLE"] = config_hash[:host_role].to_s
|
340
344
|
ENV["_APPSIGNAL_HTTP_PROXY"] = config_hash[:http_proxy]
|
341
345
|
ENV["_APPSIGNAL_IGNORE_ACTIONS"] = config_hash[:ignore_actions].join(",")
|
342
346
|
ENV["_APPSIGNAL_IGNORE_ERRORS"] = config_hash[:ignore_errors].join(",")
|
@@ -414,8 +418,20 @@ module Appsignal
|
|
414
418
|
nil
|
415
419
|
end
|
416
420
|
rescue => e
|
417
|
-
|
418
|
-
|
421
|
+
# TODO: Remove in the next major version
|
422
|
+
@config_file_error = true
|
423
|
+
extra_message =
|
424
|
+
if inactive_on_config_file_error?
|
425
|
+
"Not starting AppSignal because " \
|
426
|
+
"APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR is set."
|
427
|
+
else
|
428
|
+
"Skipping file config. In future versions AppSignal will not start " \
|
429
|
+
"on a config file error. To opt-in to this new behavior set " \
|
430
|
+
"'APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR=1' in your system " \
|
431
|
+
"environment."
|
432
|
+
end
|
433
|
+
message = "An error occured while loading the AppSignal config file. " \
|
434
|
+
"#{extra_message}\n" \
|
419
435
|
"File: #{config_file.inspect}\n" \
|
420
436
|
"#{e.class.name}: #{e}"
|
421
437
|
Kernel.warn "appsignal: #{message}"
|
@@ -482,6 +498,12 @@ module Appsignal
|
|
482
498
|
# stick around as a structure for future deprecations.
|
483
499
|
def determine_overrides
|
484
500
|
config = {}
|
501
|
+
# If an error was detected during config file reading/parsing and the new
|
502
|
+
# behavior is enabled to not start AppSignal on incomplete config, do not
|
503
|
+
# start AppSignal.
|
504
|
+
# TODO: Make default behavior in next major version. Remove
|
505
|
+
# `inactive_on_config_file_error?` call.
|
506
|
+
config[:active] = false if @config_file_error && inactive_on_config_file_error?
|
485
507
|
skip_session_data = config_hash[:skip_session_data]
|
486
508
|
send_session_data = config_hash[:send_session_data]
|
487
509
|
if skip_session_data.nil? # Deprecated option is not set
|
@@ -505,5 +527,11 @@ module Appsignal
|
|
505
527
|
config_hash[key] = value
|
506
528
|
end
|
507
529
|
end
|
530
|
+
|
531
|
+
# Does it use the new behavior?
|
532
|
+
def inactive_on_config_file_error?
|
533
|
+
value = ENV.fetch("APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR", false)
|
534
|
+
["1", "true"].include?(value)
|
535
|
+
end
|
508
536
|
end
|
509
537
|
end
|
@@ -320,7 +320,14 @@ module Appsignal
|
|
320
320
|
end
|
321
321
|
|
322
322
|
def set_sample_data(key, data)
|
323
|
-
return unless key && data
|
323
|
+
return unless key && data
|
324
|
+
|
325
|
+
if !data.is_a?(Array) && !data.is_a?(Hash)
|
326
|
+
Appsignal.logger.error(
|
327
|
+
"Invalid sample data for '#{key}'. Value is not an Array or Hash: '#{data.inspect}'"
|
328
|
+
)
|
329
|
+
return
|
330
|
+
end
|
324
331
|
|
325
332
|
@ext.set_sample_data(
|
326
333
|
key.to_s,
|
@@ -539,7 +546,7 @@ module Appsignal
|
|
539
546
|
|
540
547
|
metadata
|
541
548
|
.transform_keys(&:to_s)
|
542
|
-
.
|
549
|
+
.reject { |key, _value| Appsignal.config[:filter_metadata].include?(key) }
|
543
550
|
end
|
544
551
|
|
545
552
|
# Returns the environment for a transaction.
|
data/lib/appsignal/version.rb
CHANGED
@@ -294,19 +294,48 @@ describe Appsignal::Config do
|
|
294
294
|
end
|
295
295
|
let(:config) { Appsignal::Config.new(config_path, "foo") }
|
296
296
|
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
"
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
297
|
+
context "when APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR is not set" do
|
298
|
+
it "logs & prints an error, skipping the file source" do
|
299
|
+
stdout = std_stream
|
300
|
+
stderr = std_stream
|
301
|
+
log = capture_logs { capture_std_streams(stdout, stderr) { config } }
|
302
|
+
message = "An error occured while loading the AppSignal config file. " \
|
303
|
+
"Skipping file config. " \
|
304
|
+
"In future versions AppSignal will not start on a config file " \
|
305
|
+
"error. To opt-in to this new behavior set " \
|
306
|
+
"'APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR=1' in your system " \
|
307
|
+
"environment.\n" \
|
308
|
+
"File: #{File.join(config_path, "config", "appsignal.yml").inspect}\n" \
|
309
|
+
"KeyError: key not found"
|
310
|
+
expect(log).to contains_log :error, message
|
311
|
+
expect(log).to include("/appsignal/config.rb:") # Backtrace
|
312
|
+
expect(stdout.read).to_not include("appsignal:")
|
313
|
+
expect(stderr.read).to include "appsignal: #{message}"
|
314
|
+
expect(config.file_config).to eql({})
|
315
|
+
end
|
316
|
+
end
|
317
|
+
|
318
|
+
context "when APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR=1 is set" do
|
319
|
+
it "does not start AppSignal, logs & prints an error" do
|
320
|
+
stdout = std_stream
|
321
|
+
stderr = std_stream
|
322
|
+
ENV["APPSIGNAL_ACTIVE"] = "true"
|
323
|
+
ENV["APPSIGNAL_APP_NAME"] = "My app"
|
324
|
+
ENV["APPSIGNAL_APP_ENV"] = "dev"
|
325
|
+
ENV["APPSIGNAL_PUSH_API_KEY"] = "something valid"
|
326
|
+
ENV["APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR"] = "1"
|
327
|
+
log = capture_logs { capture_std_streams(stdout, stderr) { config } }
|
328
|
+
message = "An error occured while loading the AppSignal config file. " \
|
329
|
+
"Not starting AppSignal because APPSIGNAL_INACTIVE_ON_CONFIG_FILE_ERROR is set.\n" \
|
330
|
+
"File: #{File.join(config_path, "config", "appsignal.yml").inspect}\n" \
|
331
|
+
"KeyError: key not found"
|
332
|
+
expect(log).to contains_log :error, message
|
333
|
+
expect(log).to include("/appsignal/config.rb:") # Backtrace
|
334
|
+
expect(stdout.read).to_not include("appsignal:")
|
335
|
+
expect(stderr.read).to include "appsignal: #{message}"
|
336
|
+
expect(config.file_config).to eql({})
|
337
|
+
expect(config.active?).to be(false)
|
338
|
+
end
|
310
339
|
end
|
311
340
|
end
|
312
341
|
|
@@ -641,6 +670,7 @@ describe Appsignal::Config do
|
|
641
670
|
expect(ENV.fetch("_APPSIGNAL_RUNNING_IN_CONTAINER", nil)).to eq "false"
|
642
671
|
expect(ENV.fetch("_APPSIGNAL_ENABLE_HOST_METRICS", nil)).to eq "true"
|
643
672
|
expect(ENV.fetch("_APPSIGNAL_HOSTNAME", nil)).to eq ""
|
673
|
+
expect(ENV.fetch("_APPSIGNAL_HOST_ROLE", nil)).to eq ""
|
644
674
|
expect(ENV.fetch("_APPSIGNAL_PROCESS_NAME", nil)).to include "rspec"
|
645
675
|
expect(ENV.fetch("_APPSIGNAL_CA_FILE_PATH", nil))
|
646
676
|
.to eq File.join(resources_dir, "cacert.pem")
|
@@ -667,6 +697,17 @@ describe Appsignal::Config do
|
|
667
697
|
end
|
668
698
|
end
|
669
699
|
|
700
|
+
context "with :host_role" do
|
701
|
+
before do
|
702
|
+
config[:host_role] = "host role"
|
703
|
+
config.write_to_environment
|
704
|
+
end
|
705
|
+
|
706
|
+
it "sets the modified :host_role" do
|
707
|
+
expect(ENV.fetch("_APPSIGNAL_HOST_ROLE", nil)).to eq "host role"
|
708
|
+
end
|
709
|
+
end
|
710
|
+
|
670
711
|
context "with :working_dir_path" do
|
671
712
|
before do
|
672
713
|
config[:working_dir_path] = "/tmp/appsignal2"
|
@@ -355,7 +355,7 @@ describe Appsignal::Transaction do
|
|
355
355
|
end
|
356
356
|
|
357
357
|
describe "#set_tags" do
|
358
|
-
let(:long_string) { "a" *
|
358
|
+
let(:long_string) { "a" * 10_001 }
|
359
359
|
before do
|
360
360
|
transaction.set_tags(
|
361
361
|
:valid_key => "valid_value",
|
@@ -377,7 +377,7 @@ describe Appsignal::Transaction do
|
|
377
377
|
"valid_string_key" => "valid_value",
|
378
378
|
"both_symbols" => "valid_value",
|
379
379
|
"integer_value" => 1,
|
380
|
-
"too_long_value" => "#{"a" *
|
380
|
+
"too_long_value" => "#{"a" * 10_000}...",
|
381
381
|
long_string => "too_long_key"
|
382
382
|
)
|
383
383
|
end
|
@@ -688,6 +688,8 @@ describe Appsignal::Transaction do
|
|
688
688
|
transaction.set_sample_data("params", "string")
|
689
689
|
|
690
690
|
expect(transaction.to_h["sample_data"]).to eq({})
|
691
|
+
expect(log_contents(log)).to contains_log :error,
|
692
|
+
%(Invalid sample data for 'params'. Value is not an Array or Hash: '"string"')
|
691
693
|
end
|
692
694
|
end
|
693
695
|
|
data/spec/spec_helper.rb
CHANGED
@@ -12,25 +12,25 @@ require "rspec"
|
|
12
12
|
require "timecop"
|
13
13
|
require "webmock/rspec"
|
14
14
|
|
15
|
-
Dir[File.join(APPSIGNAL_SPEC_DIR, "support", "helpers", "*.rb")].each do |f|
|
15
|
+
Dir[File.join(APPSIGNAL_SPEC_DIR, "support", "helpers", "*.rb")].sort.each do |f|
|
16
16
|
require f
|
17
17
|
end
|
18
|
-
Dir[File.join(DirectoryHelper.support_dir, "mocks", "*.rb")].each do |f|
|
18
|
+
Dir[File.join(DirectoryHelper.support_dir, "mocks", "*.rb")].sort.each do |f|
|
19
19
|
require f
|
20
20
|
end
|
21
|
-
Dir[File.join(DirectoryHelper.support_dir, "matchers", "*.rb")].each do |f|
|
21
|
+
Dir[File.join(DirectoryHelper.support_dir, "matchers", "*.rb")].sort.each do |f|
|
22
22
|
require f
|
23
23
|
end
|
24
|
-
Dir[File.join(APPSIGNAL_SPEC_DIR, "support/shared_examples", "*.rb")].each do |f|
|
24
|
+
Dir[File.join(APPSIGNAL_SPEC_DIR, "support/shared_examples", "*.rb")].sort.each do |f|
|
25
25
|
require f
|
26
26
|
end
|
27
27
|
if DependencyHelper.rails_present?
|
28
|
-
Dir[File.join(DirectoryHelper.support_dir, "rails", "*.rb")].each do |f|
|
28
|
+
Dir[File.join(DirectoryHelper.support_dir, "rails", "*.rb")].sort.each do |f|
|
29
29
|
require f
|
30
30
|
end
|
31
31
|
end
|
32
32
|
if DependencyHelper.hanami2_present?
|
33
|
-
Dir[File.join(DirectoryHelper.support_dir, "hanami", "*.rb")].each do |f|
|
33
|
+
Dir[File.join(DirectoryHelper.support_dir, "hanami", "*.rb")].sort.each do |f|
|
34
34
|
require f
|
35
35
|
end
|
36
36
|
end
|
@@ -12,7 +12,7 @@ RSpec::Matchers.define :have_colorized_text do |color, text|
|
|
12
12
|
attr_reader :expected
|
13
13
|
end
|
14
14
|
|
15
|
-
COLOR_TAG_MATCHER_REGEX = /\e\[(\d+)m
|
15
|
+
COLOR_TAG_MATCHER_REGEX = /\e\[(\d+)m/.freeze
|
16
16
|
RSpec::Matchers.define :have_color_markers do
|
17
17
|
match do |actual|
|
18
18
|
actual =~ COLOR_TAG_MATCHER_REGEX
|
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.4.
|
4
|
+
version: 3.4.12
|
5
5
|
platform: ruby
|
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: 2023-
|
13
|
+
date: 2023-08-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rack
|
@@ -431,7 +431,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
431
431
|
requirements:
|
432
432
|
- - ">="
|
433
433
|
- !ruby/object:Gem::Version
|
434
|
-
version: '
|
434
|
+
version: '2.7'
|
435
435
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
436
436
|
requirements:
|
437
437
|
- - ">="
|