datadog 2.20.0 → 2.26.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 (310) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +212 -1
  3. data/README.md +0 -1
  4. data/ext/LIBDATADOG_DEVELOPMENT.md +3 -0
  5. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +93 -23
  6. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +1 -1
  7. data/ext/datadog_profiling_native_extension/collectors_stack.c +21 -5
  8. data/ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c +239 -0
  9. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +1 -1
  10. data/ext/datadog_profiling_native_extension/extconf.rb +9 -4
  11. data/ext/datadog_profiling_native_extension/heap_recorder.c +1 -1
  12. data/ext/datadog_profiling_native_extension/http_transport.c +1 -0
  13. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +12 -0
  14. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +4 -0
  15. data/ext/datadog_profiling_native_extension/profiling.c +2 -0
  16. data/ext/libdatadog_api/datadog_ruby_common.h +1 -1
  17. data/ext/libdatadog_api/ddsketch.c +106 -0
  18. data/ext/libdatadog_api/feature_flags.c +554 -0
  19. data/ext/libdatadog_api/feature_flags.h +5 -0
  20. data/ext/libdatadog_api/init.c +5 -0
  21. data/ext/libdatadog_api/library_config.c +34 -25
  22. data/ext/libdatadog_api/process_discovery.c +24 -18
  23. data/ext/libdatadog_extconf_helpers.rb +1 -1
  24. data/lib/datadog/ai_guard/api_client.rb +82 -0
  25. data/lib/datadog/ai_guard/component.rb +42 -0
  26. data/lib/datadog/ai_guard/configuration/ext.rb +17 -0
  27. data/lib/datadog/ai_guard/configuration/settings.rb +98 -0
  28. data/lib/datadog/ai_guard/configuration.rb +11 -0
  29. data/lib/datadog/ai_guard/evaluation/message.rb +25 -0
  30. data/lib/datadog/ai_guard/evaluation/no_op_result.rb +34 -0
  31. data/lib/datadog/ai_guard/evaluation/request.rb +81 -0
  32. data/lib/datadog/ai_guard/evaluation/result.rb +43 -0
  33. data/lib/datadog/ai_guard/evaluation/tool_call.rb +18 -0
  34. data/lib/datadog/ai_guard/evaluation.rb +72 -0
  35. data/lib/datadog/ai_guard/ext.rb +16 -0
  36. data/lib/datadog/ai_guard.rb +153 -0
  37. data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +26 -0
  38. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +59 -0
  39. data/lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb +29 -0
  40. data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +26 -0
  41. data/lib/datadog/appsec/api_security/endpoint_collection.rb +10 -0
  42. data/lib/datadog/appsec/api_security/route_extractor.rb +26 -5
  43. data/lib/datadog/appsec/api_security/sampler.rb +7 -4
  44. data/lib/datadog/appsec/assets/blocked.html +8 -0
  45. data/lib/datadog/appsec/assets/blocked.json +1 -1
  46. data/lib/datadog/appsec/assets/blocked.text +3 -1
  47. data/lib/datadog/appsec/assets/waf_rules/README.md +30 -36
  48. data/lib/datadog/appsec/assets/waf_rules/recommended.json +359 -4
  49. data/lib/datadog/appsec/assets/waf_rules/strict.json +43 -2
  50. data/lib/datadog/appsec/assets.rb +1 -1
  51. data/lib/datadog/appsec/autoload.rb +1 -1
  52. data/lib/datadog/appsec/compressed_json.rb +1 -1
  53. data/lib/datadog/appsec/configuration/settings.rb +9 -0
  54. data/lib/datadog/appsec/context.rb +2 -1
  55. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +3 -1
  56. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +3 -2
  57. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +3 -1
  58. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +3 -1
  59. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +9 -4
  60. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +5 -1
  61. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +7 -2
  62. data/lib/datadog/appsec/contrib/rails/patcher.rb +30 -0
  63. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +3 -1
  64. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +10 -4
  65. data/lib/datadog/appsec/event.rb +12 -14
  66. data/lib/datadog/appsec/metrics/collector.rb +19 -3
  67. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +2 -1
  68. data/lib/datadog/appsec/monitor/gateway/watcher.rb +4 -4
  69. data/lib/datadog/appsec/remote.rb +34 -25
  70. data/lib/datadog/appsec/response.rb +18 -4
  71. data/lib/datadog/appsec/security_engine/engine.rb +3 -3
  72. data/lib/datadog/appsec/security_engine/result.rb +29 -9
  73. data/lib/datadog/appsec/security_engine/runner.rb +19 -9
  74. data/lib/datadog/appsec/security_event.rb +5 -7
  75. data/lib/datadog/core/configuration/agent_settings_resolver.rb +4 -4
  76. data/lib/datadog/core/configuration/components.rb +59 -11
  77. data/lib/datadog/core/configuration/config_helper.rb +100 -0
  78. data/lib/datadog/core/configuration/deprecations.rb +36 -0
  79. data/lib/datadog/core/configuration/ext.rb +0 -1
  80. data/lib/datadog/core/configuration/option.rb +38 -43
  81. data/lib/datadog/core/configuration/option_definition.rb +4 -11
  82. data/lib/datadog/core/configuration/options.rb +9 -10
  83. data/lib/datadog/core/configuration/settings.rb +38 -9
  84. data/lib/datadog/core/configuration/stable_config.rb +10 -0
  85. data/lib/datadog/core/configuration/supported_configurations.rb +373 -0
  86. data/lib/datadog/core/configuration.rb +2 -2
  87. data/lib/datadog/core/ddsketch.rb +19 -0
  88. data/lib/datadog/core/deprecations.rb +2 -2
  89. data/lib/datadog/core/environment/cgroup.rb +52 -25
  90. data/lib/datadog/core/environment/container.rb +140 -46
  91. data/lib/datadog/core/environment/ext.rb +7 -2
  92. data/lib/datadog/core/environment/git.rb +2 -2
  93. data/lib/datadog/core/environment/process.rb +87 -0
  94. data/lib/datadog/core/environment/variable_helpers.rb +3 -3
  95. data/lib/datadog/core/environment/yjit.rb +2 -1
  96. data/lib/datadog/core/error.rb +6 -6
  97. data/lib/datadog/core/feature_flags.rb +61 -0
  98. data/lib/datadog/core/metrics/client.rb +2 -2
  99. data/lib/datadog/core/pin.rb +8 -8
  100. data/lib/datadog/core/process_discovery/tracer_memfd.rb +2 -4
  101. data/lib/datadog/core/process_discovery.rb +48 -23
  102. data/lib/datadog/core/rate_limiter.rb +9 -1
  103. data/lib/datadog/core/remote/client/capabilities.rb +7 -0
  104. data/lib/datadog/core/remote/client.rb +14 -6
  105. data/lib/datadog/core/remote/component.rb +10 -10
  106. data/lib/datadog/core/remote/configuration/content.rb +15 -2
  107. data/lib/datadog/core/remote/configuration/digest.rb +14 -7
  108. data/lib/datadog/core/remote/configuration/repository.rb +1 -1
  109. data/lib/datadog/core/remote/configuration/target.rb +13 -6
  110. data/lib/datadog/core/remote/transport/config.rb +4 -25
  111. data/lib/datadog/core/remote/transport/http/config.rb +10 -50
  112. data/lib/datadog/core/remote/transport/http/negotiation.rb +14 -44
  113. data/lib/datadog/core/remote/transport/http.rb +15 -24
  114. data/lib/datadog/core/remote/transport/negotiation.rb +8 -33
  115. data/lib/datadog/core/remote/worker.rb +25 -37
  116. data/lib/datadog/core/runtime/ext.rb +0 -1
  117. data/lib/datadog/core/runtime/metrics.rb +11 -1
  118. data/lib/datadog/core/semaphore.rb +1 -4
  119. data/lib/datadog/core/tag_builder.rb +0 -4
  120. data/lib/datadog/core/tag_normalizer.rb +84 -0
  121. data/lib/datadog/core/telemetry/component.rb +69 -15
  122. data/lib/datadog/core/telemetry/emitter.rb +6 -6
  123. data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +30 -0
  124. data/lib/datadog/core/telemetry/event/app_started.rb +89 -51
  125. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +27 -4
  126. data/lib/datadog/core/telemetry/event.rb +1 -0
  127. data/lib/datadog/core/telemetry/logger.rb +2 -2
  128. data/lib/datadog/core/telemetry/logging.rb +2 -8
  129. data/lib/datadog/core/telemetry/metrics_manager.rb +9 -0
  130. data/lib/datadog/core/telemetry/request.rb +17 -3
  131. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +3 -34
  132. data/lib/datadog/core/telemetry/transport/http.rb +21 -16
  133. data/lib/datadog/core/telemetry/transport/telemetry.rb +3 -11
  134. data/lib/datadog/core/telemetry/worker.rb +88 -32
  135. data/lib/datadog/core/transport/ext.rb +2 -0
  136. data/lib/datadog/core/transport/http/api/endpoint.rb +9 -4
  137. data/lib/datadog/core/transport/http/api/instance.rb +4 -21
  138. data/lib/datadog/core/transport/http/builder.rb +9 -5
  139. data/lib/datadog/core/transport/http/client.rb +80 -0
  140. data/lib/datadog/core/transport/http.rb +22 -19
  141. data/lib/datadog/core/transport/response.rb +15 -1
  142. data/lib/datadog/core/transport/transport.rb +90 -0
  143. data/lib/datadog/core/utils/array.rb +29 -0
  144. data/lib/datadog/{appsec/api_security → core/utils}/lru_cache.rb +10 -21
  145. data/lib/datadog/core/utils/network.rb +22 -1
  146. data/lib/datadog/core/utils/only_once_successful.rb +8 -2
  147. data/lib/datadog/core/utils/safe_dup.rb +2 -2
  148. data/lib/datadog/core/utils/sequence.rb +2 -0
  149. data/lib/datadog/core/utils/time.rb +1 -1
  150. data/lib/datadog/core/utils.rb +2 -0
  151. data/lib/datadog/core/workers/async.rb +10 -1
  152. data/lib/datadog/core/workers/interval_loop.rb +44 -3
  153. data/lib/datadog/core/workers/polling.rb +2 -0
  154. data/lib/datadog/core/workers/queue.rb +100 -1
  155. data/lib/datadog/core.rb +2 -0
  156. data/lib/datadog/data_streams/configuration/settings.rb +49 -0
  157. data/lib/datadog/data_streams/configuration.rb +11 -0
  158. data/lib/datadog/data_streams/ext.rb +11 -0
  159. data/lib/datadog/data_streams/extensions.rb +16 -0
  160. data/lib/datadog/data_streams/pathway_context.rb +169 -0
  161. data/lib/datadog/data_streams/processor.rb +509 -0
  162. data/lib/datadog/data_streams/transport/http/stats.rb +52 -0
  163. data/lib/datadog/data_streams/transport/http.rb +40 -0
  164. data/lib/datadog/data_streams/transport/stats.rb +46 -0
  165. data/lib/datadog/data_streams.rb +100 -0
  166. data/lib/datadog/di/boot.rb +7 -3
  167. data/lib/datadog/di/component.rb +14 -16
  168. data/lib/datadog/di/context.rb +70 -0
  169. data/lib/datadog/di/contrib/active_record.rb +30 -5
  170. data/lib/datadog/di/el/compiler.rb +168 -0
  171. data/lib/datadog/di/el/evaluator.rb +159 -0
  172. data/lib/datadog/di/el/expression.rb +42 -0
  173. data/lib/datadog/di/el.rb +5 -0
  174. data/lib/datadog/di/error.rb +34 -0
  175. data/lib/datadog/di/instrumenter.rb +189 -55
  176. data/lib/datadog/di/logger.rb +2 -2
  177. data/lib/datadog/di/probe.rb +55 -15
  178. data/lib/datadog/di/probe_builder.rb +41 -2
  179. data/lib/datadog/di/probe_file_loader/railtie.rb +1 -1
  180. data/lib/datadog/di/probe_file_loader.rb +1 -1
  181. data/lib/datadog/di/probe_manager.rb +50 -35
  182. data/lib/datadog/di/probe_notification_builder.rb +121 -70
  183. data/lib/datadog/di/probe_notifier_worker.rb +5 -5
  184. data/lib/datadog/di/proc_responder.rb +32 -0
  185. data/lib/datadog/di/remote.rb +89 -84
  186. data/lib/datadog/di/serializer.rb +151 -7
  187. data/lib/datadog/di/transport/diagnostics.rb +8 -36
  188. data/lib/datadog/di/transport/http/diagnostics.rb +1 -33
  189. data/lib/datadog/di/transport/http/input.rb +1 -33
  190. data/lib/datadog/di/transport/http.rb +32 -17
  191. data/lib/datadog/di/transport/input.rb +67 -34
  192. data/lib/datadog/di.rb +61 -5
  193. data/lib/datadog/error_tracking/filters.rb +2 -2
  194. data/lib/datadog/kit/appsec/events/v2.rb +2 -3
  195. data/lib/datadog/open_feature/component.rb +60 -0
  196. data/lib/datadog/open_feature/configuration.rb +27 -0
  197. data/lib/datadog/open_feature/evaluation_engine.rb +70 -0
  198. data/lib/datadog/open_feature/exposures/batch_builder.rb +32 -0
  199. data/lib/datadog/open_feature/exposures/buffer.rb +43 -0
  200. data/lib/datadog/open_feature/exposures/deduplicator.rb +30 -0
  201. data/lib/datadog/open_feature/exposures/event.rb +60 -0
  202. data/lib/datadog/open_feature/exposures/reporter.rb +40 -0
  203. data/lib/datadog/open_feature/exposures/worker.rb +116 -0
  204. data/lib/datadog/open_feature/ext.rb +14 -0
  205. data/lib/datadog/open_feature/native_evaluator.rb +38 -0
  206. data/lib/datadog/open_feature/noop_evaluator.rb +26 -0
  207. data/lib/datadog/open_feature/provider.rb +141 -0
  208. data/lib/datadog/open_feature/remote.rb +67 -0
  209. data/lib/datadog/open_feature/resolution_details.rb +35 -0
  210. data/lib/datadog/open_feature/transport.rb +70 -0
  211. data/lib/datadog/open_feature.rb +19 -0
  212. data/lib/datadog/opentelemetry/api/baggage.rb +1 -1
  213. data/lib/datadog/opentelemetry/configuration/settings.rb +159 -0
  214. data/lib/datadog/opentelemetry/metrics.rb +117 -0
  215. data/lib/datadog/opentelemetry/sdk/configurator.rb +26 -2
  216. data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +35 -0
  217. data/lib/datadog/opentelemetry.rb +3 -0
  218. data/lib/datadog/profiling/collectors/code_provenance.rb +41 -7
  219. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +3 -2
  220. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -1
  221. data/lib/datadog/profiling/collectors/info.rb +6 -5
  222. data/lib/datadog/profiling/component.rb +12 -11
  223. data/lib/datadog/profiling/ext/dir_monkey_patches.rb +18 -0
  224. data/lib/datadog/profiling/ext.rb +2 -1
  225. data/lib/datadog/profiling/http_transport.rb +5 -2
  226. data/lib/datadog/profiling/profiler.rb +4 -0
  227. data/lib/datadog/profiling/tag_builder.rb +36 -3
  228. data/lib/datadog/profiling/tasks/exec.rb +2 -2
  229. data/lib/datadog/profiling.rb +1 -2
  230. data/lib/datadog/single_step_instrument.rb +1 -1
  231. data/lib/datadog/tracing/component.rb +6 -17
  232. data/lib/datadog/tracing/configuration/dynamic.rb +2 -2
  233. data/lib/datadog/tracing/configuration/ext.rb +9 -3
  234. data/lib/datadog/tracing/configuration/settings.rb +89 -10
  235. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +4 -4
  236. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -2
  237. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +21 -7
  238. data/lib/datadog/tracing/contrib/active_job/patcher.rb +5 -1
  239. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +4 -2
  240. data/lib/datadog/tracing/contrib/component.rb +2 -2
  241. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +4 -1
  242. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +11 -3
  243. data/lib/datadog/tracing/contrib/extensions.rb +10 -2
  244. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +11 -7
  245. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +7 -3
  246. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +7 -0
  247. data/lib/datadog/tracing/contrib/graphql/ext.rb +1 -0
  248. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +84 -43
  249. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +11 -3
  250. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +11 -3
  251. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +11 -3
  252. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +66 -0
  253. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +66 -0
  254. data/lib/datadog/tracing/contrib/kafka/patcher.rb +14 -0
  255. data/lib/datadog/tracing/contrib/karafka/framework.rb +30 -0
  256. data/lib/datadog/tracing/contrib/karafka/monitor.rb +11 -0
  257. data/lib/datadog/tracing/contrib/karafka/patcher.rb +35 -4
  258. data/lib/datadog/tracing/contrib/rack/middlewares.rb +59 -27
  259. data/lib/datadog/tracing/contrib/rack/request_queue.rb +1 -0
  260. data/lib/datadog/tracing/contrib/rack/route_inference.rb +53 -0
  261. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +7 -1
  262. data/lib/datadog/tracing/contrib/rails/ext.rb +2 -1
  263. data/lib/datadog/tracing/contrib/rails/integration.rb +1 -1
  264. data/lib/datadog/tracing/contrib/rails/middlewares.rb +2 -2
  265. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +4 -1
  266. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +3 -1
  267. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +3 -1
  268. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +1 -1
  269. data/lib/datadog/tracing/contrib/status_range_matcher.rb +9 -1
  270. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +3 -1
  271. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +27 -0
  272. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +48 -0
  273. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +17 -0
  274. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +43 -0
  275. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +46 -0
  276. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +49 -0
  277. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +50 -0
  278. data/lib/datadog/tracing/contrib/waterdrop.rb +41 -0
  279. data/lib/datadog/tracing/contrib.rb +1 -0
  280. data/lib/datadog/tracing/diagnostics/environment_logger.rb +1 -1
  281. data/lib/datadog/tracing/distributed/baggage.rb +3 -2
  282. data/lib/datadog/tracing/metadata/ext.rb +9 -1
  283. data/lib/datadog/tracing/remote.rb +1 -9
  284. data/lib/datadog/tracing/sampling/priority_sampler.rb +3 -1
  285. data/lib/datadog/tracing/span.rb +1 -1
  286. data/lib/datadog/tracing/span_event.rb +2 -2
  287. data/lib/datadog/tracing/span_operation.rb +20 -9
  288. data/lib/datadog/tracing/trace_operation.rb +44 -6
  289. data/lib/datadog/tracing/tracer.rb +42 -16
  290. data/lib/datadog/tracing/transport/http/client.rb +12 -26
  291. data/lib/datadog/tracing/transport/http/traces.rb +2 -50
  292. data/lib/datadog/tracing/transport/http.rb +15 -9
  293. data/lib/datadog/tracing/transport/io/client.rb +1 -1
  294. data/lib/datadog/tracing/transport/trace_formatter.rb +11 -0
  295. data/lib/datadog/tracing/transport/traces.rb +9 -71
  296. data/lib/datadog/tracing/workers/trace_writer.rb +5 -0
  297. data/lib/datadog/tracing/writer.rb +1 -0
  298. data/lib/datadog/version.rb +2 -2
  299. data/lib/datadog.rb +3 -0
  300. metadata +110 -24
  301. data/ext/libdatadog_api/macos_development.md +0 -26
  302. data/lib/datadog/core/remote/transport/http/api.rb +0 -53
  303. data/lib/datadog/core/remote/transport/http/client.rb +0 -49
  304. data/lib/datadog/core/telemetry/transport/http/api.rb +0 -43
  305. data/lib/datadog/core/telemetry/transport/http/client.rb +0 -49
  306. data/lib/datadog/core/transport/http/api/spec.rb +0 -36
  307. data/lib/datadog/di/transport/http/api.rb +0 -42
  308. data/lib/datadog/di/transport/http/client.rb +0 -47
  309. data/lib/datadog/opentelemetry/api/baggage.rbs +0 -26
  310. data/lib/datadog/tracing/transport/http/api.rb +0 -44
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.20.0
4
+ version: 2.26.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-09-04 00:00:00.000000000 Z
11
+ date: 2026-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -30,48 +30,48 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.4'
33
+ version: '3.5'
34
34
  - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: 3.4.1
