Sha256: f7c7e6f8b2c518daf4745f17fb5035a0a3aaaea9b659145a3139b74d59822ec5

Contents?: true

Size: 1.68 KB

Versions: 20

Compression:

Stored size: 1.68 KB

Contents

# frozen_string_literal: true

require 'set'

require_relative '../../configuration/settings'
require_relative '../ext'

module Datadog
  module Tracing
    module Contrib
      module Rake
        module Configuration
          # Custom settings for the Rake integration
          # @public_api
          class Settings < Contrib::Configuration::Settings
            option :enabled do |o|
              o.type :bool
              o.env Ext::ENV_ENABLED
              o.default true
            end

            # @!visibility private
            option :analytics_enabled do |o|
              o.type :bool
              o.env Ext::ENV_ANALYTICS_ENABLED
              o.default false
            end

            option :analytics_sample_rate do |o|
              o.type :float
              o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
              o.default 1.0
            end

            option :quantize, default: {}, type: :hash
            option :service_name

            # A list of rake tasks, using their string names, to be instrumented.
            # An empty list, or not setting this option means no task is instrumented.
            # Automatically instrumenting all Rake tasks can lead to long-running tasks
            # causing undue memory accumulation, as the trace for such tasks is never flushed.
            option :tasks do |o|
              o.type :array
              o.default []
              o.after_set do |value|
                # DEV: It should be possible to modify the value after it's set. E.g. for normalization.
                options[:tasks].instance_variable_set(:@value, value.map(&:to_s).to_set)
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
datadog-2.9.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.8.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.7.1 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.7.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.6.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.5.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.4.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.3.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.2.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
ddtrace-1.23.3 lib/datadog/tracing/contrib/rake/configuration/settings.rb
ddtrace-1.23.2 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.1.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.0.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
ddtrace-1.23.1 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.0.0.beta2 lib/datadog/tracing/contrib/rake/configuration/settings.rb
ddtrace-1.22.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
datadog-2.0.0.beta1 lib/datadog/tracing/contrib/rake/configuration/settings.rb
ddtrace-1.21.1 lib/datadog/tracing/contrib/rake/configuration/settings.rb
ddtrace-1.21.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb
ddtrace-1.20.0 lib/datadog/tracing/contrib/rake/configuration/settings.rb