Class: Chronos::Configuration
- Inherits:
-
Object
- Object
- Chronos::Configuration
- Defined in:
- lib/chronos/configuration.rb
Overview
Mutable configuration used only while the Chronos agent is being set up.
Defined Under Namespace
Classes: Snapshot
Constant Summary collapse
- DEFAULT_BLOCKLIST_KEYS =
%w( password password_confirmation passwd secret api_key apikey authorization token access_token refresh_token private_key client_secret cookie set-cookie session credit_card card_number cvv cpf cnpj ).freeze
- CONTEXT_STORE_METHODS =
[:get, :set, :clear, :with_context].freeze
- ATTRIBUTES =
[ :project_id, :project_key, :host, :environment, :app_version, :service_name, :root_directory, :logger, :timeout, :open_timeout, :queue_size, :workers, :enabled, :error_notifications, :ignored_environments, :proxy, :ssl_verify, :user_agent, :max_payload_size, :gzip, :blocklist_keys, :allowlist_keys, :filters, :hash_keys, :anonymize_ip, :max_retries, :retry_base_interval, :retry_max_interval, :retry_jitter, :backlog_size, :circuit_failure_threshold, :circuit_reset_timeout, :remote_configuration, :remote_config_max_bytes, :sampling_rate, :enabled_event_types, :max_remote_send_interval, :context_store, :breadcrumb_capacity, :breadcrumb_max_bytes ].freeze
Instance Method Summary collapse
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
- #snapshot ⇒ Object
- #valid? ⇒ Boolean
-
#validation_errors ⇒ Object
rubocop:disable Metrics/AbcSize.
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
45 46 47 48 49 |
# File 'lib/chronos/configuration.rb', line 45 def initialize initialize_core_defaults initialize_privacy_defaults initialize_resilience_defaults end |
Instance Method Details
#snapshot ⇒ Object
51 52 53 54 55 56 |
# File 'lib/chronos/configuration.rb', line 51 def snapshot errors = validation_errors raise ConfigurationError, errors.join(", ") unless errors.empty? Snapshot.new(to_hash) end |
#valid? ⇒ Boolean
58 59 60 |
# File 'lib/chronos/configuration.rb', line 58 def valid? validation_errors.empty? end |
#validation_errors ⇒ Object
rubocop:disable Metrics/AbcSize
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/chronos/configuration.rb', line 62 def validation_errors # rubocop:disable Metrics/AbcSize errors = [] if enabled errors << "project_id is required" if blank?(project_id) errors << "project_key is required" if blank?(project_key) errors.concat(host_errors) end errors << "timeout must be greater than zero" unless positive_number?(timeout) errors << "open_timeout must be greater than zero" unless positive_number?(open_timeout) errors << "queue_size must be a positive integer" unless positive_integer?(queue_size) errors << "workers must be a positive integer" unless positive_integer?(workers) errors << "max_payload_size must be a positive integer" unless positive_integer?(max_payload_size) errors.concat(resilience_errors) errors.concat(privacy_errors) errors.concat(context_errors) errors end |