datadog 2.20.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -1
  3. data/README.md +0 -1
  4. data/ext/libdatadog_api/process_discovery.c +5 -5
  5. data/lib/datadog/appsec/api_security/route_extractor.rb +6 -2
  6. data/lib/datadog/appsec/autoload.rb +1 -1
  7. data/lib/datadog/core/configuration/agent_settings_resolver.rb +4 -4
  8. data/lib/datadog/core/configuration/components.rb +8 -2
  9. data/lib/datadog/core/configuration/config_helper.rb +100 -0
  10. data/lib/datadog/core/configuration/deprecations.rb +36 -0
  11. data/lib/datadog/core/configuration/ext.rb +0 -1
  12. data/lib/datadog/core/configuration/option.rb +38 -43
  13. data/lib/datadog/core/configuration/option_definition.rb +0 -9
  14. data/lib/datadog/core/configuration/options.rb +1 -5
  15. data/lib/datadog/core/configuration/settings.rb +10 -6
  16. data/lib/datadog/core/configuration/supported_configurations.rb +335 -0
  17. data/lib/datadog/core/configuration.rb +1 -1
  18. data/lib/datadog/core/deprecations.rb +2 -2
  19. data/lib/datadog/core/environment/ext.rb +0 -2
  20. data/lib/datadog/core/environment/git.rb +2 -2
  21. data/lib/datadog/core/environment/variable_helpers.rb +3 -3
  22. data/lib/datadog/core/metrics/client.rb +2 -2
  23. data/lib/datadog/core/process_discovery/tracer_memfd.rb +2 -4
  24. data/lib/datadog/core/process_discovery.rb +46 -23
  25. data/lib/datadog/core/runtime/ext.rb +0 -1
  26. data/lib/datadog/core/telemetry/event/app_started.rb +2 -2
  27. data/lib/datadog/core.rb +2 -0
  28. data/lib/datadog/di/boot.rb +4 -3
  29. data/lib/datadog/di/probe_file_loader.rb +1 -1
  30. data/lib/datadog/di/probe_notification_builder.rb +1 -1
  31. data/lib/datadog/opentelemetry/sdk/configurator.rb +1 -1
  32. data/lib/datadog/profiling/collectors/info.rb +1 -1
  33. data/lib/datadog/profiling/ext.rb +2 -1
  34. data/lib/datadog/profiling/http_transport.rb +1 -1
  35. data/lib/datadog/profiling/tasks/exec.rb +2 -2
  36. data/lib/datadog/tracing/configuration/ext.rb +0 -3
  37. data/lib/datadog/tracing/configuration/settings.rb +12 -7
  38. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +12 -1
  39. data/lib/datadog/tracing/contrib/rack/request_queue.rb +1 -0
  40. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +7 -1
  41. data/lib/datadog/tracing/contrib/rails/ext.rb +2 -1
  42. data/lib/datadog/tracing/contrib/rails/integration.rb +1 -1
  43. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +1 -1
  44. data/lib/datadog/version.rb +1 -1
  45. metadata +9 -6
