appsignal 4.5.17 → 4.6.0

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 (104) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/CLAUDE.md +177 -0
  4. data/README.md +17 -0
  5. data/appsignal.gemspec +1 -0
  6. data/build_matrix.yml +29 -0
  7. data/lib/appsignal/auth_check.rb +3 -3
  8. data/lib/appsignal/check_in/cron.rb +1 -1
  9. data/lib/appsignal/check_in/event.rb +1 -1
  10. data/lib/appsignal/check_in/scheduler.rb +3 -1
  11. data/lib/appsignal/check_in.rb +9 -6
  12. data/lib/appsignal/cli/diagnose.rb +1 -1
  13. data/lib/appsignal/cli.rb +1 -1
  14. data/lib/appsignal/config.rb +231 -30
  15. data/lib/appsignal/custom_marker.rb +3 -3
  16. data/lib/appsignal/environment.rb +7 -1
  17. data/lib/appsignal/event_formatter/action_view/render_formatter.rb +1 -1
  18. data/lib/appsignal/event_formatter/active_record/instantiation_formatter.rb +1 -1
  19. data/lib/appsignal/event_formatter/active_record/sql_formatter.rb +1 -1
  20. data/lib/appsignal/event_formatter/elastic_search/search_formatter.rb +1 -1
  21. data/lib/appsignal/event_formatter/faraday/request_formatter.rb +1 -1
  22. data/lib/appsignal/event_formatter/mongo_ruby_driver/query_formatter.rb +1 -1
  23. data/lib/appsignal/event_formatter/rom/sql_formatter.rb +1 -1
  24. data/lib/appsignal/event_formatter/sequel/sql_formatter.rb +1 -1
  25. data/lib/appsignal/event_formatter/view_component/render_formatter.rb +1 -1
  26. data/lib/appsignal/event_formatter.rb +41 -3
  27. data/lib/appsignal/extension.rb +1 -1
  28. data/lib/appsignal/garbage_collection.rb +1 -1
  29. data/lib/appsignal/helpers/instrumentation.rb +82 -35
  30. data/lib/appsignal/helpers/metrics.rb +12 -9
  31. data/lib/appsignal/hooks/action_cable.rb +1 -1
  32. data/lib/appsignal/hooks/action_mailer.rb +1 -0
  33. data/lib/appsignal/hooks/active_job.rb +1 -1
  34. data/lib/appsignal/hooks/active_support_notifications.rb +1 -1
  35. data/lib/appsignal/hooks/at_exit.rb +1 -1
  36. data/lib/appsignal/hooks/celluloid.rb +1 -1
  37. data/lib/appsignal/hooks/data_mapper.rb +1 -1
  38. data/lib/appsignal/hooks/delayed_job.rb +1 -1
  39. data/lib/appsignal/hooks/dry_monitor.rb +1 -1
  40. data/lib/appsignal/hooks/excon.rb +1 -1
  41. data/lib/appsignal/hooks/gvl.rb +1 -1
  42. data/lib/appsignal/hooks/http.rb +1 -1
  43. data/lib/appsignal/hooks/mongo_ruby_driver.rb +1 -1
  44. data/lib/appsignal/hooks/mri.rb +1 -1
  45. data/lib/appsignal/hooks/net_http.rb +1 -1
  46. data/lib/appsignal/hooks/ownership.rb +1 -1
  47. data/lib/appsignal/hooks/passenger.rb +1 -1
  48. data/lib/appsignal/hooks/puma.rb +1 -1
  49. data/lib/appsignal/hooks/que.rb +1 -1
  50. data/lib/appsignal/hooks/rake.rb +1 -1
  51. data/lib/appsignal/hooks/redis.rb +1 -1
  52. data/lib/appsignal/hooks/redis_client.rb +1 -1
  53. data/lib/appsignal/hooks/resque.rb +1 -1
  54. data/lib/appsignal/hooks/sequel.rb +2 -1
  55. data/lib/appsignal/hooks/shoryuken.rb +1 -1
  56. data/lib/appsignal/hooks/sidekiq.rb +1 -0
  57. data/lib/appsignal/hooks/unicorn.rb +1 -1
  58. data/lib/appsignal/hooks/webmachine.rb +1 -1
  59. data/lib/appsignal/hooks.rb +5 -3
  60. data/lib/appsignal/integrations/action_cable.rb +1 -1
  61. data/lib/appsignal/integrations/active_support_notifications.rb +1 -1
  62. data/lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb +1 -1
  63. data/lib/appsignal/integrations/data_mapper.rb +1 -1
  64. data/lib/appsignal/integrations/delayed_job_plugin.rb +1 -1
  65. data/lib/appsignal/integrations/dry_monitor.rb +1 -1
  66. data/lib/appsignal/integrations/excon.rb +1 -1
  67. data/lib/appsignal/integrations/http.rb +1 -1
  68. data/lib/appsignal/integrations/mongo_ruby_driver.rb +1 -1
  69. data/lib/appsignal/integrations/net_http.rb +1 -1
  70. data/lib/appsignal/integrations/object.rb +18 -2
  71. data/lib/appsignal/integrations/ownership.rb +1 -1
  72. data/lib/appsignal/integrations/puma.rb +1 -1
  73. data/lib/appsignal/integrations/que.rb +1 -1
  74. data/lib/appsignal/integrations/railtie.rb +2 -2
  75. data/lib/appsignal/integrations/rake.rb +2 -2
  76. data/lib/appsignal/integrations/redis.rb +1 -1
  77. data/lib/appsignal/integrations/redis_client.rb +1 -1
  78. data/lib/appsignal/integrations/resque.rb +2 -2
  79. data/lib/appsignal/integrations/shoryuken.rb +1 -1
  80. data/lib/appsignal/integrations/sidekiq.rb +3 -3
  81. data/lib/appsignal/integrations/unicorn.rb +1 -1
  82. data/lib/appsignal/integrations/webmachine.rb +1 -1
  83. data/lib/appsignal/internal_errors.rb +2 -2
  84. data/lib/appsignal/loaders.rb +1 -1
  85. data/lib/appsignal/logger.rb +36 -19
  86. data/lib/appsignal/marker.rb +1 -1
  87. data/lib/appsignal/probes/gvl.rb +4 -3
  88. data/lib/appsignal/probes/helpers.rb +1 -1
  89. data/lib/appsignal/probes/mri.rb +3 -3
  90. data/lib/appsignal/probes/sidekiq.rb +4 -3
  91. data/lib/appsignal/probes.rb +20 -15
  92. data/lib/appsignal/rack.rb +1 -1
  93. data/lib/appsignal/sample_data.rb +31 -12
  94. data/lib/appsignal/span.rb +1 -1
  95. data/lib/appsignal/system.rb +9 -8
  96. data/lib/appsignal/transaction.rb +72 -52
  97. data/lib/appsignal/transmitter.rb +1 -1
  98. data/lib/appsignal/utils.rb +1 -1
  99. data/lib/appsignal/version.rb +2 -1
  100. data/lib/appsignal.rb +22 -14
  101. data/lib/puma/plugin/appsignal.rb +1 -1
  102. data/sig/appsignal.rbi +2599 -0
  103. data/sig/appsignal.rbs +2420 -0
  104. metadata +20 -6
