Class: Appsignal::Config::ConfigDSL

Inherits:
Object
  • Object
show all
Defined in:
lib/appsignal/config.rb,
sig/appsignal.rbs

Overview

Configuration DSL for use in configuration blocks.

This class provides a Domain Specific Language for configuring AppSignal within the Appsignal.configure block. It provides getter and setter methods for all configuration options.

Examples:

Using the configuration DSL

Appsignal.configure do |config|
  config.name = "My App"
  config.active = true
  config.push_api_key = "your-api-key"
  config.ignore_actions = ["StatusController#health"]
end

See Also:

  • Ruby gem configuration https://docs.appsignal.com/ruby/configuration.html

String Configuration Options collapse

Boolean Configuration Options collapse

Array Configuration Options collapse

Float Configuration Options collapse

Hash Configuration Options collapse

Instance Method Summary collapse

Instance Attribute Details

#activeBoolean

@return — Activate AppSignal for the loaded environment

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#activejob_report_errorsString

@return — Error reporting mode for ActiveJob ("all", "discard" or "none")

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#bind_addressString

@return — The host to the agent binds to for its HTTP server

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#ca_file_pathString

@return — Path to the CA certificate file

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#cpu_countFloat

@return — CPU count override for metrics collection

Returns:

  • (Float)


# File 'lib/appsignal/config.rb', line 954

#default_tagsObject

Custom getter for default_tags to ensure consistent format



# File 'lib/appsignal/config.rb', line 970

#dns_servers::Array[String]

@return — Custom DNS servers to use

Returns:

  • (::Array[String])


# File 'lib/appsignal/config.rb', line 922

#enable_active_support_event_log_reporterBoolean

@return — Configure whether ActiveSupport::EventReporter integration is enabled

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#enable_allocation_trackingBoolean

@return — Configure whether allocation tracking is enabled

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#enable_at_exit_reporterBoolean

@return — Configure whether the at_exit reporter is enabled

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#enable_gvl_global_timerBoolean

@return — Configure whether the GVL global timer instrumentationis enabled

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#enable_gvl_waiting_threadsBoolean

@return — Configure whether GVL waiting threads instrumentation is enabled

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#enable_host_metricsBoolean

@return — Configure whether host metrics collection is enabled

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#enable_job_enqueue_instrumentationBoolean

@return — Configure whether to record an event when a background job is enqueued

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#enable_minutely_probesBoolean

@return — Configure whether minutely probes are enabled

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#enable_nginx_metricsBoolean

@return — Configure whether the agent's NGINX metrics endpoint is enabled

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#enable_rails_error_reporterBoolean

@return — Configure whether Rails error reporter integration is enabled

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#enable_rake_performance_instrumentationBoolean

@return — Configure whether Rake performance instrumentation is enabled

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#enable_statsdBoolean

@return — Configure whether the StatsD metrics endpoint on the agent is enabled

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#endpointString

@return — Push API endpoint URL

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#files_world_accessibleBoolean

@return — Configure whether files created by AppSignal should be world accessible

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#filter_metadata::Array[String]

@return — Metadata keys to filter from trace data

Returns:

  • (::Array[String])


# File 'lib/appsignal/config.rb', line 922

#filter_parameters::Array[String]

@return — Keys of parameter to filter

Returns:

  • (::Array[String])


# File 'lib/appsignal/config.rb', line 922

#filter_session_data::Array[String]

@return — Request session data keys to filter

Returns:

  • (::Array[String])


# File 'lib/appsignal/config.rb', line 922

#host_roleString

@return — Role of the host for grouping in metrics

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#hostnameString

@return — Override for the detected hostname

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#http_proxyString

@return — HTTP proxy URL

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#ignore_actions::Array[String]

@return — Ignore traces by action names

Returns:

  • (::Array[String])


# File 'lib/appsignal/config.rb', line 922

#ignore_errors::Array[String]

@return — List of errors to not report

Returns:

  • (::Array[String])


# File 'lib/appsignal/config.rb', line 922

#ignore_logs::Array[String]

@return — Ignore log messages by substrings