@@ -0,0 +1,335 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated from `supported-configurations.json` by `rake local_config_map:generate`.
4
+ # Do not change manually! Please refer to `docs/AccessEnvironmentVariables.md` for more information.
5
+
6
+ module Datadog
7
+ module Core
8
+ module Configuration
9
+ SUPPORTED_CONFIGURATIONS =
10
+ {"DD_AGENT_HOST" => {version: ["A"]},
11
+ "DD_API_KEY" => {version: ["A"]},
12
+ "DD_API_SECURITY_ENABLED" => {version: ["A"]},
13
+ "DD_API_SECURITY_REQUEST_SAMPLE_RATE" => {version: ["A"]},
14
+ "DD_API_SECURITY_SAMPLE_DELAY" => {version: ["A"]},
15
+ "DD_APM_TRACING_ENABLED" => {version: ["A"]},
16
+ "DD_APPSEC_AUTOMATED_USER_EVENTS_TRACKING" => {version: ["A"]},
17
+ "DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE" => {version: ["A"]},
18
+ "DD_APPSEC_ENABLED" => {version: ["A"]},
19
+ "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML" => {version: ["A"]},
20
+ "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_JSON" => {version: ["A"]},
21
+ "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_TEXT" => {version: ["A"]},
22
+ "DD_APPSEC_MAX_STACK_TRACES" => {version: ["A"]},
23
+ "DD_APPSEC_MAX_STACK_TRACE_DEPTH" => {version: ["A"]},
24
+ "DD_APPSEC_MAX_STACK_TRACE_DEPTH_TOP_PERCENT" => {version: ["A"]},
25
+ "DD_APPSEC_OBFUSCATION_PARAMETER_KEY_REGEXP" => {version: ["A"]},
26
+ "DD_APPSEC_OBFUSCATION_PARAMETER_VALUE_REGEXP" => {version: ["A"]},
27
+ "DD_APPSEC_RASP_ENABLED" => {version: ["A"]},
28
+ "DD_APPSEC_RULES" => {version: ["A"]},
29
+ "DD_APPSEC_SCA_ENABLED" => {version: ["A"]},
30
+ "DD_APPSEC_STACK_TRACE_ENABLED" => {version: ["A"]},
31
+ "DD_APPSEC_TRACE_RATE_LIMIT" => {version: ["A"]},
32
+ "DD_APPSEC_WAF_DEBUG" => {version: ["A"]},
33
+ "DD_APPSEC_WAF_TIMEOUT" => {version: ["A"]},
34
+ "DD_CRASHTRACKING_ENABLED" => {version: ["A"]},
35
+ "DD_DBM_PROPAGATION_MODE" => {version: ["A"]},
36
+ "DD_DISABLE_DATADOG_RAILS" => {version: ["A"]},
37
+ "DD_DYNAMIC_INSTRUMENTATION_ENABLED" => {version: ["A"]},
38
+ "DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE" => {version: ["A"]},
39
+ "DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS" => {version: ["A"]},
40
+ "DD_DYNAMIC_INSTRUMENTATION_REDACTED_TYPES" => {version: ["A"]},
41
+ "DD_ENV" => {version: ["A"]},
42
+ "DD_ERROR_TRACKING_HANDLED_ERRORS" => {version: ["A"]},
43
+ "DD_ERROR_TRACKING_HANDLED_ERRORS_INCLUDE" => {version: ["A"]},
44
+ "DD_GIT_COMMIT_SHA" => {version: ["A"]},
45
+ "DD_GIT_REPOSITORY_URL" => {version: ["A"]},
46
+ "DD_HEALTH_METRICS_ENABLED" => {version: ["A"]},
47
+ "DD_INJECTION_ENABLED" => {version: ["A"]},
48
+ "DD_INJECT_FORCE" => {version: ["A"]},
49
+ "DD_INSTRUMENTATION_INSTALL_ID" => {version: ["A"]},
50
+ "DD_INSTRUMENTATION_INSTALL_TIME" => {version: ["A"]},
51
+ "DD_INSTRUMENTATION_INSTALL_TYPE" => {version: ["A"]},
52
+ "DD_INSTRUMENTATION_TELEMETRY_ENABLED" => {version: ["A"]},
53
+ "DD_INTEGRATION_SERVICE" => {version: ["A"]},
54
+ "DD_LOGS_INJECTION" => {version: ["A"]},
55
+ "DD_METRIC_AGENT_PORT" => {version: ["A"]},
56
+ "DD_PROFILING_ALLOCATION_ENABLED" => {version: ["A"]},
57
+ "DD_PROFILING_DIR_INTERRUPTION_WORKAROUND_ENABLED" => {version: ["A"]},
58
+ "DD_PROFILING_ENABLED" => {version: ["A"]},
59
+ "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED" => {version: ["A"]},
60
+ "DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED" => {version: ["A"]},
61
+ "DD_PROFILING_EXPERIMENTAL_HEAP_SAMPLE_RATE" => {version: ["A"]},
62
+ "DD_PROFILING_EXPERIMENTAL_HEAP_SIZE_ENABLED" => {version: ["A"]},
63
+ "DD_PROFILING_GC_ENABLED" => {version: ["A"]},
64
+ "DD_PROFILING_GVL_ENABLED" => {version: ["A"]},
65
+ "DD_PROFILING_HEAP_CLEAN_AFTER_GC_ENABLED" => {version: ["A"]},
66
+ "DD_PROFILING_MAX_FRAMES" => {version: ["A"]},
67
+ "DD_PROFILING_NATIVE_FILENAMES_ENABLED" => {version: ["A"]},
68
+ "DD_PROFILING_NO_SIGNALS_WORKAROUND_ENABLED" => {version: ["A"]},
69
+ "DD_PROFILING_OVERHEAD_TARGET_PERCENTAGE" => {version: ["A"]},
70
+ "DD_PROFILING_PREVIEW_OTEL_CONTEXT_ENABLED" => {version: ["A"]},
71
+ "DD_PROFILING_SIGHANDLER_SAMPLING_ENABLED" => {version: ["A"]},
72
+ "DD_PROFILING_SKIP_MYSQL2_CHECK" => {version: ["A"]},
73
+ "DD_PROFILING_TIMELINE_ENABLED" => {version: ["A"]},
74
+ "DD_PROFILING_UPLOAD_PERIOD" => {version: ["A"]},
75
+ "DD_PROFILING_UPLOAD_TIMEOUT" => {version: ["A"]},
76
+ "DD_REDIS_COMMAND_ARGS" => {version: ["A"]},
77
+ "DD_REMOTE_CONFIGURATION_ENABLED" => {version: ["A"]},
78
+ "DD_REMOTE_CONFIG_BOOT_TIMEOUT_SECONDS" => {version: ["A"]},
79
+ "DD_REMOTE_CONFIG_POLL_INTERVAL_SECONDS" => {version: ["A"]},
80
+ "DD_RODA_ANALYTICS_ENABLED" => {version: ["A"]},
81
+ "DD_RODA_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
82
+ "DD_RUNTIME_METRICS_ENABLED" => {version: ["A"]},
83
+ "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED" => {version: ["A"]},
84
+ "DD_SERVICE" => {version: ["B"]},
85
+ "DD_SITE" => {version: ["A"]},
86
+ "DD_SPAN_SAMPLING_RULES" => {version: ["A"]},
87
+ "DD_SPAN_SAMPLING_RULES_FILE" => {version: ["A"]},
88
+ "DD_TAGS" => {version: ["B"]},
89
+ "DD_TELEMETRY_AGENTLESS_URL" => {version: ["A"]},
90
+ "DD_TELEMETRY_DEPENDENCY_COLLECTION_ENABLED" => {version: ["A"]},
91
+ "DD_TELEMETRY_HEARTBEAT_INTERVAL" => {version: ["A"]},
92
+ "DD_TELEMETRY_LOG_COLLECTION_ENABLED" => {version: ["A"]},
93
+ "DD_TELEMETRY_METRICS_AGGREGATION_INTERVAL" => {version: ["A"]},
94
+ "DD_TELEMETRY_METRICS_ENABLED" => {version: ["A"]},
95
+ "DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED" => {version: ["A"]},
96
+ "DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED" => {version: ["A"]},
97
+ "DD_TRACE_ACTION_CABLE_ANALYTICS_ENABLED" => {version: ["A"]},
98
+ "DD_TRACE_ACTION_CABLE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
99
+ "DD_TRACE_ACTION_CABLE_ENABLED" => {version: ["A"]},
100
+ "DD_TRACE_ACTION_MAILER_ANALYTICS_ENABLED" => {version: ["A"]},
101
+ "DD_TRACE_ACTION_MAILER_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
102
+ "DD_TRACE_ACTION_MAILER_ENABLED" => {version: ["A"]},
103
+ "DD_TRACE_ACTION_PACK_ANALYTICS_ENABLED" => {version: ["A"]},
104
+ "DD_TRACE_ACTION_PACK_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
105
+ "DD_TRACE_ACTION_PACK_ENABLED" => {version: ["A"]},
106
+ "DD_TRACE_ACTION_VIEW_ANALYTICS_ENABLED" => {version: ["A"]},
107
+ "DD_TRACE_ACTION_VIEW_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
108
+ "DD_TRACE_ACTION_VIEW_ENABLED" => {version: ["A"]},
109
+ "DD_TRACE_ACTIVE_JOB_ANALYTICS_ENABLED" => {version: ["A"]},
110
+ "DD_TRACE_ACTIVE_JOB_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
111
+ "DD_TRACE_ACTIVE_JOB_ENABLED" => {version: ["A"]},
112
+ "DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_ENABLED" => {version: ["A"]},
113
+ "DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
114
+ "DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ENABLED" => {version: ["A"]},
115
+ "DD_TRACE_ACTIVE_RECORD_ANALYTICS_ENABLED" => {version: ["A"]},
116
+ "DD_TRACE_ACTIVE_RECORD_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
117
+ "DD_TRACE_ACTIVE_RECORD_ENABLED" => {version: ["A"]},
118
+ "DD_TRACE_ACTIVE_SUPPORT_ANALYTICS_ENABLED" => {version: ["A"]},
119
+ "DD_TRACE_ACTIVE_SUPPORT_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
120
+ "DD_TRACE_ACTIVE_SUPPORT_ENABLED" => {version: ["A"]},
121
+ "DD_TRACE_AGENT_PORT" => {version: ["A"]},
122
+ "DD_TRACE_AGENT_TIMEOUT_SECONDS" => {version: ["A"]},
123
+ "DD_TRACE_AGENT_URL" => {version: ["A"]},
124
+ "DD_TRACE_ANALYTICS_ENABLED" => {version: ["A"]},
125
+ "DD_TRACE_AWS_ANALYTICS_ENABLED" => {version: ["A"]},
126
+ "DD_TRACE_AWS_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
127
+ "DD_TRACE_AWS_ENABLED" => {version: ["A"]},
128
+ "DD_TRACE_AWS_PEER_SERVICE" => {version: ["A"]},
129
+ "DD_TRACE_AWS_SERVICE_NAME" => {version: ["A"]},
130
+ "DD_TRACE_BAGGAGE_TAG_KEYS" => {version: ["A"]},
131
+ "DD_TRACE_CLIENT_IP_ENABLED" => {version: ["A"]},
132
+ "DD_TRACE_CLIENT_IP_HEADER" => {version: ["A"]},
133
+ "DD_TRACE_CONCURRENT_RUBY_ENABLED" => {version: ["A"]},
134
+ "DD_TRACE_DALLI_ANALYTICS_ENABLED" => {version: ["A"]},
135
+ "DD_TRACE_DALLI_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
136
+ "DD_TRACE_DALLI_ENABLED" => {version: ["A"]},
137
+ "DD_TRACE_DALLI_PEER_SERVICE" => {version: ["A"]},
138
+ "DD_TRACE_DALLI_SERVICE_NAME" => {version: ["A"]},
139
+ "DD_TRACE_DEBUG" => {version: ["B"]},
140
+ "DD_TRACE_DELAYED_JOB_ANALYTICS_ENABLED" => {version: ["A"]},
141
+ "DD_TRACE_DELAYED_JOB_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
142
+ "DD_TRACE_DELAYED_JOB_ENABLED" => {version: ["A"]},
143
+ "DD_TRACE_ELASTICSEARCH_ANALYTICS_ENABLED" => {version: ["A"]},
144
+ "DD_TRACE_ELASTICSEARCH_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
145
+ "DD_TRACE_ELASTICSEARCH_ENABLED" => {version: ["A"]},
146
+ "DD_TRACE_ELASTICSEARCH_PEER_SERVICE" => {version: ["A"]},
147
+ "DD_TRACE_ELASTICSEARCH_SERVICE_NAME" => {version: ["A"]},
148
+ "DD_TRACE_ENABLED" => {version: ["B"]},
149
+ "DD_TRACE_ETHON_ANALYTICS_ENABLED" => {version: ["A"]},
150
+ "DD_TRACE_ETHON_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
151
+ "DD_TRACE_ETHON_ENABLED" => {version: ["A"]},
152
+ "DD_TRACE_ETHON_PEER_SERVICE" => {version: ["A"]},
153
+ "DD_TRACE_ETHON_SERVICE_NAME" => {version: ["A"]},
154
+ "DD_TRACE_EXCON_ANALYTICS_ENABLED" => {version: ["A"]},
155
+ "DD_TRACE_EXCON_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
156
+ "DD_TRACE_EXCON_ENABLED" => {version: ["A"]},
157
+ "DD_TRACE_EXCON_ERROR_STATUS_CODES" => {version: ["A"]},
158
+ "DD_TRACE_EXCON_PEER_SERVICE" => {version: ["A"]},
159
+ "DD_TRACE_EXCON_SERVICE_NAME" => {version: ["A"]},
160
+ "DD_TRACE_FARADAY_ANALYTICS_ENABLED" => {version: ["A"]},
161
+ "DD_TRACE_FARADAY_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
162
+ "DD_TRACE_FARADAY_ENABLED" => {version: ["A"]},
163
+ "DD_TRACE_FARADAY_ERROR_STATUS_CODES" => {version: ["A"]},
164
+ "DD_TRACE_FARADAY_PEER_SERVICE" => {version: ["A"]},
165
+ "DD_TRACE_FARADAY_SERVICE_NAME" => {version: ["A"]},
166
+ "DD_TRACE_GRAPE_ANALYTICS_ENABLED" => {version: ["A"]},
167
+ "DD_TRACE_GRAPE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
168
+ "DD_TRACE_GRAPE_ENABLED" => {version: ["A"]},
169
+ "DD_TRACE_GRAPE_ERROR_STATUS_CODES" => {version: ["A"]},
170
+ "DD_TRACE_GRAPHQL_ANALYTICS_ENABLED" => {version: ["A"]},
171
+ "DD_TRACE_GRAPHQL_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
172
+ "DD_TRACE_GRAPHQL_ENABLED" => {version: ["A"]},
173
+ "DD_TRACE_GRAPHQL_ERROR_EXTENSIONS" => {version: ["A"]},
174
+ "DD_TRACE_GRAPHQL_WITH_UNIFIED_TRACER" => {version: ["A"]},
175
+ "DD_TRACE_GRPC_ANALYTICS_ENABLED" => {version: ["A"]},
176
+ "DD_TRACE_GRPC_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
177
+ "DD_TRACE_GRPC_ENABLED" => {version: ["A"]},
178
+ "DD_TRACE_GRPC_PEER_SERVICE" => {version: ["A"]},
179
+ "DD_TRACE_GRPC_SERVICE_NAME" => {version: ["A"]},
180
+ "DD_TRACE_HANAMI_ENABLED" => {version: ["A"]},
181
+ "DD_TRACE_HEADER_TAGS" => {version: ["A"]},
182
+ "DD_TRACE_HTTPCLIENT_ANALYTICS_ENABLED" => {version: ["A"]},
183
+ "DD_TRACE_HTTPCLIENT_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
184
+ "DD_TRACE_HTTPCLIENT_ENABLED" => {version: ["A"]},
185
+ "DD_TRACE_HTTPCLIENT_ERROR_STATUS_CODES" => {version: ["A"]},
186
+ "DD_TRACE_HTTPCLIENT_PEER_SERVICE" => {version: ["A"]},
187
+ "DD_TRACE_HTTPCLIENT_SERVICE_NAME" => {version: ["A"]},
188
+ "DD_TRACE_HTTPRB_ANALYTICS_ENABLED" => {version: ["A"]},
189
+ "DD_TRACE_HTTPRB_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
190
+ "DD_TRACE_HTTPRB_ENABLED" => {version: ["A"]},
191
+ "DD_TRACE_HTTPRB_ERROR_STATUS_CODES" => {version: ["A"]},
192
+ "DD_TRACE_HTTPRB_PEER_SERVICE" => {version: ["A"]},
193
+ "DD_TRACE_HTTPRB_SERVICE_NAME" => {version: ["A"]},
194
+ "DD_TRACE_HTTP_ANALYTICS_ENABLED" => {version: ["A"]},
195
+ "DD_TRACE_HTTP_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
196
+ "DD_TRACE_HTTP_ENABLED" => {version: ["A"]},
197
+ "DD_TRACE_HTTP_ERROR_STATUS_CODES" => {version: ["A"]},
198
+ "DD_TRACE_KAFKA_ANALYTICS_ENABLED" => {version: ["A"]},
199
+ "DD_TRACE_KAFKA_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
200
+ "DD_TRACE_KAFKA_ENABLED" => {version: ["A"]},
201
+ "DD_TRACE_KARAFKA_ENABLED" => {version: ["A"]},
202
+ "DD_TRACE_LOGRAGE_ENABLED" => {version: ["A"]},
203
+ "DD_TRACE_MEMCACHED_COMMAND_ENABLED" => {version: ["A"]},
204
+ "DD_TRACE_MONGO_ANALYTICS_ENABLED" => {version: ["A"]},
205
+ "DD_TRACE_MONGO_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
206
+ "DD_TRACE_MONGO_ENABLED" => {version: ["A"]},
207
+ "DD_TRACE_MONGO_JSON_COMMAND" => {version: ["A"]},
208
+ "DD_TRACE_MONGO_PEER_SERVICE" => {version: ["A"]},
209
+ "DD_TRACE_MONGO_SERVICE_NAME" => {version: ["A"]},
210
+ "DD_TRACE_MYSQL2_ANALYTICS_ENABLED" => {version: ["A"]},
211
+ "DD_TRACE_MYSQL2_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
212
+ "DD_TRACE_MYSQL2_ENABLED" => {version: ["A"]},
213
+ "DD_TRACE_MYSQL2_PEER_SERVICE" => {version: ["A"]},
214
+ "DD_TRACE_MYSQL2_SERVICE_NAME" => {version: ["A"]},
215
+ "DD_TRACE_NATIVE_SPAN_EVENTS" => {version: ["A"]},
216
+ "DD_TRACE_NET_HTTP_PEER_SERVICE" => {version: ["A"]},
217
+ "DD_TRACE_NET_HTTP_SERVICE_NAME" => {version: ["A"]},
218
+ "DD_TRACE_OPENSEARCH_ANALYTICS_ENABLED" => {version: ["A"]},
219
+ "DD_TRACE_OPENSEARCH_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
220
+ "DD_TRACE_OPENSEARCH_ENABLED" => {version: ["A"]},
221
+ "DD_TRACE_OPENSEARCH_PEER_SERVICE" => {version: ["A"]},
222
+ "DD_TRACE_OPENSEARCH_RESOURCE_PATTERN" => {version: ["A"]},
223
+ "DD_TRACE_OPENSEARCH_SERVICE_NAME" => {version: ["A"]},
224
+ "DD_TRACE_PEER_SERVICE_DEFAULTS_ENABLED" => {version: ["A"]},
225
+ "DD_TRACE_PEER_SERVICE_MAPPING" => {version: ["A"]},
226
+ "DD_TRACE_PG_ANALYTICS_ENABLED" => {version: ["A"]},
227
+ "DD_TRACE_PG_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
228
+ "DD_TRACE_PG_ENABLED" => {version: ["A"]},
229
+ "DD_TRACE_PG_PEER_SERVICE" => {version: ["A"]},
230
+ "DD_TRACE_PG_SERVICE_NAME" => {version: ["A"]},
231
+ "DD_TRACE_PRESTO_ANALYTICS_ENABLED" => {version: ["A"]},
232
+ "DD_TRACE_PRESTO_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
233
+ "DD_TRACE_PRESTO_ENABLED" => {version: ["A"]},
234
+ "DD_TRACE_PRESTO_PEER_SERVICE" => {version: ["A"]},
235
+ "DD_TRACE_PRESTO_SERVICE_NAME" => {version: ["A"]},
236
+ "DD_TRACE_PROPAGATION_EXTRACT_FIRST" => {version: ["A"]},
237
+ "DD_TRACE_PROPAGATION_STYLE" => {version: ["B"]},
238
+ "DD_TRACE_PROPAGATION_STYLE_EXTRACT" => {version: ["A"]},
239
+ "DD_TRACE_PROPAGATION_STYLE_INJECT" => {version: ["A"]},
240
+ "DD_TRACE_QUE_ANALYTICS_ENABLED" => {version: ["A"]},
241
+ "DD_TRACE_QUE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
242
+ "DD_TRACE_QUE_ENABLED" => {version: ["A"]},
243
+ "DD_TRACE_QUE_TAG_ARGS_ENABLED" => {version: ["A"]},
244
+ "DD_TRACE_QUE_TAG_DATA_ENABLED" => {version: ["A"]},
245
+ "DD_TRACE_RACECAR_ANALYTICS_ENABLED" => {version: ["A"]},
246
+ "DD_TRACE_RACECAR_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
247
+ "DD_TRACE_RACECAR_ENABLED" => {version: ["A"]},
248
+ "DD_TRACE_RACK_ANALYTICS_ENABLED" => {version: ["A"]},
249
+ "DD_TRACE_RACK_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
250
+ "DD_TRACE_RACK_ENABLED" => {version: ["A"]},
251
+ "DD_TRACE_RAILS_ANALYTICS_ENABLED" => {version: ["A"]},
252
+ "DD_TRACE_RAILS_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
253
+ "DD_TRACE_RAILS_ENABLED" => {version: ["A"]},
254
+ "DD_TRACE_RAKE_ANALYTICS_ENABLED" => {version: ["A"]},
255
+ "DD_TRACE_RAKE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
256
+ "DD_TRACE_RAKE_ENABLED" => {version: ["A"]},
257
+ "DD_TRACE_RATE_LIMIT" => {version: ["A"]},
258
+ "DD_TRACE_REDIS_ANALYTICS_ENABLED" => {version: ["A"]},
259
+ "DD_TRACE_REDIS_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
260
+ "DD_TRACE_REDIS_ENABLED" => {version: ["A"]},
261
+ "DD_TRACE_REDIS_PEER_SERVICE" => {version: ["A"]},
262
+ "DD_TRACE_REDIS_SERVICE_NAME" => {version: ["A"]},
263
+ "DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED" => {version: ["A"]},
264
+ "DD_TRACE_REPORT_HOSTNAME" => {version: ["A"]},
265
+ "DD_TRACE_RESQUE_ANALYTICS_ENABLED" => {version: ["A"]},
266
+ "DD_TRACE_RESQUE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
267
+ "DD_TRACE_RESQUE_ENABLED" => {version: ["A"]},
268
+ "DD_TRACE_REST_CLIENT_ANALYTICS_ENABLED" => {version: ["A"]},
269
+ "DD_TRACE_REST_CLIENT_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
270
+ "DD_TRACE_REST_CLIENT_ENABLED" => {version: ["A"]},
271
+ "DD_TRACE_REST_CLIENT_PEER_SERVICE" => {version: ["A"]},
272
+ "DD_TRACE_REST_CLIENT_SERVICE_NAME" => {version: ["A"]},
273
+ "DD_TRACE_RODA_ENABLED" => {version: ["A"]},
274
+ "DD_TRACE_SAMPLE_RATE" => {version: ["B"]},
275
+ "DD_TRACE_SAMPLING_RULES" => {version: ["A"]},
276
+ "DD_TRACE_SEMANTIC_LOGGER_ENABLED" => {version: ["A"]},
277
+ "DD_TRACE_SEQUEL_ANALYTICS_ENABLED" => {version: ["A"]},
278
+ "DD_TRACE_SEQUEL_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
279
+ "DD_TRACE_SEQUEL_ENABLED" => {version: ["A"]},
280
+ "DD_TRACE_SHORYUKEN_ANALYTICS_ENABLED" => {version: ["A"]},
281
+ "DD_TRACE_SHORYUKEN_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
282
+ "DD_TRACE_SHORYUKEN_ENABLED" => {version: ["A"]},
283
+ "DD_TRACE_SIDEKIQ_ANALYTICS_ENABLED" => {version: ["A"]},
284
+ "DD_TRACE_SIDEKIQ_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
285
+ "DD_TRACE_SIDEKIQ_ENABLED" => {version: ["A"]},
286
+ "DD_TRACE_SINATRA_ANALYTICS_ENABLED" => {version: ["A"]},
287
+ "DD_TRACE_SINATRA_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
288
+ "DD_TRACE_SINATRA_ENABLED" => {version: ["A"]},
289
+ "DD_TRACE_SNEAKERS_ANALYTICS_ENABLED" => {version: ["A"]},
290
+ "DD_TRACE_SNEAKERS_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
291
+ "DD_TRACE_SNEAKERS_ENABLED" => {version: ["A"]},
292
+ "DD_TRACE_STARTUP_LOGS" => {version: ["A"]},
293
+ "DD_TRACE_STRIPE_ANALYTICS_ENABLED" => {version: ["A"]},
294
+ "DD_TRACE_STRIPE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
295
+ "DD_TRACE_STRIPE_ENABLED" => {version: ["A"]},
296
+ "DD_TRACE_SUCKER_PUNCH_ANALYTICS_ENABLED" => {version: ["A"]},
297
+ "DD_TRACE_SUCKER_PUNCH_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
298
+ "DD_TRACE_SUCKER_PUNCH_ENABLED" => {version: ["A"]},
299
+ "DD_TRACE_TEST_MODE_ENABLED" => {version: ["A"]},
300
+ "DD_TRACE_TRILOGY_ANALYTICS_ENABLED" => {version: ["A"]},
301
+ "DD_TRACE_TRILOGY_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
302
+ "DD_TRACE_TRILOGY_ENABLED" => {version: ["A"]},
303
+ "DD_TRACE_TRILOGY_PEER_SERVICE" => {version: ["A"]},
304
+ "DD_TRACE_TRILOGY_SERVICE_NAME" => {version: ["A"]},
305
+ "DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH" => {version: ["A"]},
306
+ "DD_VERSION" => {version: ["A"]},
307
+ "OTEL_TRACES_SAMPLER_ARG" => {version: ["A"]}}.freeze
308
+
309
+ ALIASES =
310
+ {"DD_DISABLE_DATADOG_RAILS" => ["DISABLE_DATADOG_RAILS"],
311
+ "DD_PROFILING_GVL_ENABLED" => ["DD_PROFILING_PREVIEW_GVL_ENABLED"],
312
+ "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED" => ["DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED"],
313
+ "DD_SERVICE" => ["OTEL_SERVICE_NAME"],
314
+ "DD_TAGS" => ["OTEL_RESOURCE_ATTRIBUTES"],
315
+ "DD_TRACE_DEBUG" => ["OTEL_LOG_LEVEL"],
316
+ "DD_TRACE_ENABLED" => ["OTEL_TRACES_EXPORTER"],
317
+ "DD_TRACE_PROPAGATION_STYLE" => ["OTEL_PROPAGATORS"],
318
+ "DD_TRACE_SAMPLE_RATE" => ["OTEL_TRACES_SAMPLER"]}.freeze
319
+
320
+ DEPRECATIONS =
321
+ {"DD_PROFILING_PREVIEW_GVL_ENABLED" => "(This doesn't need a deprecation message since there's an alias for it)"}.freeze
322
+
323
+ ALIAS_TO_CANONICAL =
324
+ {"DD_PROFILING_PREVIEW_GVL_ENABLED" => "DD_PROFILING_GVL_ENABLED",
325
+ "DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED" => "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED",
326
+ "DISABLE_DATADOG_RAILS" => "DD_DISABLE_DATADOG_RAILS",
327
+ "OTEL_LOG_LEVEL" => "DD_TRACE_DEBUG",
328
+ "OTEL_PROPAGATORS" => "DD_TRACE_PROPAGATION_STYLE",
329
+ "OTEL_RESOURCE_ATTRIBUTES" => "DD_TAGS",
330
+ "OTEL_SERVICE_NAME" => "DD_SERVICE",
331
+ "OTEL_TRACES_EXPORTER" => "DD_TRACE_ENABLED",
332
+ "OTEL_TRACES_SAMPLER" => "DD_TRACE_SAMPLE_RATE"}.freeze
333
+ end
334
+ end
335
+ end
@@ -295,7 +295,7 @@ module Datadog
295
295
  # such as reading stable config. In this case we cannot access configuration.
