Class: BetterService::Configuration
- Inherits:
-
Object
- Object
- BetterService::Configuration
- Defined in:
- lib/better_service/configuration.rb
Overview
Configuration - Centralized configuration for BetterService
Provides configuration options for various BetterService features.
Instance Attribute Summary collapse
-
#cache_invalidation_map ⇒ Hash<String, Array<String>>
Cache invalidation map for cascading cache invalidation.
-
#instrumentation_enabled ⇒ Boolean
Enable/disable instrumentation globally.
-
#instrumentation_excluded_services ⇒ Array<String>
List of service class names to exclude from instrumentation.
-
#instrumentation_include_args ⇒ Boolean
Include service arguments in event payloads.
-
#instrumentation_include_result ⇒ Boolean
Include service result in event payloads.
-
#log_subscriber_enabled ⇒ Boolean
Enable/disable built-in log subscriber.
-
#log_subscriber_level ⇒ Symbol
Log level for built-in log subscriber.
-
#stats_subscriber_enabled ⇒ Boolean
Enable/disable built-in stats subscriber.
Instance Method Summary collapse
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/better_service/configuration.rb', line 100 def initialize # Instrumentation defaults @instrumentation_enabled = true @instrumentation_include_args = true @instrumentation_include_result = false @instrumentation_excluded_services = [] # Built-in subscribers defaults @log_subscriber_enabled = false @log_subscriber_level = :info @stats_subscriber_enabled = false # Cache defaults @cache_invalidation_map = {} end |
Instance Attribute Details
#cache_invalidation_map ⇒ Hash<String, Array<String>>
Cache invalidation map for cascading cache invalidation
When a context is invalidated, all related contexts in the map are also invalidated automatically.
87 88 89 |
# File 'lib/better_service/configuration.rb', line 87 def cache_invalidation_map @cache_invalidation_map end |
#instrumentation_enabled ⇒ Boolean
Enable/disable instrumentation globally
When disabled, no events will be published for any service.
28 29 30 |
# File 'lib/better_service/configuration.rb', line 28 def instrumentation_enabled @instrumentation_enabled end |
#instrumentation_excluded_services ⇒ Array<String>
List of service class names to exclude from instrumentation
Services in this list will not publish any events. Useful for high-frequency services that would generate too many events.
52 53 54 |
# File 'lib/better_service/configuration.rb', line 52 def instrumentation_excluded_services @instrumentation_excluded_services end |
#instrumentation_include_args ⇒ Boolean
Include service arguments in event payloads
When enabled, args and kwargs are included in event payloads. Disable if arguments contain sensitive data (passwords, tokens, etc.)
36 37 38 |
# File 'lib/better_service/configuration.rb', line 36 def instrumentation_include_args @instrumentation_include_args end |
#instrumentation_include_result ⇒ Boolean
Include service result in event payloads
When enabled, the service result is included in completion events. Disable to reduce payload size or protect sensitive return values.
44 45 46 |
# File 'lib/better_service/configuration.rb', line 44 def instrumentation_include_result @instrumentation_include_result end |
#log_subscriber_enabled ⇒ Boolean
Enable/disable built-in log subscriber
When enabled, all service events are logged to Rails.logger.
59 60 61 |
# File 'lib/better_service/configuration.rb', line 59 def log_subscriber_enabled @log_subscriber_enabled end |
#log_subscriber_level ⇒ Symbol
Log level for built-in log subscriber
Valid values: :debug, :info, :warn, :error
66 67 68 |
# File 'lib/better_service/configuration.rb', line 66 def log_subscriber_level @log_subscriber_level end |
#stats_subscriber_enabled ⇒ Boolean
Enable/disable built-in stats subscriber
When enabled, statistics are collected for all service executions.
73 74 75 |
# File 'lib/better_service/configuration.rb', line 73 def stats_subscriber_enabled @stats_subscriber_enabled end |