36
+ version: 3.5.1
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '3.4'
43
+ version: '3.5'
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 3.4.1
46
+ version: 3.5.1
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: libddwaf
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 1.24.1.1.0
53
+ version: 1.30.0.0.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 1.24.1.1.0
60
+ version: 1.30.0.0.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: libdatadog
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 18.1.0.1.0
67
+ version: 25.0.0.1.0
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 18.1.0.1.0
74
+ version: 25.0.0.1.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: logger
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +86,20 @@ dependencies:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: cgi
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
89
103
  description: |
90
104
  datadog is Datadog's client library for Ruby. It includes a suite of tools
91
105
  which provide visibility into the performance and security of Ruby applications,
@@ -107,6 +121,7 @@ files:
107
121
  - NOTICE
108
122
  - README.md
109
123
  - bin/ddprofrb
124
+ - ext/LIBDATADOG_DEVELOPMENT.md
110
125
  - ext/datadog_profiling_native_extension/NativeExtensionDesign.md
111
126
  - ext/datadog_profiling_native_extension/clock_id.h
112
127
  - ext/datadog_profiling_native_extension/clock_id_from_pthread.c
@@ -124,6 +139,7 @@ files:
124
139
  - ext/datadog_profiling_native_extension/collectors_stack.h
125
140
  - ext/datadog_profiling_native_extension/collectors_thread_context.c