296
296
 
297
297
  @temp_config_logger ||= begin
298
- debug_env_value = ENV[Ext::Diagnostics::ENV_DEBUG_ENABLED]&.strip&.downcase
298
+ debug_env_value = DATADOG_ENV[Ext::Diagnostics::ENV_DEBUG_ENABLED]&.strip&.downcase
299
299
  debug_value = debug_env_value == 'true' || debug_env_value == '1'
300
300
 
301
301
  logger = Core::Logger.new($stdout)
@@ -14,10 +14,10 @@ module Datadog
14
14
  # @yieldreturn [String] a String with the lazily evaluated deprecation message.
15
15
  # @param [Boolean] disallowed_next_major whether this deprecation will be enforced in the next major release.
16
16
  # @param [Object] key A unique key for the deprecation. Only the first message with the same key will be logged.
17
- def log_deprecation(disallowed_next_major: true, key: nil)
17
+ def log_deprecation(disallowed_next_major: true, key: nil, logger: Datadog.logger)
18
18
  return unless log_deprecation?(key)
19
19
 
20
- Datadog.logger.warn do
20
+ logger.warn do
21
21
  message = yield
22
22
  message += ' This will be enforced in the next major release.' if disallowed_next_major
23
23
  message
@@ -18,10 +18,8 @@ module Datadog
18
18
  ENV_API_KEY = 'DD_API_KEY'
19
19
  ENV_ENVIRONMENT = 'DD_ENV'
20
20
  ENV_SERVICE = 'DD_SERVICE'
21
- ENV_OTEL_SERVICE = 'OTEL_SERVICE_NAME'
22
21
  ENV_SITE = 'DD_SITE'
23
22
  ENV_TAGS = 'DD_TAGS'
24
- ENV_OTEL_RESOURCE_ATTRIBUTES = 'OTEL_RESOURCE_ATTRIBUTES'
25
23
  ENV_VERSION = 'DD_VERSION'
26
24
  FALLBACK_SERVICE_NAME =
27
25
  begin
@@ -12,13 +12,13 @@ module Datadog
12
12
  def self.git_repository_url
13
13
  return @git_repository_url if defined?(@git_repository_url)
14
14
 
15
- @git_repository_url = Utils::Url.filter_basic_auth(ENV[Datadog::Core::Git::Ext::ENV_REPOSITORY_URL])
15
+ @git_repository_url = Utils::Url.filter_basic_auth(DATADOG_ENV[Datadog::Core::Git::Ext::ENV_REPOSITORY_URL])
16
16
  end
17
17
 
18
18
  def self.git_commit_sha
19
19
  return @git_commit_sha if defined?(@git_commit_sha)
20
20
 