@@ -4,20 +4,23 @@ require "json"
4
4
 
5
5
  module Appsignal
6
6
  class Transaction
7
+ # @return [String]
7
8
  HTTP_REQUEST = "http_request"
9
+ # @return [String]
8
10
  BACKGROUND_JOB = "background_job"
9
- # @api private
11
+ # @!visibility private
10
12
  ACTION_CABLE = "action_cable"
11
- # @api private
13
+ # @!visibility private
12
14
  BLANK = ""
13
- # @api private
15
+ # @!visibility private
14
16
  ALLOWED_TAG_KEY_TYPES = [Symbol, String].freeze
15
- # @api private
17
+ # @!visibility private
16
18
  ALLOWED_TAG_VALUE_TYPES = [Symbol, String, Integer, TrueClass, FalseClass].freeze
17
- # @api private
19
+ # @!visibility private
18
20
  BREADCRUMB_LIMIT = 20
19
- # @api private
21
+ # @!visibility private
20
22
  ERROR_CAUSES_LIMIT = 10
23
+ # @!visibility private
21
24
  ERRORS_LIMIT = 10
22
25
 
23
26
  class << self
@@ -49,12 +52,13 @@ module Appsignal
49
52
  end
50
53
  end
51
54
 
52
- # @api private
53
- # @return [Array<Proc>]
54
55
  # Add a block, if given, to be executed after a transaction is created.