126
141
  - ext/datadog_profiling_native_extension/collectors_thread_context.h
142
+ - ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c
127
143
  - ext/datadog_profiling_native_extension/datadog_ruby_common.c
128
144
  - ext/datadog_profiling_native_extension/datadog_ruby_common.h
129
145
  - ext/datadog_profiling_native_extension/encoded_profile.c
@@ -155,21 +171,40 @@ files:
155
171
  - ext/libdatadog_api/crashtracker.h
156
172
  - ext/libdatadog_api/datadog_ruby_common.c
157
173
  - ext/libdatadog_api/datadog_ruby_common.h
174
+ - ext/libdatadog_api/ddsketch.c
158
175
  - ext/libdatadog_api/extconf.rb
176
+ - ext/libdatadog_api/feature_flags.c
177
+ - ext/libdatadog_api/feature_flags.h
159
178
  - ext/libdatadog_api/init.c
160
179
  - ext/libdatadog_api/library_config.c
161
180
  - ext/libdatadog_api/library_config.h
162
- - ext/libdatadog_api/macos_development.md
163
181
  - ext/libdatadog_api/process_discovery.c
164
182
  - ext/libdatadog_api/process_discovery.h
165
183
  - ext/libdatadog_extconf_helpers.rb
166
184
  - lib/datadog.rb
