Class: Datadog::Core::Configuration::Settings
- Inherits:
-
Object
- Object
- Datadog::Core::Configuration::Settings
- Extended by:
- AIGuard::Configuration::Settings, OpenFeature::Configuration::Settings, OpenTelemetry::Configuration::Settings, Tracing::Configuration::Settings
- Includes:
- Base
- Defined in:
- lib/datadog/core/configuration/settings.rb
Overview
Global configuration settings for the Datadog library. standard:disable Metrics/BlockLength
Instance Method Summary collapse
-
#api_key ⇒ String?
Datadog API key.
-
#env ⇒ String?
The
envtag in Datadog. -
#experimental_propagate_process_tags_enabled ⇒ Boolean
Enable process tags propagation such that payloads like spans contain the process tag.
-
#hostname ⇒ String?
Override the hostname reported by this process.
-
#service ⇒ String
The
servicetag in Datadog. -
#site ⇒ String?
The Datadog site host to send data to.
-
#tags ⇒ Hash<String,String>
Default tags.
-
#version ⇒ String?
The
versiontag in Datadog.
Methods included from Tracing::Configuration::Settings
Methods included from OpenTelemetry::Configuration::Settings
add_settings!, extended, headers_parser, normalize_protocol, normalize_temporality_preference
Methods included from OpenFeature::Configuration::Settings
Methods included from AIGuard::Configuration::Settings
Methods included from Base
Instance Method Details
#api_key ⇒ String?
Datadog API key.
For internal use only.
106 107 108 109 110 |
# File 'lib/datadog/core/configuration/settings.rb', line 106 option :api_key do |o| o.type :string, nilable: true o.env Core::Environment::Ext::ENV_API_KEY o.skip_telemetry true end |
#env ⇒ String?
The env tag in Datadog. Use it to separate out your staging, development, and production environments.
169 170 171 172 173 |
# File 'lib/datadog/core/configuration/settings.rb', line 169 option :env do |o| o.type :string, nilable: true # NOTE: env also gets set as a side effect of tags. See the WORKAROUND note in #initialize for details. o.env Core::Environment::Ext::ENV_ENVIRONMENT end |
#experimental_propagate_process_tags_enabled ⇒ Boolean
Enable process tags propagation such that payloads like spans contain the process tag.
1089 1090 1091 1092 1093 |
# File 'lib/datadog/core/configuration/settings.rb', line 1089 option :experimental_propagate_process_tags_enabled do |o| o.env "DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED" o.default true o.type :bool end |
#hostname ⇒ String?
Override the hostname reported by this process.
When report_hostname is enabled, sets the hostname on traces and
the host.name resource attribute in OpenTelemetry.
180 181 182 183 |
# File 'lib/datadog/core/configuration/settings.rb', line 180 option :hostname do |o| o.type :string, nilable: true o.env Core::Environment::Ext::ENV_HOSTNAME end |
#service ⇒ String
The service tag in Datadog. Use it to group related traces into a service.
697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 |
# File 'lib/datadog/core/configuration/settings.rb', line 697 option :service do |o| o.type :string, nilable: true # NOTE: service also gets set as a side effect of tags. See the WORKAROUND note in #initialize for details. # Note: Alias (OTEL_SERVICE_NAME) defined in supported-configurations.json o.env Core::Environment::Ext::ENV_SERVICE o.default Core::Environment::Ext::FALLBACK_SERVICE_NAME o.after_set do |service_name| Core::Environment::Process.set_service(service_name, user_configured: !using_default?(:service)) end # There's a few cases where we don't want to use the fallback service name, so this helper allows us to get a # nil instead so that one can do # nice_service_name = Datadog.configuration.service_without_fallback || nice_service_name_default o.helper(:service_without_fallback) do service_name = service service_name unless using_default?(:service) end end |
#site ⇒ String?
The Datadog site host to send data to.
By default, data is sent to the Datadog US site: app.datadoghq.com.
If your organization is on another site, you must update this value to the new site.
For internal use only.
728 729 730 731 |
# File 'lib/datadog/core/configuration/settings.rb', line 728 option :site do |o| o.type :string, nilable: true o.env Core::Environment::Ext::ENV_SITE end |
#tags ⇒ Hash<String,String>
Default tags
These tags are used by all Datadog products, when applicable. e.g. trace spans, profiles, etc.
739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 |
# File 'lib/datadog/core/configuration/settings.rb', line 739 option :tags do |o| o.type :hash, nilable: true # Note: Alias (OTEL_RESOURCE_ATTRIBUTES) defined in supported-configurations.json o.env Core::Environment::Ext::ENV_TAGS o.env_parser do |env_value| # Parses a string containing key-value pairs and returns a hash. # Key-value pairs are delimited by ':' OR `=`, and pairs are separated by whitespace, comma, OR BOTH. result = {} unless env_value.nil? || env_value.empty? # falling back to comma as separator sep = env_value.include?(",") ? "," : " " # split by separator env_value.split(sep).each do |tag| tag.strip! next if tag.empty? # tag by : or = (for OpenTelemetry) key, val = tag.split(/[:=]/, 2).map(&:strip) val ||= "" # maps OpenTelemetry semantic attributes to Datadog tags key = case key.downcase when "deployment.environment" then "env" when "service.version" then "version" when "service.name" then "service" else key end result[key] = val unless key.empty? end end result end o.setter do |new_value, old_value| = new_value || {} env_value = env version_value = version service_name = service_without_fallback # Override tags if defined [Core::Environment::Ext::TAG_ENV] = env_value unless env_value.nil? [Core::Environment::Ext::TAG_VERSION] = version_value unless version_value.nil? # Coerce keys to strings = .collect { |k, v| [k.to_s, v] }.to_h # Cross-populate tag values with other settings if env_value.nil? && .key?(Core::Environment::Ext::TAG_ENV) self.env = [Core::Environment::Ext::TAG_ENV] end if version_value.nil? && .key?(Core::Environment::Ext::TAG_VERSION) self.version = [Core::Environment::Ext::TAG_VERSION] end if service_name.nil? && .key?(Core::Environment::Ext::TAG_SERVICE) self.service = [Core::Environment::Ext::TAG_SERVICE] end # Merge with previous tags (old_value || {}).merge() end end |
#version ⇒ String?
The version tag in Datadog. Use it to enable Deployment Tracking.
844 845 846 847 848 |
# File 'lib/datadog/core/configuration/settings.rb', line 844 option :version do |o| # NOTE: version also gets set as a side effect of tags. See the WORKAROUND note in #initialize for details. o.type :string, nilable: true o.env Core::Environment::Ext::ENV_VERSION end |