21
- @git_commit_sha = ENV[Datadog::Core::Git::Ext::ENV_COMMIT_SHA]
21
+ @git_commit_sha = DATADOG_ENV[Datadog::Core::Git::Ext::ENV_COMMIT_SHA]
22
22
  end
23
23
  end
24
24
  end
@@ -20,8 +20,8 @@ module Datadog
20
20
  # @return [default] if the environment value is not found
21
21
  def env_to_bool(var, default = nil, deprecation_warning: true)
22
22
  var = decode_array(var, deprecation_warning)
23
- if var && ENV.key?(var)
24
- value = ENV[var].to_s.strip
23
+ if var && DATADOG_ENV.key?(var)
24
+ value = DATADOG_ENV[var].to_s.strip
25
25
  value.downcase!
26
26
  value == 'true' || value == '1'
27
27
  else
@@ -34,7 +34,7 @@ module Datadog
34
34
  def decode_array(var, deprecation_warning)
35
35
  if var.is_a?(Array)
36
36
  var.find.with_index do |env_var, i|
37
- found = ENV.key?(env_var)
37
+ found = DATADOG_ENV.key?(env_var)
38
38
 
39
39
  # Check if we are using a non-preferred environment variable
40
40
  if deprecation_warning && found && i != 0
@@ -54,11 +54,11 @@ module Datadog
54
54
  end
55
55
 
56
56
  def default_hostname
57
- ENV.fetch(Configuration::Ext::Agent::ENV_DEFAULT_HOST, Ext::DEFAULT_HOST)
57
+ DATADOG_ENV.fetch(Configuration::Ext::Agent::ENV_DEFAULT_HOST, Ext::DEFAULT_HOST)
58
58
  end
59
59
 
60
60
  def default_port
61
- ENV.fetch(Configuration::Ext::Metrics::ENV_DEFAULT_PORT, Ext::DEFAULT_PORT).to_i
61
+ DATADOG_ENV.fetch(Configuration::Ext::Metrics::ENV_DEFAULT_PORT, Ext::DEFAULT_PORT).to_i
62
62
  end
63
63
 
64
64
  def default_statsd_client
@@ -2,11 +2,9 @@
2
2
 
3
3
  module Datadog
4
4
  module Core
5
- class ProcessDiscovery
5
+ module ProcessDiscovery
6
6
  class TracerMemfd
7
- attr_accessor :logger
8
-
9
- def shutdown!
7
+ def shutdown!(logger)
10
8
  ProcessDiscovery._native_close_tracer_memfd(self, logger)
11
9
  end
12
10
  end
@@ -2,34 +2,57 @@
2
2
 
3
3
  require 'datadog/core/process_discovery/tracer_memfd'