185
+ - lib/datadog/ai_guard.rb
186
+ - lib/datadog/ai_guard/api_client.rb
187
+ - lib/datadog/ai_guard/component.rb
188
+ - lib/datadog/ai_guard/configuration.rb
189
+ - lib/datadog/ai_guard/configuration/ext.rb
190
+ - lib/datadog/ai_guard/configuration/settings.rb
191
+ - lib/datadog/ai_guard/evaluation.rb
192
+ - lib/datadog/ai_guard/evaluation/message.rb
193
+ - lib/datadog/ai_guard/evaluation/no_op_result.rb
194
+ - lib/datadog/ai_guard/evaluation/request.rb
195
+ - lib/datadog/ai_guard/evaluation/result.rb
196
+ - lib/datadog/ai_guard/evaluation/tool_call.rb
197
+ - lib/datadog/ai_guard/ext.rb
167
198
  - lib/datadog/appsec.rb
168
199
  - lib/datadog/appsec/actions_handler.rb
169
200
  - lib/datadog/appsec/actions_handler/serializable_backtrace.rb
170
201
  - lib/datadog/appsec/anonymizer.rb
171
202
  - lib/datadog/appsec/api_security.rb
172
- - lib/datadog/appsec/api_security/lru_cache.rb
203
+ - lib/datadog/appsec/api_security/endpoint_collection.rb
204
+ - lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb
205
+ - lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb
206
+ - lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb
207
+ - lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb
173
208
  - lib/datadog/appsec/api_security/route_extractor.rb