55
56
  # The block will be called with the transaction as an argument.
56
57
  # Returns the array of blocks that will be executed after a transaction
57
58
  # is created.
59
+ #
60
+ # @return [Array<Proc>]
61
+ # @!visibility private
58
62
  def after_create(&block)
59
63
  @after_create ||= Set.new
60
64
 
@@ -63,8 +67,6 @@ module Appsignal
63
67
  @after_create << block
64
68
  end
65
69
 
66
- # @api private
67
- # @return [Array<Proc>]
68
70
  # Add a block, if given, to be executed before a transaction is completed.
69
71
  # This happens after duplicating the transaction for each error that was
70
72
  # reported in the transaction -- that is, when a transaction with
@@ -75,6 +77,9 @@ module Appsignal
75
77
  # and the error reported by the transaction, if any, as the second argument.
76
78
  # Returns the array of blocks that will be executed before a transaction is
77
79
  # completed.
80
+ #
81
+ # @return [Array<Proc>]
82
+ # @!visibility private
78
83
  def before_complete(&block)
79
84
  @before_complete ||= Set.new
80
85
 
@@ -83,7 +88,7 @@ module Appsignal
83
88
  @before_complete << block
84
89
  end
85
90
 
86
- # @api private
91
+ # @!visibility private
87
92
  def set_current_transaction(transaction)
88
93
  Thread.current[:appsignal_transaction] = transaction
89
94
  end
@@ -91,7 +96,7 @@ module Appsignal
91
96
  # Set the current for the duration of the given block.
92
97
  # It restores the original transaction (if any) when the block has executed.
93
98
  #
94
- # @api private
99
+ # @!visibility private
95
100
  def with_transaction(transaction)
96
101
  original_transaction = current if current?
97
102
  set_current_transaction(transaction)
@@ -104,7 +109,7 @@ module Appsignal
104
109
  # active.
105
110
  #
106
111
  # @see .current?
107
- # @return [Boolean]
112
+ # @return [Appsignal::Transaction, Appsignal::Transaction::NilTransaction]
108
113
  def current
109
114
  Thread.current[:appsignal_transaction] || NilTransaction.new
110
115
  end
@@ -120,6 +125,8 @@ module Appsignal
120
125
 
121
126
  # Complete the currently active transaction and unset it as the active
122
127
  # transaction.
128
+ #
129
+ # @return [void]
123
130
  def complete_current!
124
131
  current.complete
125
132
  rescue => e
@@ -131,28 +138,28 @@ module Appsignal
131
138
  end
132
139
 
133
140
  # Remove current transaction from current Thread.
134
- # @api private
141
+ # @!visibility private
135
142
  def clear_current_transaction!
136
143
  Thread.current[:appsignal_transaction] = nil
137
144
  end
138
145
 
139
- # @api private
146
+ # @!visibility private
140
147
  def last_errors
141
148
  @last_errors ||= []
142
149
  end
143
150
 
144
- # @api private
151
+ # @!visibility private
145
152
  attr_writer :last_errors
146
153
  end
147
154
 
148
- # @api private
155
+ # @!visibility private
149
156
  attr_reader :transaction_id, :action, :namespace
150
157
 
151
158
  # Use {.create} to create new transactions.
152
159
  #
153
160
  # @param namespace [String] Namespace of the to be created transaction.
154
161
  # @see create
155
- # @api private
162
+ # @!visibility private
156
163
  def initialize(namespace, id: SecureRandom.uuid, ext: nil)
157
164
  @transaction_id = id
158
165
  @action = nil
@@ -181,22 +188,22 @@ module Appsignal
181
188
  run_after_create_hooks
182
189
  end
183
190
 
184
- # @api private
191
+ # @!visibility private
185
192
  def duplicate?
186
193
  @is_duplicate
187
194
  end
188
195
 
189
- # @api private
196
+ # @!visibility private
190
197
  def nil_transaction?
191
198
  false
192
199
  end
193
200
 
194
- # @api private
201
+ # @!visibility private
195
202
  def completed?
196
203
  @completed