4
4
 
5
+ require_relative 'utils/at_fork_monkey_patch'
6
+ require_relative 'utils/only_once'
7
+
5
8
  module Datadog
6
9
  module Core
7
10
  # Class used to store tracer metadata in a native file descriptor.
8
- class ProcessDiscovery
9
- def self.get_and_store_metadata(settings, logger)
10
- if (libdatadog_api_failure = Datadog::Core::LIBDATADOG_API_FAILURE)
11
- logger.debug("Cannot enable process discovery: #{libdatadog_api_failure}")
12
- return
11
+ module ProcessDiscovery
12
+ ONLY_ONCE = Core::Utils::OnlyOnce.new
13
+
14
+ class << self
15
+ def publish(settings)
16
+ if (libdatadog_api_failure = Datadog::Core::LIBDATADOG_API_FAILURE)
17
+ Datadog.logger.debug { "Cannot enable process discovery: #{libdatadog_api_failure}" }
18
+ return
19
+ end
20
+
21
+ ONLY_ONCE.run { apply_at_fork_patch }
22
+
23
+ metadata = get_metadata(settings)
24
+
25
+ shutdown!
26
+ @file_descriptor = _native_store_tracer_metadata(Datadog.logger, **metadata)
13
27
  end
14
- metadata = get_metadata(settings)
15
- memfd = _native_store_tracer_metadata(logger, **metadata)
16
- memfd.logger = logger if memfd
17
- memfd
18
- end
19
28
 
20
- # According to the RFC, runtime_id, service_name, service_env, service_version are optional.
21
- # In the C method exposed by ddcommon, memfd_create replaces empty strings by None for these fields.
22
- private_class_method def self.get_metadata(settings)
23
- {
24
- schema_version: 1,
25
- runtime_id: Core::Environment::Identity.id,
26
- tracer_language: Core::Environment::Identity.lang,
27
- tracer_version: Core::Environment::Identity.gem_datadog_version_semver2,
28
- hostname: Core::Environment::Socket.hostname,
29
- service_name: settings.service || '',
30
- service_env: settings.env || '',
31
- service_version: settings.version || ''
32
- }
29
+ def shutdown!
30
+ @file_descriptor&.shutdown!(Datadog.logger)
31
+ @file_descriptor = nil
32
+ end
33
+
34
+ private
35
+
36
+ # According to the RFC, runtime_id, service_name, service_env, service_version are optional.
37
+ # In the C method exposed by ddcommon, memfd_create replaces empty strings by None for these fields.
38
+ def get_metadata(settings)
39
+ {
40
+ schema_version: 1,
41
+ runtime_id: Core::Environment::Identity.id,
42
+ tracer_language: Core::Environment::Identity.lang,
43
+ tracer_version: Core::Environment::Identity.gem_datadog_version_semver2,
44
+ hostname: Core::Environment::Socket.hostname,
45
+ service_name: settings.service || '',
46
+ service_env: settings.env || '',
47
+ service_version: settings.version || ''
48
+ }
49
+ end
50
+
51
+ def apply_at_fork_patch
52
+ # The runtime-id changes after a fork. We apply this patch to at_fork to ensure that the runtime-id is updated.
53
+ Utils::AtForkMonkeyPatch.apply!
54
+ Utils::AtForkMonkeyPatch.at_fork(:child) { publish(Datadog.configuration) }
55
+ end
33
56
  end
