Skip to content

[pull] master from DataDog:master#480

Merged
pull[bot] merged 14 commits into
ConnectionMaster:masterfrom
DataDog:master
Apr 15, 2026
Merged

[pull] master from DataDog:master#480
pull[bot] merged 14 commits into
ConnectionMaster:masterfrom
DataDog:master

Conversation

@pull

@pull pull Bot commented Apr 15, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

AAraKKe and others added 14 commits April 15, 2026 09:02
* Bump pytest and plugin dependencies to latest versions

* Add changelog entry

* Fix pytest 9 compatibility issues in integration tests

- haproxy: Move skip logic inside version_metadata fixture instead of
  using a mark decorator (marks on fixtures are now errors in pytest 9)
- presto, weblogic: Remove @pytest.mark.usefixtures from fixture
  functions (no-op that is now an error in pytest 9)
- datadog_checks_base: Rename deprecated `path` parameter to
  `collection_path` in pytest_ignore_collect hook

* Remove unused requires_static_version mark
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
* update release branch create to bump current_milestone and create github milestone

* lint

* address codex review

* changelog

* fix linting

* address review feedback

- Use fetch + checkout -B off origin/master instead of checkout master
- Add try/except around push with fallback instructions
- Create PR automatically via GitHub API
- Handle 422 (milestone already exists) gracefully
- Enforce Path type in update_release_json, use read_text/write_text
- Add test for update_release_json when file doesn't exist

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* add assertions for file creation in test_update_release_json_file_not_found

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* rewrite new tests to assert behavior, add error-path coverage

- Rewrite test_create_branch_creates_milestone_and_pr to assert on
  output messages instead of exact mock call arguments
- Add test_create_branch_milestone_already_exists (422 handling)
- Add test_create_branch_push_failure (fallback instructions)
- Add test_create_branch_pr_creation_failure (graceful degradation)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address review feedback: improve error handling and test coverage

- Extract milestone bump workflow into dedicated `bump_milestone()` helper
- Catch `HTTPStatusError` directly instead of broad `except Exception`
- Move httpx import to module level following Python best practices
- Restore working directory to master after bump-branch operations via finally block
- Include exception details in PR creation failure warning message
- Add boundary test for large minor version rollover (7.99.x → 7.100.0)
- Add round-trip key preservation assertion in update_release_json test
- Add test for non-422 HTTP error propagation on milestone creation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Improve error handling and test assertions

- Protect finally block from masking original exceptions
- Narrow PR creation catch from Exception to HTTPError
- Add GitHub API call assertions (create_label, create_milestone)
- Assert checkout master is the final git operation
- Fix misleading error message for non-push git failures
- Add from __future__ import annotations to test file

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Juanpe Araque <juanpedro.araque@datadoghq.com>
* [Release] Bumped datadog_checks_dev version to 37.0.0