197
204
  end
198
205
 
199
- # @api private
206
+ # @!visibility private
200
207
  def complete
201
208
  if discarded?
202
209
  Appsignal.internal_logger.debug "Skipping transaction '#{transaction_id}' " \
@@ -248,37 +255,37 @@ module Appsignal
248
255
  @ext.complete
249
256
  end
250
257
 
251
- # @api private
258
+ # @!visibility private
252
259
  def pause!
253
260
  @paused = true
254
261
  end
255
262
 
256
- # @api private
263
+ # @!visibility private
257
264
  def resume!
258
265
  @paused = false
259
266
  end
260
267
 
261
- # @api private
268
+ # @!visibility private
262
269
  def paused?
263
270
  @paused == true
264
271
  end
265
272
 
266
- # @api private
273
+ # @!visibility private
267
274
  def discard!
268
275
  @discarded = true
269
276
  end
270
277
 
271
- # @api private
278
+ # @!visibility private
272
279
  def restore!
273
280
  @discarded = false
274
281
  end
275
282
 
276
- # @api private
283
+ # @!visibility private
277
284
  def discarded?
278
285
  @discarded == true
279
286
  end
280
287
 
281
- # @api private
288
+ # @!visibility private
282
289
  def store(key)
283
290
  @store[key]
284
291
  end
@@ -291,9 +298,11 @@ module Appsignal
291
298
  # block is leading and the argument will _not_ be used.
292
299
  #
293
300
  # @since 4.0.0
294
- # @param given_params [Hash] The parameters to set on the transaction.
301
+ # @param given_params [Hash<String, Object>, Array<Object>] The parameters to set on the
302
+ # transaction.
295
303
  # @yield This block is called when the transaction is sampled. The block's
296
304
  # return value will become the new parameters.
305
+ # @yieldreturn [Hash<String, Object>, Array<Object>]
297
306
  # @return [void]
298
307
  #
299
308
  # @see Helpers::Instrumentation#add_params
@@ -304,9 +313,9 @@ module Appsignal
304
313
  end
305
314
  alias :set_params :add_params
306
315
 
307
- # @api private
308
316
  # @since 4.0.0
309
317
  # @return [void]
318
+ # @!visibility private
310
319
  #
311
320
  # @see Helpers::Instrumentation#set_empty_params!
312
321
  def set_empty_params!
@@ -315,12 +324,14 @@ module Appsignal
315
324
 
316
325
  # Add parameters to the transaction if not already set.
317
326
  #
318
- # @api private
319
327
  # @since 4.0.0
320
- # @param given_params [Hash] The parameters to set on the transaction if none are already set.
328
+ # @param given_params [Hash<String, Object>, Array<Object>] The parameters to set on the
329
+ # transaction if none are already set.
321
330
  # @yield This block is called when the transaction is sampled. The block's
322
331
  # return value will become the new parameters.
332
+ # @yieldreturn [Hash<String, Object>, Array<Object>]
323
333
  # @return [void]
334
+ # @!visibility private
324
335
  #
325
336
  # @see #add_params
326
337
  def add_params_if_nil(given_params = nil, &block)
@@ -333,7 +344,7 @@ module Appsignal
333
344
  # When this method is called multiple times, it will merge the tags.
334
345
  #
335
346
  # @since 4.0.0
336
- # @param given_tags [Hash] Collection of tags.
347
+ # @param given_tags [Hash<String, Object>] Collection of tags.
337
348
  # @option given_tags [String, Symbol, Integer] :any
338
349
  # The name of the tag as a Symbol.
339
350
  # @option given_tags [String, Symbol, Integer] "any"
@@ -356,9 +367,10 @@ module Appsignal
356
367
  # the block is leading and the argument will _not_ be used.
357
368
  #
358
369
  # @since 4.0.0
359
- # @param given_session_data [Hash] A hash containing session data.
370
+ # @param given_session_data [Hash<String, Object>] A hash containing session data.
360
371
  # @yield This block is called when the transaction is sampled. The block's
361
372
  # return value will become the new session data.
373
+ # @yieldreturn [Hash<String, Object>]
362
374
  # @return [void]
363
375
  #
364
376
  # @see Helpers::Instrumentation#add_session_data
