Module: Datadog::SymbolDatabase::Configuration::Settings Private

Defined in:
lib/datadog/symbol_database/configuration.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Configuration settings for symbol database upload feature.

Public environment variable:

  • DD_SYMBOL_DATABASE_UPLOAD_ENABLED - Feature gate, tri-state (true/false/nil). See the :enabled option.

Extended into: Core::Configuration::Settings (via extend) Accessed as: Datadog.configuration.symbol_database.enabled

API:

  • private

Class Method Summary collapse

Class Method Details

.add_settings!(base) ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.

Add symbol_database settings block to base class.

Parameters:

  • Base class

API:

  • private



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/datadog/symbol_database/configuration.rb', line 27

def self.add_settings!(base)
  base.class_eval do
    # steep:ignore:start
    settings :symbol_database do
      # @return [Boolean, nil]
      # When nil (the default), symbol database mirrors Dynamic
      # Instrumentation: it is advertised and built alongside DI, but
      # only extracts and uploads symbols when DI is actually enabled
      # (via DD_DYNAMIC_INSTRUMENTATION_ENABLED or implicit enablement
      # through the DI UI). Set true/false explicitly via
      # DD_SYMBOL_DATABASE_UPLOAD_ENABLED or c.symbol_database.enabled to
      # override: true uploads regardless of DI, false disables entirely.
      option :enabled do |o|
        o.env "DD_SYMBOL_DATABASE_UPLOAD_ENABLED"
        o.default nil
        o.type :bool, nilable: true
      end

      # Settings in the 'internal' group are for internal Datadog
      # use only, and are needed to test symbol database or
      # experiment with features not released to customers.
      settings :internal do
        # Bypass remote config — start extraction immediately.
        # Matches Java's DD_INTERNAL_FORCE_SYMBOL_DATABASE_UPLOAD
        # and Python's private force_upload setting.
        option :force_upload do |o|
          o.type :bool
          o.env "DD_INTERNAL_FORCE_SYMBOL_DATABASE_UPLOAD"
          o.default false
        end

        # Enable verbose trace-level logging for symdb operations.
        # Activated by DD_TRACE_DEBUG (same trigger as DI trace logging).
        option :trace_logging do |o|
          o.type :bool
          o.default false
          o.env "DD_TRACE_DEBUG"
        end
      end
    end
    # steep:ignore:end
  end
end

.extended(base) ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.

Hook called when this module is extended into a class.

Parameters:

  • The class or module being extended

API:

  • private



19
20
21
22
# File 'lib/datadog/symbol_database/configuration.rb', line 19

def self.extended(base)
  base = base.singleton_class unless base.is_a?(Class)
  add_settings!(base)
end