174
209
  - lib/datadog/appsec/api_security/sampler.rb
175
210
  - lib/datadog/appsec/assets.rb
@@ -286,15 +321,19 @@ files:
286
321
  - lib/datadog/core/configuration/base.rb
287
322
  - lib/datadog/core/configuration/components.rb
288
323
  - lib/datadog/core/configuration/components_state.rb
324
+ - lib/datadog/core/configuration/config_helper.rb
325
+ - lib/datadog/core/configuration/deprecations.rb
289
326
  - lib/datadog/core/configuration/ext.rb
290
327
  - lib/datadog/core/configuration/option.rb
291
328
  - lib/datadog/core/configuration/option_definition.rb
292
329
  - lib/datadog/core/configuration/options.rb
293
330
  - lib/datadog/core/configuration/settings.rb
294
331
  - lib/datadog/core/configuration/stable_config.rb
332
+ - lib/datadog/core/configuration/supported_configurations.rb
295
333
  - lib/datadog/core/contrib/rails/utils.rb
296
334
  - lib/datadog/core/crashtracking/component.rb
297
335
  - lib/datadog/core/crashtracking/tag_builder.rb
336
+ - lib/datadog/core/ddsketch.rb
298
337
  - lib/datadog/core/deprecations.rb
299
338
  - lib/datadog/core/diagnostics/environment_logger.rb
300
339
  - lib/datadog/core/diagnostics/health.rb
@@ -309,6 +348,7 @@ files:
309
348
  - lib/datadog/core/environment/git.rb
310
349
  - lib/datadog/core/environment/identity.rb
311
350
  - lib/datadog/core/environment/platform.rb
351
+ - lib/datadog/core/environment/process.rb
312
352
  - lib/datadog/core/environment/socket.rb
313
353
  - lib/datadog/core/environment/thread_count.rb
314
354
  - lib/datadog/core/environment/variable_helpers.rb
@@ -316,6 +356,7 @@ files:
316
356
  - lib/datadog/core/environment/yjit.rb
317
357
  - lib/datadog/core/error.rb
318
358
  - lib/datadog/core/extensions.rb
359
+ - lib/datadog/core/feature_flags.rb
319
360
  - lib/datadog/core/git/ext.rb
320
361
  - lib/datadog/core/header_collection.rb
321
362
  - lib/datadog/core/logger.rb
@@ -347,8 +388,6 @@ files:
347
388
  - lib/datadog/core/remote/tie/tracing.rb
348
389
  - lib/datadog/core/remote/transport/config.rb
349
390
  - lib/datadog/core/remote/transport/http.rb
350
- - lib/datadog/core/remote/transport/http/api.rb
351
- - lib/datadog/core/remote/transport/http/client.rb
352
391
  - lib/datadog/core/remote/transport/http/config.rb
353
392
  - lib/datadog/core/remote/transport/http/negotiation.rb
354
393
  - lib/datadog/core/remote/transport/negotiation.rb
@@ -357,12 +396,14 @@ files:
357
396
  - lib/datadog/core/runtime/metrics.rb
358
397
  - lib/datadog/core/semaphore.rb
359
398
  - lib/datadog/core/tag_builder.rb
399
+ - lib/datadog/core/tag_normalizer.rb
360
400
  - lib/datadog/core/telemetry/component.rb
361
401
  - lib/datadog/core/telemetry/emitter.rb
362
402
  - lib/datadog/core/telemetry/event.rb
363
403
  - lib/datadog/core/telemetry/event/app_client_configuration_change.rb
364
404
  - lib/datadog/core/telemetry/event/app_closing.rb
365
405
  - lib/datadog/core/telemetry/event/app_dependencies_loaded.rb
406
+ - lib/datadog/core/telemetry/event/app_endpoints_loaded.rb
366
407
  - lib/datadog/core/telemetry/event/app_heartbeat.rb
367
408
  - lib/datadog/core/telemetry/event/app_integrations_change.rb
368
409
  - lib/datadog/core/telemetry/event/app_started.rb
@@ -381,8 +422,6 @@ files:
381
422
  - lib/datadog/core/telemetry/metrics_manager.rb
382
423
  - lib/datadog/core/telemetry/request.rb
383
424
  - lib/datadog/core/telemetry/transport/http.rb
384
- - lib/datadog/core/telemetry/transport/http/api.rb
385
- - lib/datadog/core/telemetry/transport/http/client.rb
386
425
  - lib/datadog/core/telemetry/transport/http/telemetry.rb
387
426
  - lib/datadog/core/telemetry/transport/telemetry.rb
388
427
  - lib/datadog/core/telemetry/worker.rb
@@ -396,19 +435,22 @@ files:
396
435
  - lib/datadog/core/transport/http/api/fallbacks.rb
397
436
  - lib/datadog/core/transport/http/api/instance.rb