@@ -375,12 +387,13 @@ module Appsignal
375
387
  # the `given_session_data` argument is leading and the block will _not_ be
376
388
  # called.
377
389
  #
378
- # @api private
379
390
  # @since 4.0.0
380
- # @param given_session_data [Hash] A hash containing session data.
391
+ # @param given_session_data [Hash<String, Object>] A hash containing session data.
381
392
  # @yield This block is called when the transaction is sampled. The block's
382
393
  # return value will become the new session data.
394
+ # @yieldreturn [Hash<String, Object>]
383
395
  # @return [void]
396
+ # @!visibility private
384
397
  #
385
398
  # @see #add_session_data
386
399
  # @see https://docs.appsignal.com/guides/custom-data/sample-data.html
@@ -393,9 +406,10 @@ module Appsignal
393
406
  # Add headers to the transaction.
394
407
  #
395
408
  # @since 4.0.0
396
- # @param given_headers [Hash] A hash containing headers.
409
+ # @param given_headers [Hash<String, Object>] A hash containing headers.
397
410
  # @yield This block is called when the transaction is sampled. The block's
398
411
  # return value will become the new headers.
412
+ # @yieldreturn [Hash<String, Object>]
399
413
  # @return [void]
400
414
  #
401
415
  # @see Helpers::Instrumentation#add_headers
@@ -411,12 +425,13 @@ module Appsignal
411
425
  # When both the `given_headers` and a block is given to this method,
412
426
  # the block is leading and the argument will _not_ be used.
413
427
  #
414
- # @api private
415
428
  # @since 4.0.0
416
- # @param given_headers [Hash] A hash containing headers.
429
+ # @param given_headers [Hash<String, Object>] A hash containing headers.
417
430
  # @yield This block is called when the transaction is sampled. The block's
418
431
  # return value will become the new headers.
432
+ # @yieldreturn [Hash<String, Object>]
419
433
  # @return [void]
434
+ # @!visibility private
420
435
  #
421
436
  # @see #add_headers
422
437
  # @see https://docs.appsignal.com/guides/custom-data/sample-data.html
@@ -429,7 +444,8 @@ module Appsignal
429
444
  # Add custom data to the transaction.
430
445
  #
431
446
  # @since 4.0.0
432
- # @param data [Hash/Array]
447
+ # @param data [Hash<Object, Object>, Array<Object>] Custom data to add to
448
+ # the transaction.
433
449
  # @return [void]
434
450
  #
435
451
  # @see Helpers::Instrumentation#add_custom_data
@@ -446,9 +462,9 @@ module Appsignal
446
462
  # e.g. "UI", "Network", "Navigation", "Console".
447
463
  # @param action [String] name of breadcrumb
448
464
  # e.g "The user clicked a button", "HTTP 500 from http://blablabla.com"
449
- # @option message [String] optional message in string format
450
- # @option metadata [Hash<String,String>] key/value metadata in <string, string> format
451
- # @option time [Time] time of breadcrumb, should respond to `.to_i` defaults to `Time.now.utc`
465
+ # @param message [String] optional message in string format
466
+ # @param metadata [Hash<String,String>] key/value metadata in <string, string> format
467
+ # @param time [Time] time of breadcrumb, should respond to `.to_i` defaults to `Time.now.utc`
452
468
  # @return [void]
453
469
  #
454
470
  # @see Appsignal.add_breadcrumb
@@ -498,10 +514,10 @@ module Appsignal
498
514
  # Appsignal.set_action_if_nil("bar")
499
515
  # # Transaction action will be "foo"
500
516
  #
501
- # @api private
502
517
  # @since 2.2.0
503
518
  # @param action [String]
504
519
  # @return [void]
520
+ # @!visibility private
505
521
  #
506
522
  # @see #set_action
507
523
  def set_action_if_nil(action)
@@ -552,7 +568,7 @@ module Appsignal
552
568
  Appsignal.internal_logger.warn("Queue start value #{start} is too big")
553
569
  end
554
570
 
555
- # @api private
571
+ # @!visibility private
556
572
  def set_metadata(key, value)
557
573
  return unless key && value
558
574
  return if Appsignal.config[:filter_metadata].include?(key.to_s)
@@ -560,7 +576,7 @@ module Appsignal
560
576
  @ext.set_metadata(key, value)
561
577
  end
562
578
 
563
- # @api private
579
+ # @!visibility private
564
580
  # @see Appsignal::Helpers::Instrumentation#report_error
565
581
  def add_error(error, &block)
566
582
  unless error.is_a?(Exception)
@@ -588,7 +604,7 @@ module Appsignal
588
604
  alias :set_error :add_error
589
605
  alias_method :add_exception, :add_error
590
606
 
591
- # @api private
607
+ # @!visibility private
592
608
  # @see Helpers::Instrumentation#instrument
593
609
  def start_event
594
610
  return if paused?
@@ -596,7 +612,7 @@ module Appsignal
596
612
  @ext.start_event(0)
597
613
  end
598
614
 
599
- # @api private
615
+ # @!visibility private
600
616
  # @see Helpers::Instrumentation#instrument
601
617
  def finish_event(name, title, body, body_format = Appsignal::EventFormatter::DEFAULT)
602
618
  return if paused?
@@ -610,7 +626,7 @@ module Appsignal
610
626
  )
611
627
  end
612
628
 
613
- # @api private
629
+ # @!visibility private
614
630
  # @see Helpers::Instrumentation#instrument
615
631
  def record_event(name, title, body, duration, body_format = Appsignal::EventFormatter::DEFAULT)
616
632
  return if paused?
@@ -625,7 +641,7 @@ module Appsignal
625
641
  )
626
642
  end
627
643
 
628
- # @api private
644
+ # @!visibility private
629
645
  # @see Helpers::Instrumentation#instrument
630
646
  def instrument(name, title = nil, body = nil, body_format = Appsignal::EventFormatter::DEFAULT)
631
647
  start_event
@@ -634,7 +650,7 @@ module Appsignal
634
650
  finish_event(name, title, body, body_format)
635
651
  end
636
652
 
637
- # @api private
653
+ # @!visibility private
638
654
  def to_h
639
655
  JSON.parse(@ext.to_json)
640
656
  end
@@ -642,9 +658,11 @@ module Appsignal
642
658
 
643
659
  protected
644
660
 
661
+ # @!visibility private
645
662
  attr_writer :is_duplicate, :tags, :custom_data, :breadcrumbs, :params,
646
663
  :session_data, :headers
647
664
 
665
+ # @!visibility private
648
666
  def internal_set_error(error, &block)
649
667
  _set_error(error) if @error_blocks.empty?
650
668
 
@@ -914,6 +932,8 @@ module Appsignal
914
932
  # Stub that is returned by {Transaction.current} if there is no current
915
933
  # transaction, so that it's still safe to call methods on it if there is no
916
934
  # current transaction.
935
+ #
936
+ # @!visibility private
917
937
  class NilTransaction
918
938
  def method_missing(_method, *args, &block)
919
939
  end
@@ -7,7 +7,7 @@ require "rack/utils"
7
7
  require "json"
8
8
 
9
9
  module Appsignal
10
- # @api private
10
+ # @!visibility private
11
11
  class Transmitter
12
12
  JSON_CONTENT_TYPE = "application/json; charset=UTF-8"
13
13
  NDJSON_CONTENT_TYPE = "application/x-ndjson; charset=UTF-8"
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Appsignal
4
- # @api private
4
+ # @!visibility private
5
5
  module Utils
6
6
  end
7
7
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Appsignal
4
- VERSION = "4.5.17"
4
+ # @return [String]
5
+ VERSION = "4.6.0"
5
6
  end
data/lib/appsignal.rb CHANGED
@@ -39,7 +39,7 @@ module Appsignal
39
39
  # Can be `nil` if extension has not been loaded yet. See
40
40
  # {.extension_loaded?} for a boolean return value.
41
41
  #
42
- # @api private
42
+ # @!visibility private
43
43
  # @return [Boolean, nil]
44
44
  # @see Extension
45
45
  # @see extension_loaded?
@@ -57,7 +57,7 @@ module Appsignal
57
57
  # {.start}) the contents of the "in memory logger" is written to the new
58
58
  # logger.
59
59
  #
60
- # @api private
60
+ # @!visibility private
61
61
  # @return [Utils::IntegrationLogger or Utils::IntegrationMemoryLogger]
62
62
  # @see start