* [Release] Update metadata
…or path (#23240)

* [builders] Patch librdkafka use-after-free in admin coord_request error path

Apply upstream fix (confluentinc/librdkafka#5397) for a use-after-free
bug in rd_kafka_admin_coord_request() that causes process abort with
assertion failure on eonce->refcnt. Affects DescribeConsumerGroups,
DeleteConsumerGroupOffsets, ListConsumerGroupOffsets and similar
coordinator-targeted Admin API operations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* [builders] Comprehensive librdkafka eonce use-after-free fix

Three fixes for the coordinator admin operation crash:

1. rdkafka_admin.c (worker_destroy): Skip enq_once_destroy() when in
   WAIT_RESPONSE state, as the broker thread may still hold a raw
   pointer to the eonce via the pending protocol response handler.
   Let enq_once_disable() in handle_response do the final cleanup.

2. rdkafka_coord.c (coord_req_fail): Guard against freed eonce by
   checking creq_reply_opaque for NULL before enqueuing a response.

3. rdkafka_coord.c (coord_req_fsm): When coord_request returns
   DESTROY (admin op already timed out), set creq_reply_opaque to
   NULL and clean up immediately instead of calling coord_req_fail.

Tested against 55 real Kafka staging clusters with thousands of
consumer groups. Baseline crashes every ~80 seconds; patched version
runs indefinitely without crashes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* [nutanix] Migrate check to use ConfigMixin

Replace raw self.instance.get() config access with typed self.config.*
from ConfigMixin. Use check_initializations for deferred config parsing,
HTTP_CONFIG_REMAPPER for credential passthrough, and direct config reads
at call sites instead of cached boolean copies.

* Address review feedback for ConfigMixin migration

- Cast $samplingInterval to int to preserve Nutanix API compatibility
  (min_collection_interval is float in pydantic model)
- Add custom validator for pc_ip to produce actionable error message
- Fix _validate_filter_structure to handle None values from model_dump()
- Restore pc_port fallback to 9440 for explicit null configs
- Use self.pc_port instead of self.config.pc_port in error message
- Simplify test exception match patterns

* update base_backoff_seconds and max_backoff_seconds types to integer instead of number

* Add changelog and merge initialization methods

- Add changelog entry for improved configuration validation
- Merge _parse_config and _initialize_check_attributes into single _initialize method
- Fix backoff type annotations to match model (int, not float)

* Rename _initialize to _initialize_check

* Remove redundant pc_port fallback (model default handles it)
* turn off static analysis

* turn off for all branches
* Apply `ignore_tags` filtering to dynamic tags in OpenMetrics v2 scraper

`ignore_tags` was only filtering static tags (from the `tags` config option)
at init time. Dynamic tags set via `set_dynamic_tags` (e.g. Kubernetes
autodiscovery tags) bypassed the filter entirely. Store the compiled regex
as an instance attribute and apply it in `set_dynamic_tags` as well.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add changelog entry for ignore_tags dynamic filtering fix

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Auto-format test code

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix flaky celery E2E test by waiting for Flower endpoint

- Use CheckDockerLogs with compose file and service parameter instead
  of hardcoded container name for more reliable log checking
- Add CheckEndpoints condition to wait for Flower's /metrics endpoint
  before starting the agent, preventing "Could not find valid check
  output" failures

* Disable redisdb autodiscovery in celery E2E environment

* Remove Docker socket mount and log collection from celery E2E metadata

The agent crashes with a "concurrent map writes" panic in the Docker
socket tailer when log collection is enabled with the Docker socket
mounted. This is an agent bug triggered by a race condition in
DockerSocketTailer. Remove these settings since the celery check only
scrapes Flower's OpenMetrics endpoint and does not need container log
collection for testing.
* Bump datadog-checks-dev to 37.0

* Add changelog
* [DBMON-6430] Add explain plan collection for ClickHouse DBM

- Add explain_plans.py with ClickhouseExplainPlans class: EXPLAIN PLAN
  json=1 execution, DBExplainError enum, two rate-limit TTL caches
  (_explained_statements_ratelimiter per query_signature at 1/hr default,
  _seen_samples_ratelimiter per (query_signature, plan_signature))
- Integrate into query_completions.py: collect plans after each batch of
  completed queries, emit via database_monitoring_query_sample
- Add explained_queries_per_hour_per_query and explained_queries_cache_maxsize
  config options to query_completions spec.yaml; regenerate config models
- Add EXPLAIN_PLANS feature key to features.py and wire into config.py
- Add 19 unit tests in test_explain_plans.py

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Allowing for explain plans

* Update changelog

* Fix CI

* Fixing codex comment on obfuscation

* Addressing comments

* Removing explain plans for every statement other than select

* Fixing CI

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators Apr 15, 2026
@pull pull Bot added the ⤵️ pull label Apr 15, 2026
@pull pull Bot merged commit 304bf99 into ConnectionMaster:master Apr 15, 2026
1 check passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants