Skip to content

[pull] master from DataDog:master#500

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

[pull] master from DataDog:master#500
pull[bot] merged 10 commits into
ConnectionMaster:masterfrom
DataDog:master

Conversation

@pull

@pull pull Bot commented Apr 24, 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 : )

pablo-encinas and others added 10 commits April 24, 2026 14:44
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add metric suffixes and new metrics for latest temporal version

* Update tests with the new metrics

* Add changelog

* Sorting metrics by name

* Remove metrics from fixtures causing issues with tests

* Revert "Sorting metrics by name"

This reverts commit 40f4110.

* Fix test case: duplicate metric issue.

* Sorting metrics by name

* Fix metric in test data

* Resort metadata.csv to show changes

* Add metrics to metadata.csv affecting test case

* Add transfomer for seconds to milliseconds

* Add test cases for seconds to milliseconds conversion

* Fix typo

* Fix missing metrics in metadata.csv

* Remove seconds-to-ms histogram transformer; emit seconds as separate metrics
* Add KRaft (Kafka Raft) metrics to kafka integration

Add support for monitoring Kafka clusters running in KRaft mode
(without ZooKeeper). This includes 26 new JMX metrics covering Raft
quorum health, metadata replication, controller state, and snapshots.

- Add JMX bean definitions for raft-metrics, broker-metadata-metrics,
  MetadataLoader, SnapshotEmitter, FencedBrokerCount, ActiveBrokerCount
- Add KRaft docker-compose test environment (Confluent 7.7.0 / Kafka 3.7)
- Add dual test matrix (ZK + KRaft) following the ActiveMQ pattern
- Add OOTB dashboard for KRaft quorum health
- Split E2E test metrics into common/ZK-only/KRaft-only lists

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

* Update kafka/assets/dashboards/kafka_kraft_dashboard.json

Co-authored-by: jeff-morgan-dd <jeff.morgan@datadoghq.com>

* Fix lint errors, changelog PR number, and dashboard copyedit

- Fix import ordering for ruff 0.11.10 (blank line between pytest and
  datadog_checks.dev imports)
- Rename changelog from 22917.added to 23105.added to match PR number
- Apply dashboard copyedit from review (add period to sentence)

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

* Address review feedback: split latest env, fix units, rename dashboard/key

- hatch.toml: remove [envs.latest] COMPOSE_FILE override so latest canary
  inherits both ZK and KRaft matrix rows (coverage regression fix)
- metadata.csv: high_watermark unit_name=offset, last_applied_record_timestamp
  unit_name=millisecond, active_broker_count orientation=0; 11-column schema
  (sample_tags) and re-sorted
- test_check.py: iterate OPTIONAL_KRAFT_E2E_METRICS separately with at_least=0
- manifest.json: dashboard key kafka-kraft -> kafka_kraft
- kafka_kraft_dashboard.json: title -> "Kafka KRaft Overview"
- changelog.d/23105.added: trailing newline

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

* Correct metadata.csv types for monotonic_count metrics; OPTIONAL set -> list

- metadata.csv: change rate -> count for metadata_apply_error_count,
  metadata_load_error_count, and handle_load_snapshot_count — metrics.yaml
  declares them monotonic_count, which JMXFetch submits as count
- tests/common.py: OPTIONAL_KRAFT_E2E_METRICS as list for type-consistency
  with the other metric lists; set semantics no longer needed after
  iteration was split in test_check.py

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

* Fix E2E: move produce.rate to ZK-only, revert flush_rate to KRaft-only

The CI runs surfaced that both metrics I placed in COMMON during the
rebase/review pass are not actually emitted in the opposite mode:
- kafka.request.produce.rate: not emitted in KRaft compose (no producer
  traffic during the test window -> RequestMetrics,request=Produce bean
  is never registered). Master asserted it against ZK only; keep that.
- kafka.log.flush_rate.rate: not emitted in Kafka 3.3 ZK compose. The
  review comment assumed the bean was kafka.server:type=LogFlushStats,
  but metrics.yaml maps it from kafka.log:type=LogFlushStats - the
  original PR correctly kept this KRaft-only.

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

* Add kafka-init topic/seed service to kraft.yml compose

ZK compose has a kafka-init sidecar that creates 'marvel' and 'dc' topics
and produces one message to each. Without this, topic-level JMX beans
(kafka.topic.*, kafka.log.partition.size) are never registered, so the
KRaft E2E was failing on metrics master added to the common list.

Mirrors the ZK setup exactly so both modes exercise equivalent test
coverage.

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

* Move produce.rate back to COMMON now that KRaft has producer traffic

With kafka-init seeding messages in kraft.yml, the Produce RequestMetrics
bean gets registered and kafka.request.produce.rate emits in both modes.
assert_all_metrics_covered was failing because the metric was collected
but asserted only in the ZK list.

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

* Revert monotonic_count types back to rate in metadata.csv

JMXFetch submits monotonic_count metrics as rate at runtime, not count
(confirmed by assert_metrics_using_metadata failing against 'count').
The earlier change to 'count' was based on semantic reasoning but
activemq's precedent (rate) matches what actually gets emitted.

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

* Document why kafka.log.flush_rate.rate is KRaft-only

Per review: placement surprises readers of metrics.yaml (where the bean
appears unconditionally). Explain that empirically the ZK E2E never
captures a flush tick in its scrape window.

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

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: jeff-morgan-dd <jeff.morgan@datadoghq.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…and statement explain paths (#23429)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* [datadog_checks_base] Add parameterized query support to QueryExecutor

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

* [datadog_checks_base] Add changelog entry for parameterized query support

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

* [datadog_checks_base] Rename changelog entry to match PR number

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

* [datadog_checks_base] Add tests for parameterized query support in QueryExecutor

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

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* [Release] Bumped datadog_checks_base version to 37.36.0

* [Release] Update metadata
* Fix datatime conversion overflow

* Add changelog

* Fix license header
#23450)

* Fix ClickHouse TLS setting in the connection pool manager

* Fix CI

* Update change log

* Fixing TLS files

* Fix TLS container crash: remove init.sql that requires missing macros

The init.sql uses ReplicatedMergeTree with {layer}/{shard}/{replica}
macros not present in the single-node TLS container, causing the
entrypoint to exit with code 139 and the container to never start.
The TLS integration tests only verify connection behaviour (verify=True/False)
and do not need the test tables created by init.sql.

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

* Skip E2E test in TLS flavor

The E2E test connects to the non-TLS HTTP port (8128) which does not
exist in the TLS flavor environment. TLS-specific behaviour is already
covered by the integration tests in test_tls.py.

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

* Adding a few more tests

* Supporting TLS for v22.7+ and folding TLS containers to main docker-compose

* Update

* Cleaning up TLS compose profiles

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…#23426)

* [sqlserver] Use parameterized queries in AO and fragmentation metrics

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

* [sqlserver] Fix hardcoded FreeTDS version in get_local_driver

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

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Apr 24, 2026
@pull pull Bot added the ⤵️ pull label Apr 24, 2026
@pull pull Bot merged commit 0c9882f into ConnectionMaster:master Apr 24, 2026
1 check passed
@pull pull Bot had a problem deploying to typo-squatting-release April 25, 2026 05:11 Failure
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