398
437
  - lib/datadog/core/transport/http/api/map.rb
399
- - lib/datadog/core/transport/http/api/spec.rb
400
438
  - lib/datadog/core/transport/http/builder.rb
439
+ - lib/datadog/core/transport/http/client.rb
401
440
  - lib/datadog/core/transport/http/env.rb
402
441
  - lib/datadog/core/transport/http/response.rb
403
442
  - lib/datadog/core/transport/parcel.rb
404
443
  - lib/datadog/core/transport/request.rb
405
444
  - lib/datadog/core/transport/response.rb
445
+ - lib/datadog/core/transport/transport.rb
406
446
  - lib/datadog/core/utils.rb
447
+ - lib/datadog/core/utils/array.rb
407
448
  - lib/datadog/core/utils/at_fork_monkey_patch.rb
408
449
  - lib/datadog/core/utils/base64.rb
409
450
  - lib/datadog/core/utils/duration.rb
410
451
  - lib/datadog/core/utils/forking.rb
411
452
  - lib/datadog/core/utils/hash.rb
453
+ - lib/datadog/core/utils/lru_cache.rb
412
454
  - lib/datadog/core/utils/network.rb
413
455
  - lib/datadog/core/utils/only_once.rb
414
456
  - lib/datadog/core/utils/only_once_successful.rb
@@ -431,6 +473,16 @@ files:
431
473
  - lib/datadog/core/workers/polling.rb
432
474
  - lib/datadog/core/workers/queue.rb
433
475
  - lib/datadog/core/workers/runtime_metrics.rb
476
+ - lib/datadog/data_streams.rb
477
+ - lib/datadog/data_streams/configuration.rb
478
+ - lib/datadog/data_streams/configuration/settings.rb
479
+ - lib/datadog/data_streams/ext.rb
480
+ - lib/datadog/data_streams/extensions.rb
481
+ - lib/datadog/data_streams/pathway_context.rb
482
+ - lib/datadog/data_streams/processor.rb
483
+ - lib/datadog/data_streams/transport/http.rb
484
+ - lib/datadog/data_streams/transport/http/stats.rb
485
+ - lib/datadog/data_streams/transport/stats.rb
434
486
  - lib/datadog/di.rb
435
487
  - lib/datadog/di/base.rb
436
488
  - lib/datadog/di/boot.rb
@@ -438,9 +490,14 @@ files:
438
490
  - lib/datadog/di/component.rb
439
491
  - lib/datadog/di/configuration.rb
440
492
  - lib/datadog/di/configuration/settings.rb
493
+ - lib/datadog/di/context.rb
441
494
  - lib/datadog/di/contrib.rb
442
495
  - lib/datadog/di/contrib/active_record.rb
443
496
  - lib/datadog/di/contrib/railtie.rb
497
+ - lib/datadog/di/el.rb
498
+ - lib/datadog/di/el/compiler.rb
499
+ - lib/datadog/di/el/evaluator.rb
500
+ - lib/datadog/di/el/expression.rb
444
501
  - lib/datadog/di/error.rb
445
502
  - lib/datadog/di/extensions.rb
446
503
  - lib/datadog/di/instrumenter.rb
@@ -453,13 +510,12 @@ files:
453
510
  - lib/datadog/di/probe_manager.rb
454
511
  - lib/datadog/di/probe_notification_builder.rb
455
512
  - lib/datadog/di/probe_notifier_worker.rb
513
+ - lib/datadog/di/proc_responder.rb
456
514
  - lib/datadog/di/redactor.rb
457
515
  - lib/datadog/di/remote.rb
458
516
  - lib/datadog/di/serializer.rb
459
517
  - lib/datadog/di/transport/diagnostics.rb
460
518
  - lib/datadog/di/transport/http.rb
461
- - lib/datadog/di/transport/http/api.rb
462
- - lib/datadog/di/transport/http/client.rb
463
519
  - lib/datadog/di/transport/http/diagnostics.rb
464
520
  - lib/datadog/di/transport/http/input.rb
465
521
  - lib/datadog/di/transport/input.rb
@@ -477,13 +533,32 @@ files:
477
533
  - lib/datadog/kit/appsec/events/v2.rb
478
534
  - lib/datadog/kit/enable_core_dumps.rb
479
535
  - lib/datadog/kit/identity.rb
536
+ - lib/datadog/open_feature.rb
537
+ - lib/datadog/open_feature/component.rb
538
+ - lib/datadog/open_feature/configuration.rb
539
+ - lib/datadog/open_feature/evaluation_engine.rb
540
+ - lib/datadog/open_feature/exposures/batch_builder.rb
541
+ - lib/datadog/open_feature/exposures/buffer.rb
542
+ - lib/datadog/open_feature/exposures/deduplicator.rb
543
+ - lib/datadog/open_feature/exposures/event.rb
544
+ - lib/datadog/open_feature/exposures/reporter.rb
545
+ - lib/datadog/open_feature/exposures/worker.rb
546
+ - lib/datadog/open_feature/ext.rb
547
+ - lib/datadog/open_feature/native_evaluator.rb
548
+ - lib/datadog/open_feature/noop_evaluator.rb
549
+ - lib/datadog/open_feature/provider.rb
550
+ - lib/datadog/open_feature/remote.rb
551
+ - lib/datadog/open_feature/resolution_details.rb
552
+ - lib/datadog/open_feature/transport.rb
480
553
  - lib/datadog/opentelemetry.rb
481
554
  - lib/datadog/opentelemetry/api/baggage.rb
482
- - lib/datadog/opentelemetry/api/baggage.rbs
483
555
  - lib/datadog/opentelemetry/api/context.rb
484
556
  - lib/datadog/opentelemetry/api/trace/span.rb
557
+ - lib/datadog/opentelemetry/configuration/settings.rb
558
+ - lib/datadog/opentelemetry/metrics.rb
485
559
  - lib/datadog/opentelemetry/sdk/configurator.rb
486
560
  - lib/datadog/opentelemetry/sdk/id_generator.rb