Returns:

  • (::Array[String])


# File 'lib/appsignal/config.rb', line 922

#ignore_namespaces::Array[String]

@return — Ignore traces by namespaces

Returns:

  • (::Array[String])


# File 'lib/appsignal/config.rb', line 922

#instrument_active_jobBoolean

@return — Configure whether to instrument Active Job

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_delayed_jobBoolean

@return — Configure whether to instrument Delayed Job

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_exconBoolean

@return — Configure whether to instrument requests made with the Excon gem

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_faradayBoolean

@return — Configure whether to instrument requests made with the Faraday gem

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_http_rbBoolean

@return — Configure whether to instrument requests made with the http.rb gem

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_mongoBoolean

@return — Configure whether to instrument MongoDB queries

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_net_httpBoolean

@return — Configure whether to instrument requests made with Net::HTTP

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_ownershipBoolean

@return — Configure whether to instrument the Ownership gem

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_queBoolean

@return — Configure whether to instrument Que

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_redisBoolean

@return — Configure whether to instrument Redis queries

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_resqueBoolean

@return — Configure whether to instrument Resque

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_sequelBoolean

@return — Configure whether to instrument Sequel queries

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_shoryukenBoolean

@return — Configure whether to instrument Shoryuken

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#instrument_sidekiqBoolean

@return — Configure whether to instrument Sidekiq

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#logString

@return — Log destination ("file" or "stdout")

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#log_levelString

@return — AppSignal internal logger log level ("error", "warn", "info", "debug", "trace")

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#log_pathString

@return — Path to the log directory

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#logging_endpointString

@return — Endpoint for log transmission

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#nameString

@return — The application name

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#nginx_portString

@return — Port for Nginx metrics collection

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#ownership_set_namespaceBoolean

@return — Configure whether the Ownership gem instrumentation should set namespace

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#push_api_keyString

@return — AppSignal Push API key

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#request_headers::Array[String]

@return — HTTP request headers to include in error reports

Returns:

  • (::Array[String])


# File 'lib/appsignal/config.rb', line 922

#revisionString

@return — Application revision identifier

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#running_in_containerBoolean

@return — Configure whether the application is running in a container

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#send_environment_metadataBoolean

@return — Configure whether to send environment metadata

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#send_paramsBoolean

@return — Configure whether to send request parameters

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#send_session_dataBoolean

@return — Configure whether to send request session data

Returns:

  • (Boolean)


# File 'lib/appsignal/config.rb', line 842

#sidekiq_report_errorsString

@return — Error reporting mode for Sidekiq ("all", "discard" or "none")

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#statsd_portString

@return — Port for StatsD metrics

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

#working_directory_pathString

@return — Override for the agent working directory

Returns:

  • (String)


# File 'lib/appsignal/config.rb', line 791

Instance Method Details

#activate_if_environment(*envs) ⇒ Boolean

Activates AppSignal if the current environment matches any of the given environments.

@param envs — List of environment names to activate for

@return — true if AppSignal was activated, false otherwise

Activate for production and staging

config.activate_if_environment(:production, :staging)

Parameters:

  • envs (::Array[(String | Symbol)])

Returns:

  • (Boolean)


785
786
787
# File 'lib/appsignal/config.rb', line 785

def activate_if_environment(*envs)
  self.active = envs.map(&:to_s).include?(env)
end

#app_pathString

Returns the application's root path.

@return — The root path of the application

Returns:

  • (String)


758
759
760
# File 'lib/appsignal/config.rb', line 758

def app_path
  @config.root_path
end

#envString

Returns the current environment name.

@return — The environment name (e.g., "production", "development")

Returns:

  • (String)


765
766
767
# File 'lib/appsignal/config.rb', line 765

def env
  @config.env
end

#env?(given_env) ⇒ TrueClass, FalseClass

Returns true if the given environment name matches the loaded environment name.

@param given_env

Parameters:

  • given_env (String, Symbol)

Returns:

  • (TrueClass, FalseClass)


774
775
776
# File 'lib/appsignal/config.rb', line 774

def env?(given_env)
  env == given_env.to_s
end