34
57
  end
35
58
  end
@@ -13,7 +13,6 @@ module Datadog
13
13
  # @public_api
14
14
  module Metrics
15
15
  ENV_ENABLED = 'DD_RUNTIME_METRICS_ENABLED'
16
- ENV_OTEL_METRICS_EXPORTER = 'OTEL_METRICS_EXPORTER'
17
16
 
18
17
  METRIC_CLASS_COUNT = 'runtime.ruby.class_count'
19
18
  METRIC_GC_PREFIX = 'runtime.ruby.gc'
@@ -100,7 +100,7 @@ module Datadog
100
100
  ),
101
101
 
102
102
  # Mix of env var, programmatic and default config, so we use unknown
103
- conf_value('DD_AGENT_TRANSPORT', agent_transport, seq_id, 'unknown'),
103
+ conf_value('DD_AGENT_TRANSPORT', agent_transport, seq_id, 'unknown'), # rubocop:disable CustomCops/EnvStringValidationCop
104
104
 
105
105
  # writer_options is defined as an option that has a Hash value.
106
106
  conf_value(
@@ -177,7 +177,7 @@ module Datadog
177
177
  list.push(
178
178
  conf_value('instrumentation_source', instrumentation_source, seq_id, 'code'),
179
179
  conf_value('DD_INJECT_FORCE', Core::Environment::VariableHelpers.env_to_bool('DD_INJECT_FORCE', false), seq_id, 'env_var'),
180
- conf_value('DD_INJECTION_ENABLED', ENV['DD_INJECTION_ENABLED'] || '', seq_id, 'env_var'),
180
+ conf_value('DD_INJECTION_ENABLED', DATADOG_ENV['DD_INJECTION_ENABLED'] || '', seq_id, 'env_var'),
181
181
  )
182
182
 
183
183
  # Add some more custom additional payload values here
data/lib/datadog/core.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'core/deprecations'
4
+ require_relative 'core/configuration/config_helper'
4
5
  require_relative 'core/extensions'
5
6
 
6
7
  # We must load core extensions to make certain global APIs
@@ -21,6 +22,7 @@ module Datadog
21
22
  end
22
23
  end
23
24
 
25
+ DATADOG_ENV = Core::Configuration::ConfigHelper.new
24
26
  extend Core::Extensions
25
27
 
26
28
  # Add shutdown hook:
@@ -16,7 +16,8 @@ require_relative 'serializer'
16
16
  require_relative 'transport/http'
17
17
  require_relative 'utils'
18
18
 
19
- if %w[1 true yes].include?(ENV['DD_DYNAMIC_INSTRUMENTATION_ENABLED']) # steep:ignore
19
+ if %w[1 true yes].include?(Datadog::DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_ENABLED']) # steep:ignore
20
+
20
21
  # For initial release of Dynamic Instrumentation, activate code tracking
21
22
  # only if DI is explicitly requested in the environment.
22
23
  # Code tracking is required for line probes to work; see the comments
@@ -33,8 +34,8 @@ require_relative 'contrib'
33
34
 
34
35
  Datadog::DI::Contrib.load_now_or_later
35
36
 
36
- if %w[1 true yes].include?(ENV['DD_DYNAMIC_INSTRUMENTATION_ENABLED']) # steep:ignore
37
- if ENV['DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE']
37
+ if %w[1 true yes].include?(Datadog::DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_ENABLED']) # steep:ignore
38
+ if Datadog::DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE']
38
39
  require_relative 'probe_file_loader'
39
40
  Datadog::DI::ProbeFileLoader.load_now_or_later
40
41
  end
@@ -20,7 +20,7 @@ module Datadog
20
20
  module_function def load_now
21
21
  should_propagate = false
22
22
 
23
- probe_file_path = ENV['DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE']
23
+ probe_file_path = DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE']
24
24
  if probe_file_path.nil? || probe_file_path.empty?
25
25
  return
26
26
  end
@@ -195,7 +195,7 @@ module Datadog
195
195
  def evaluate_template(template, **vars)
196
196
  message = template.dup
197
197
  vars.each do |key, value|
198
- message.gsub!("{@#{key}}", value.to_s)
198
+ message.gsub!("{@#{key}}") { value.to_s }
199
199
  end
200
200
  message
201
201
  end
@@ -19,7 +19,7 @@ module Datadog
19
19
  # Ensure Datadog-configure propagation styles have are applied when configured.
20
20
  #
21
21
  # DEV: Support configuring propagation through the environment variable
22
- # DEV: `OTEL_PROPAGATORS`, similar to `DD_TRACE_PROPAGATION*`?
22
+ # DEV: `OTEL_PROPAGATORS`, alias to `DD_TRACE_PROPAGATION_STYLE`
23
23
  def configure_propagation
24
24
  @propagators = [Propagator.new(Tracing::Contrib::HTTP)]
25
25
  super
@@ -146,7 +146,7 @@ module Datadog
146
146
  return @gc_tuning_info if defined?(@gc_tuning_info)
147
147
 
148
148
  @gc_tuning_info = RUBY_GC_TUNING_ENV_VARS.each_with_object({}) do |var, hash|
149
- current_value = ENV[var]
149
+ current_value = DATADOG_ENV[var]
150
150
  hash[var.to_sym] = current_value if current_value
151
151
  end.freeze
152
152
  end