63
63
  attr_writer :internal_logger
@@ -71,11 +71,11 @@ module Appsignal
71
71
  # If the value is `nil`, no error was encountered or AppSignal wasn't
72
72
  # started yet.
73
73
  #
74
- # @return [NilClass/Exception]
74
+ # @return [nil, Exception]
75
75
  attr_reader :config_error
76
76
  alias config_error? config_error
77
77
 
78
- # @api private
78
+ # @!visibility private
79
79
  def testing?
80
80
  false
81
81
  end
@@ -163,9 +163,12 @@ module Appsignal
163
163
 
164
164
  # PRIVATE METHOD. DO NOT USE.
165
165
  #
166
- # @param env_param [String, NilClass] Used by diagnose CLI to pass through
167
- # the environment CLI option value.
168
- # @api private
166
+ # @param env_param [String, nil] Used by diagnose CLI to pass through
167
+ # the environment CLI option value. If nil, the environment will be
168
+ # auto-detected.
169
+ # @param block [Proc] Optional block to configure the config object.
170
+ # @return [void]
171
+ # @!visibility private
169
172
  def _load_config!(env_param = nil, &block) # rubocop:disable Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity
170
173
  # Ensure it's not an empty string if it's a value
171
174
  proper_env_param = env_param&.to_s&.strip
@@ -305,7 +308,8 @@ module Appsignal
305
308
  # @param env_param [String, Symbol] The environment to load.
306
309
  # @param root_path [String] The path to look the `config/appsignal.yml` config file in.
307
310
  # Defaults to the current working directory.
308
- # @yield [Config] Gives the {Config} instance to the block.
311
+ # @yield [config_dsl] Gives the configuration DSL instance to the block.
312
+ # @yieldparam config_dsl [Appsignal::Config::ConfigDSL] The configuration DSL object
309
313
  # @return [void]
310
314
  # @see config
311
315
  # @see Config
@@ -397,12 +401,12 @@ module Appsignal
397
401
  nil
398
402
  end
399
403
 
400
- # @api private
404
+ # @!visibility private
401
405
  def get_server_state(key)
402
406
  Appsignal::Extension.get_server_state(key)
403
407
  end
404
408
 
405
- # @api private
409
+ # @!visibility private
406
410
  def in_memory_logger
407
411
  @in_memory_logger ||=
408
412
  Appsignal::Utils::IntegrationMemoryLogger.new.tap do |l|
@@ -410,12 +414,12 @@ module Appsignal
410
414
  end
411
415
  end
412
416
 
413
- # @api private
417
+ # @!visibility private
414
418
  def internal_logger
415
419
  @internal_logger ||= in_memory_logger
416
420
  end
417
421
 
418
- # @api private
422
+ # @!visibility private
419
423
  def log_formatter(prefix = nil)
420
424
  pre = "#{prefix}: " if prefix
421
425
  proc do |severity, datetime, _progname, msg|
@@ -429,7 +433,7 @@ module Appsignal
429
433
  # Sets the log level and sets the logger. Uses a file-based logger or the
430
434
  # STDOUT-based logger. See the `:log` configuration option.
431
435
  #
432
- # @api private
436
+ # @!visibility private
433
437
  # @return [void]
434
438
  def _start_logger
435
439
  if config && config[:log] == "file" && config.log_file_path
@@ -499,7 +503,7 @@ module Appsignal
499
503
  config&.active? && extension_loaded?
500
504
  end
501
505
 
502
- # @api private
506
+ # @!visibility private
503
507
  def dsl_config_file_loaded?
504
508
  defined?(@dsl_config_file_loaded) ? true : false
505
509
  end
@@ -613,6 +617,10 @@ module Appsignal
613
617
  Appsignal::Environment.report_supported_gems
614
618
  end
615
619
  end
620
+
621
+ # @!visibility private
622
+ module Integrations
623
+ end
616
624
  end
617
625
 
618
626
  require "appsignal/internal_errors"
@@ -76,7 +76,7 @@ end
76
76
  #
77
77
  # Class to handle the logic of translating the Puma stats to AppSignal metrics.
78
78
  #
79
- # @api private
79
+ # @!visibility private
80
80
  class AppsignalPumaPlugin
81
81
  def initialize
82
82
  @hostname = fetch_hostname