Skip to content

IGNORE: base for #5670 + #5668#5673

Closed
p-datadog wants to merge 5 commits into
masterfrom
base-5673
Closed

IGNORE: base for #5670 + #5668#5673
p-datadog wants to merge 5 commits into
masterfrom
base-5673

Conversation

@p-datadog
Copy link
Copy Markdown
Member

p-ddsign added 5 commits May 4, 2026 11:54
Adds Datadog::SymbolDatabase::Configuration::Settings, extended into
Core::Configuration::Settings so users can configure the symbol
database via Datadog.configure { |c| c.symbol_database.enabled = ... }.

Settings:
- symbol_database.enabled (DD_SYMBOL_DATABASE_UPLOAD_ENABLED, default true)
- symbol_database.internal.force_upload (DD_INTERNAL_FORCE_SYMBOL_DATABASE_UPLOAD, default false)
- symbol_database.internal.trace_logging (DD_TRACE_DEBUG, default false)

Foundational slice from #5431 (symbol-database-upload). Component
(which gates on these settings) lands in a follow-up PR.
Adds the upload pipeline for symbol database payloads:

- Datadog::SymbolDatabase::Uploader — builds the multipart payload
  (event + gzipped JSON file) and dispatches via the transport.
- Datadog::SymbolDatabase::Transport — wraps Datadog::Core::Transport::HTTP
  for the symdb endpoint.
- Datadog::SymbolDatabase::Transport::HTTP / Transport::HTTP::Endpoint —
  configures the agent endpoint (/symdb/v1/input) and request
  construction.

Self-contained — takes agent_settings directly, no Component coupling.
Component (next slice) will instantiate Uploader.

Slice extracted from #5431 (symbol-database-upload). 21 specs cover
the multipart payload format and transport boundary.
CI's validate_supported_configurations_v2_local_file expects boolean
defaults as JSON strings ("true"/"false") and keys sorted
alphabetically. Move both env vars to their alphabetical positions.
* origin/symdb-uploader:
  SymDB: Add Uploader and Transport stack
* origin/symdb-configuration:
  Fix supported-configurations.json sort order and boolean default format
  SymDB: Add Configuration settings
@dd-octo-sts
Copy link
Copy Markdown
Contributor

dd-octo-sts Bot commented May 4, 2026

👋 Hey @p-datadog, please fill "Change log entry" section in the pull request description.

If changes need to be present in CHANGELOG.md you can state it this way

**Change log entry**

Yes. A brief summary to be placed into the CHANGELOG.md

(possible answers Yes/Yep/Yeah)

Or you can opt out like that

**Change log entry**

None.

(possible answers No/Nope/None)

Visited at: 2026-05-04 23:40:16 UTC

@dd-octo-sts dd-octo-sts Bot added the core Involves Datadog core libraries label May 4, 2026
@dd-octo-sts
Copy link
Copy Markdown
Contributor

dd-octo-sts Bot commented May 4, 2026

Typing analysis

Note: Ignored files are excluded from the next sections.

steep:ignore comments

This PR introduces 2 steep:ignore comments.

steep:ignore comments (+2-0)Introduced:
lib/datadog/symbol_database/configuration/settings.rb:28
lib/datadog/symbol_database/transport.rb:44

Untyped methods

This PR introduces 2 untyped methods and 7 partially typed methods. It decreases the percentage of typed methods from 61.59% to 61.55% (-0.04%).

Untyped methods (+2-0)Introduced:
sig/datadog/symbol_database/transport/http/endpoint.rbs:13
└── def call: (untyped env) ?{ (untyped) -> untyped } -> untyped
sig/datadog/symbol_database/uploader.rbs:20
└── def initialize: (untyped config, untyped agent_settings, logger: untyped) -> void
Partially typed methods (+7-0)Introduced:
sig/datadog/symbol_database/configuration/settings.rbs:5
└── def self.extended: (untyped base) -> void
sig/datadog/symbol_database/configuration/settings.rbs:7
└── def self.add_settings!: (untyped base) -> void
sig/datadog/symbol_database/transport/http/endpoint.rbs:11
└── def initialize: (String path, untyped encoder) -> void
sig/datadog/symbol_database/transport/http.rbs:7
└── def self.build: (
          agent_settings: ::Datadog::Core::Configuration::AgentSettings,
          logger: untyped,
          ?headers: Hash[String, String]?
        ) ?{ (untyped) -> void } -> SymbolDatabase::Transport::Transport
sig/datadog/symbol_database/transport.rbs:9
└── def initialize: (Hash[untyped, untyped] form) -> void
sig/datadog/symbol_database/transport.rbs:17
└── def send_symdb_payload: (Hash[untyped, untyped] form) -> Core::Transport::Response
sig/datadog/symbol_database/uploader.rbs:46
└── def handle_response: (untyped response, Integer scope_count) -> bool

Untyped other declarations

This PR introduces 6 untyped other declarations and 2 partially typed other declarations. It decreases the percentage of typed other declarations from 77.9% to 77.6% (-0.3%).

Untyped other declarations (+6-0)Introduced:
sig/datadog/symbol_database/transport/http/endpoint.rbs:7
└── @encoder: untyped
sig/datadog/symbol_database/transport/http/endpoint.rbs:9
└── attr_reader encoder: untyped
sig/datadog/symbol_database/uploader.rbs:12
└── @config: untyped
sig/datadog/symbol_database/uploader.rbs:14
└── @agent_settings: untyped
sig/datadog/symbol_database/uploader.rbs:16
└── @logger: untyped
sig/datadog/symbol_database/uploader.rbs:18
└── @transport: untyped
Partially typed other declarations (+2-0)Introduced:
sig/datadog/symbol_database/transport.rbs:5
└── @form: Hash[untyped, untyped]
sig/datadog/symbol_database/transport.rbs:7
└── attr_reader form: Hash[untyped, untyped]

If you believe a method or an attribute is rightfully untyped or partially typed, you can add # untyped:accept on the line before the definition to remove it from the stats.

@datadog-official
Copy link
Copy Markdown

datadog-official Bot commented May 5, 2026

Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

🎯 Code Coverage (details)
Patch Coverage: 96.85%
Overall Coverage: 97.21% (-0.00%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 57eb126 | Docs | Datadog PR Page | Give us feedback!

@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented May 5, 2026

Benchmarks

Benchmark execution time: 2026-05-05 00:08:11

Comparing candidate commit 57eb126 in PR branch base-5673 with baseline commit 524bafd in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 45 metrics, 1 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

@p-datadog p-datadog closed this May 11, 2026
@p-datadog p-datadog deleted the base-5673 branch May 11, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Involves Datadog core libraries

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants