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
- 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 ].freeze
Instance Method Summary collapse
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
- #snapshot ⇒ Object
- #valid? ⇒ Boolean
- #validation_errors ⇒ Object
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
43 44 45 46 47 |
# File 'lib/chronos/configuration.rb', line 43 def initialize initialize_core_defaults initialize_privacy_defaults initialize_resilience_defaults end |
Instance Method Details
#snapshot ⇒ Object
49 50 51 52 53 54 |
# File 'lib/chronos/configuration.rb', line 49 def snapshot errors = validation_errors raise ConfigurationError, errors.join(", ") unless errors.empty? Snapshot.new(to_hash) end |
#valid? ⇒ Boolean
56 57 58 |
# File 'lib/chronos/configuration.rb', line 56 def valid? validation_errors.empty? end |
#validation_errors ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/chronos/configuration.rb', line 60 def validation_errors 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 end |