561
+ - lib/datadog/opentelemetry/sdk/metrics_exporter.rb
487
562
  - lib/datadog/opentelemetry/sdk/propagator.rb
488
563
  - lib/datadog/opentelemetry/sdk/span_processor.rb
489
564
  - lib/datadog/opentelemetry/sdk/trace/span.rb
@@ -747,12 +822,15 @@ files:
747
822
  - lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb
748
823
  - lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb
749
824
  - lib/datadog/tracing/contrib/kafka/ext.rb
825
+ - lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb
826
+ - lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb
750
827
  - lib/datadog/tracing/contrib/kafka/integration.rb
751
828
  - lib/datadog/tracing/contrib/kafka/patcher.rb
752
829
  - lib/datadog/tracing/contrib/karafka.rb
753
830
  - lib/datadog/tracing/contrib/karafka/configuration/settings.rb
754
831
  - lib/datadog/tracing/contrib/karafka/distributed/propagation.rb
755
832
  - lib/datadog/tracing/contrib/karafka/ext.rb
833
+ - lib/datadog/tracing/contrib/karafka/framework.rb
756
834
  - lib/datadog/tracing/contrib/karafka/integration.rb
757
835
  - lib/datadog/tracing/contrib/karafka/monitor.rb
758
836
  - lib/datadog/tracing/contrib/karafka/patcher.rb
@@ -816,6 +894,7 @@ files:
816
894
  - lib/datadog/tracing/contrib/rack/middlewares.rb
817
895
  - lib/datadog/tracing/contrib/rack/patcher.rb
818
896
  - lib/datadog/tracing/contrib/rack/request_queue.rb
897
+ - lib/datadog/tracing/contrib/rack/route_inference.rb
819
898
  - lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb
820
899
  - lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb
821
900
  - lib/datadog/tracing/contrib/rails/configuration/settings.rb
@@ -927,6 +1006,14 @@ files:
927
1006
  - lib/datadog/tracing/contrib/utils/database.rb
928
1007
  - lib/datadog/tracing/contrib/utils/quantization/hash.rb
929
1008
  - lib/datadog/tracing/contrib/utils/quantization/http.rb
1009
+ - lib/datadog/tracing/contrib/waterdrop.rb
1010
+ - lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb
1011
+ - lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb
1012
+ - lib/datadog/tracing/contrib/waterdrop/ext.rb
1013
+ - lib/datadog/tracing/contrib/waterdrop/integration.rb
1014
+ - lib/datadog/tracing/contrib/waterdrop/middleware.rb
1015
+ - lib/datadog/tracing/contrib/waterdrop/patcher.rb
1016
+ - lib/datadog/tracing/contrib/waterdrop/producer.rb
930
1017
  - lib/datadog/tracing/correlation.rb
931
1018
  - lib/datadog/tracing/diagnostics/environment_logger.rb
932
1019
  - lib/datadog/tracing/diagnostics/ext.rb
@@ -981,7 +1068,6 @@ files:
981
1068
  - lib/datadog/tracing/trace_segment.rb
982
1069
  - lib/datadog/tracing/tracer.rb
983
1070
  - lib/datadog/tracing/transport/http.rb
984
- - lib/datadog/tracing/transport/http/api.rb
985
1071
  - lib/datadog/tracing/transport/http/client.rb
986
1072
  - lib/datadog/tracing/transport/http/statistics.rb
987
1073
  - lib/datadog/tracing/transport/http/traces.rb
@@ -1004,8 +1090,8 @@ licenses:
1004
1090
  - Apache-2.0
1005
1091
  metadata:
1006
1092
  allowed_push_host: https://rubygems.org
1007
- changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.20.0/CHANGELOG.md
1008
- source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.20.0
1093
+ changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.26.0/CHANGELOG.md
1094
+ source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.26.0
1009
1095
  post_install_message:
1010
1096
  rdoc_options: []
1011
1097
  require_paths:
@@ -1017,7 +1103,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1017
1103
  version: 2.5.0
1018
1104
  - - "<"
1019
1105
  - !ruby/object:Gem::Version
1020
- version: '3.5'
1106
+ version: '4.1'
1021
1107
  required_rubygems_version: !ruby/object:Gem::Requirement
1022
1108
  requirements:
1023
1109
  - - ">="
@@ -1,26 +0,0 @@
1
- # Developing on macOS
2
-
3
- As of this writing (August 2024), the libdatadog builds on rubygems.org only support Linux.
4
-
5
- We don't officially support using libdatadog for Ruby on other platforms yet, but it is possible to use it for local development on macOS.
6
- (**Note that you don't need these instructions if you develop inside docker.**)
7
-
8
- Here's how you can do so:
9
-
10
- 1. [Install rust](https://www.rust-lang.org/tools/install)
11
- 2. Install `cbindgen`: `cargo install cbindgen`
12
- 3. Clone [libdatadog](https://github.com/datadog/libdatadog)
13
- 4. Create a folder for building into based on your ruby platform:
14
-
15
- ```
16
- export DD_RUBY_PLATFORM=`ruby -e 'puts Gem::Platform.local.to_s'`
17
- mkdir -p my-libdatadog-build/$DD_RUBY_PLATFORM
18
- ```
19
-
20
- 5. From inside of the libdatadog repo, build libdatadog into this folder: `./build-profiling-ffi.sh my-libdatadog-build/$DD_RUBY_PLATFORM`
21
- 6. Tell Ruby where to find libdatadog: `export LIBDATADOG_VENDOR_OVERRIDE=/full/path/to/my-libdatadog-build/` (Notice no platform here)
22
- 7. From dd-trace-rb, run `bundle exec rake clean compile`
23
-
24
- If you additionally want to run the profiler test suite, also remember to `export DD_PROFILING_MACOS_TESTING=true` and re-run `rake clean compile`.
25
-
26
- These instructions can quickly get outdated, so feel free to open an issue if they're not working (and/or ping @ivoanjo).
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../../encoding'
4
- require_relative '../../../transport/http/api/map'
5
- require_relative '../../../transport/http/api/instance'
6
- require_relative '../../../transport/http/api/spec'
7
- require_relative 'negotiation'
8
- require_relative 'config'
9
-
10
- module Datadog
11
- module Core
12
- module Remote
13
- module Transport
14
- module HTTP
15
- # Namespace for API components
16
- module API
17
- # Default API versions
18
- ROOT = 'root'
19
- V7 = 'v0.7'
20
-
21
- module_function
22
-
23
- def defaults
24
- Core::Transport::HTTP::API::Map[
25
- ROOT => Spec.new do |s|
26
- s.info = Negotiation::API::Endpoint.new(
27
- '/info',
28
- )
29
- end,
30
- V7 => Spec.new do |s|
31
- s.config = Config::API::Endpoint.new(
32
- '/v0.7/config',
33
- Core::Encoding::JSONEncoder,
34
- )
35
- end,
36
- ]
37
- end
38
-
39
- class Instance < Core::Transport::HTTP::API::Instance
40
- include Config::API::Instance
41
- include Negotiation::API::Instance
42
- end
43
-
44
- class Spec < Core::Transport::HTTP::API::Spec
45
- include Config::API::Spec
46
- include Negotiation::API::Spec
47
- end
48
- end
49
- end
50
- end
51
- end
52
- end
53
- end
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../../../core/transport/http/env'
4
- require_relative '../../../../core/transport/http/response'
5
-
6
- # TODO: Decouple transport/http/client
7
- #
8
- # The standard one does `include Transport::HTTP::Statistics` and performs
9
- # stats updates, which may or may not be desirable in general.
10
-
11
- module Datadog
12
- module Core
13
- module Remote
14
- module Transport
15
- module HTTP
16
- # Routes, encodes, and sends tracer data to the trace agent via HTTP.
17
- class Client
18
- attr_reader :api, :logger
19
-
20
- def initialize(api, logger: Datadog.logger)
21
- @api = api
22
- @logger = logger
23
- end
24
-
25
- def send_request(request, &block)
26
- # Build request into env
27
- env = build_env(request)
28
-
29
- # Get responses from API
30
- yield(api, env)
31
- rescue => e
32
- message =
33
- "Internal error during #{self.class.name} request. Cause: #{e.class.name} #{e.message} " \
34
- "Location: #{Array(e.backtrace).first}"
35
-
36
- logger.debug(message)
37
-
38
- Datadog::Core::Transport::InternalErrorResponse.new(e)
39
- end
40
-
41
- def build_env(request)
42
- Datadog::Core::Transport::HTTP::Env.new(request)
43
- end
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../../encoding'
4
- require_relative '../../../transport/http/api/map'
5
- require_relative '../../../transport/http/api/instance'
6
- require_relative '../../../transport/http/api/spec'
7
- require_relative 'telemetry'
8
-
9
- module Datadog
10
- module Core
11
- module Telemetry
12
- module Transport
13
- module HTTP
14
- # Namespace for API components
15
- module API
16
- # Default API versions
17
- AGENT_TELEMETRY = 'agent_telemetry'
18
- AGENTLESS_TELEMETRY = 'agentless_telemetry'
19
-
20
- module_function
21
-
22
- def defaults
23
- Datadog::Core::Transport::HTTP::API::Map[
24
- AGENT_TELEMETRY => Telemetry::API::Spec.new do |s|
25
- s.telemetry = Telemetry::API::Endpoint.new(
26
- '/telemetry/proxy/api/v2/apmtelemetry',
27
- Core::Encoding::JSONEncoder,
28
- )
29
- end,
30
- AGENTLESS_TELEMETRY => Telemetry::API::Spec.new do |s|
31
- s.telemetry = Telemetry::API::Endpoint.new(
32
- '/api/v2/apmtelemetry',
33
- Core::Encoding::JSONEncoder,
34
- )
35
- end,
36
- ]
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../../transport/http/env'
4
- require_relative '../../../transport/http/response'
5
-
6
- # TODO: Decouple transport/http/client
7
- #
8
- # The standard one does `include Transport::HTTP::Statistics` and performs
9
- # stats updates, which may or may not be desirable in general.
10
-
11
- module Datadog
12
- module Core
13
- module Telemetry
14
- module Transport
15
- module HTTP
16
- # Routes, encodes, and sends DI data to the trace agent via HTTP.
17
- class Client
18
- attr_reader :api, :logger
19
-
20
- def initialize(api, logger:)
21
- @api = api
22
- @logger = logger
23
- end
24
-
25
- def send_request(request, &block)
26
- # Build request into env
27
- env = build_env(request)
28
-
29
- # Get responses from API
30
- yield(api, env)
31
- rescue => e
32
- message =
33
- "Internal error during #{self.class.name} request. Cause: #{e.class.name} #{e.message} " \
34
- "Location: #{Array(e.backtrace).first}"
35
-
36
- logger.debug(message)
37
-
38
- Datadog::Core::Transport::InternalErrorResponse.new(e)
39
- end
40
-
41
- def build_env(request)
42
- Datadog::Core::Transport::HTTP::Env.new(request)
43
- end
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Datadog
4
- module Core
5
- module Transport
6
- module HTTP
7
- module API
8
- # Specification for an HTTP API
9
- # Defines behaviors without specific configuration details.
10
- class Spec
11
- # Raised when an endpoint is invoked on an API that did not
12
- # define that endpoint.
13
- class EndpointNotDefinedError < StandardError
14
- attr_reader :spec, :endpoint_name
15
-
16
- def initialize(endpoint_name, spec)
17
- @spec = spec
18
- @endpoint_name = endpoint_name
19
-
20
- super(message)
21
- end
22
-
23
- def message
24
- "No #{endpoint_name} endpoint is defined for API specification!"
25
- end
26
- end
27
-
28
- def initialize
29
- yield(self) if block_given?
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end