diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2bc60fd26bb13..45f7a00c1f303 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -284,10 +284,10 @@ datadog_checks_base/datadog_checks/base/checks/windows/ @DataDog/wi /mailchimp/*.md @DataDog/saas-integrations @DataDog/documentation /mailchimp/manifest.json @DataDog/saas-integrations @DataDog/documentation -/mimecast/ @DataDog/saas-integrations -/mimecast/*.md @DataDog/saas-integrations @DataDog/documentation -/mimecast/manifest.json @DataDog/saas-integrations @DataDog/documentation -/mimecast/assets/logs/ @DataDog/saas-integrations @DataDog/documentation @DataDog/logs-backend +/mimecast/ @DataDog/saas-integrations +/mimecast/*.md @DataDog/saas-integrations @DataDog/documentation +/mimecast/manifest.json @DataDog/saas-integrations @DataDog/documentation +/mimecast/assets/logs/ @DataDog/saas-integrations @DataDog/documentation @DataDog/logs-backend /palo_alto_cortex_xdr/ @DataDog/saas-integrations /palo_alto_cortex_xdr/*.md @DataDog/saas-integrations @DataDog/documentation @@ -329,10 +329,10 @@ datadog_checks_base/datadog_checks/base/checks/windows/ @DataDog/wi /ringcentral/metadata.csv @DataDog/saas-integrations @DataDog/documentation /ringcentral/assets/logs/ @DataDog/saas-integrations @DataDog/documentation @DataDog/logs-backend -/trend_micro_email_security/ @DataDog/saas-integrations -/trend_micro_email_security/*.md @DataDog/saas-integrations @DataDog/documentation -/trend_micro_email_security/manifest.json @DataDog/saas-integrations @DataDog/documentation -/trend_micro_email_security/assets/logs/ @DataDog/saas-integrations @DataDog/documentation @DataDog/logs-backend +/trend_micro_email_security/ @DataDog/saas-integrations +/trend_micro_email_security/*.md @DataDog/saas-integrations @DataDog/documentation +/trend_micro_email_security/manifest.json @DataDog/saas-integrations @DataDog/documentation +/trend_micro_email_security/assets/logs/ @DataDog/saas-integrations @DataDog/documentation @DataDog/logs-backend /trellix_endpoint_security/ @DataDog/saas-integrations /trellix_endpoint_security/*.md @DataDog/saas-integrations @DataDog/documentation diff --git a/active_directory/CHANGELOG.md b/active_directory/CHANGELOG.md index d7463bff0312f..334b239132447 100644 --- a/active_directory/CHANGELOG.md +++ b/active_directory/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/active_directory/datadog_checks/active_directory/__about__.py b/active_directory/datadog_checks/active_directory/__about__.py index 287bbeba260f7..09adcddf171c4 100644 --- a/active_directory/datadog_checks/active_directory/__about__.py +++ b/active_directory/datadog_checks/active_directory/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.1' +__version__ = '3.0.0' diff --git a/activemq/CHANGELOG.md b/activemq/CHANGELOG.md index ea2402ccad815..7246bca491cc0 100644 --- a/activemq/CHANGELOG.md +++ b/activemq/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/activemq/datadog_checks/activemq/__about__.py b/activemq/datadog_checks/activemq/__about__.py index 6ff863c1fc552..c25988b9e6d8b 100644 --- a/activemq/datadog_checks/activemq/__about__.py +++ b/activemq/datadog_checks/activemq/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.1.0' +__version__ = '4.0.0' diff --git a/activemq_xml/CHANGELOG.md b/activemq_xml/CHANGELOG.md index 7c74e8eb0d1f0..54a96f6d00a3f 100644 --- a/activemq_xml/CHANGELOG.md +++ b/activemq_xml/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/activemq_xml/datadog_checks/activemq_xml/__about__.py b/activemq_xml/datadog_checks/activemq_xml/__about__.py index e41ae1cd12567..f81a9a356ff96 100644 --- a/activemq_xml/datadog_checks/activemq_xml/__about__.py +++ b/activemq_xml/datadog_checks/activemq_xml/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "3.2.1" +__version__ = "4.0.0" diff --git a/aerospike/CHANGELOG.md b/aerospike/CHANGELOG.md index 4b0b3ec18adf0..78886f2978e51 100644 --- a/aerospike/CHANGELOG.md +++ b/aerospike/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/aerospike/datadog_checks/aerospike/__about__.py b/aerospike/datadog_checks/aerospike/__about__.py index 9313b336284cd..f046338059ddf 100644 --- a/aerospike/datadog_checks/aerospike/__about__.py +++ b/aerospike/datadog_checks/aerospike/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.2' +__version__ = '3.0.0' diff --git a/airflow/CHANGELOG.md b/airflow/CHANGELOG.md index ada89623eaa16..a14355acded4c 100644 --- a/airflow/CHANGELOG.md +++ b/airflow/CHANGELOG.md @@ -2,6 +2,12 @@ +## 6.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 5.0.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/airflow/datadog_checks/airflow/__about__.py b/airflow/datadog_checks/airflow/__about__.py index 4595b491a0a0b..90ac9024197fd 100644 --- a/airflow/datadog_checks/airflow/__about__.py +++ b/airflow/datadog_checks/airflow/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019 # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '5.0.1' +__version__ = '6.0.0' diff --git a/amazon_msk/CHANGELOG.md b/amazon_msk/CHANGELOG.md index 821c45f359efe..04fd78f43d1b4 100644 --- a/amazon_msk/CHANGELOG.md +++ b/amazon_msk/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.11.0 / 2024-09-05 ***Added***: diff --git a/amazon_msk/datadog_checks/amazon_msk/__about__.py b/amazon_msk/datadog_checks/amazon_msk/__about__.py index b23ee2fd9ff10..59ccab2a77ff8 100644 --- a/amazon_msk/datadog_checks/amazon_msk/__about__.py +++ b/amazon_msk/datadog_checks/amazon_msk/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.11.0' +__version__ = '5.0.0' diff --git a/ambari/CHANGELOG.md b/ambari/CHANGELOG.md index cb56c1f85f6c4..b93483cf4b3be 100644 --- a/ambari/CHANGELOG.md +++ b/ambari/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/ambari/datadog_checks/ambari/__about__.py b/ambari/datadog_checks/ambari/__about__.py index ececa50abe372..59ccab2a77ff8 100644 --- a/ambari/datadog_checks/ambari/__about__.py +++ b/ambari/datadog_checks/ambari/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.2.1' +__version__ = '5.0.0' diff --git a/apache/CHANGELOG.md b/apache/CHANGELOG.md index 52dcc9dd075b0..67baf622191b5 100644 --- a/apache/CHANGELOG.md +++ b/apache/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/apache/datadog_checks/apache/__about__.py b/apache/datadog_checks/apache/__about__.py index f2f3e5b89da36..b033d7b5bb770 100644 --- a/apache/datadog_checks/apache/__about__.py +++ b/apache/datadog_checks/apache/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.5.1" +__version__ = "5.0.0" diff --git a/appgate_sdp/CHANGELOG.md b/appgate_sdp/CHANGELOG.md index 7dd14c64baf40..96c18884e43fe 100644 --- a/appgate_sdp/CHANGELOG.md +++ b/appgate_sdp/CHANGELOG.md @@ -2,3 +2,8 @@ +## 1.0.0 / 2024-10-04 + +***Added***: + +* Initial Release ([#18465](https://github.com/DataDog/integrations-core/pull/18465)) diff --git a/appgate_sdp/changelog.d/18465.added b/appgate_sdp/changelog.d/18465.added deleted file mode 100644 index aa949b47b7b41..0000000000000 --- a/appgate_sdp/changelog.d/18465.added +++ /dev/null @@ -1 +0,0 @@ -Initial Release \ No newline at end of file diff --git a/appgate_sdp/datadog_checks/appgate_sdp/__about__.py b/appgate_sdp/datadog_checks/appgate_sdp/__about__.py index e9541ce83e9e5..acbfd1c866b84 100644 --- a/appgate_sdp/datadog_checks/appgate_sdp/__about__.py +++ b/appgate_sdp/datadog_checks/appgate_sdp/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '0.0.1' +__version__ = '1.0.0' diff --git a/arangodb/CHANGELOG.md b/arangodb/CHANGELOG.md index 1499f6af9c8b6..0f9298d831a19 100644 --- a/arangodb/CHANGELOG.md +++ b/arangodb/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/arangodb/datadog_checks/arangodb/__about__.py b/arangodb/datadog_checks/arangodb/__about__.py index faa7c19604967..c1405a3ef0291 100644 --- a/arangodb/datadog_checks/arangodb/__about__.py +++ b/arangodb/datadog_checks/arangodb/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.2' +__version__ = '3.0.0' diff --git a/argo_rollouts/CHANGELOG.md b/argo_rollouts/CHANGELOG.md index 810238652e243..d70d50091a691 100644 --- a/argo_rollouts/CHANGELOG.md +++ b/argo_rollouts/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/argo_rollouts/datadog_checks/argo_rollouts/__about__.py b/argo_rollouts/datadog_checks/argo_rollouts/__about__.py index 1436e0ab91c45..cc393c1dad9ce 100644 --- a/argo_rollouts/datadog_checks/argo_rollouts/__about__.py +++ b/argo_rollouts/datadog_checks/argo_rollouts/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.2' +__version__ = '2.0.0' diff --git a/argo_workflows/CHANGELOG.md b/argo_workflows/CHANGELOG.md index 724a50bd24b4b..c04c6e80edf39 100644 --- a/argo_workflows/CHANGELOG.md +++ b/argo_workflows/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/argo_workflows/datadog_checks/argo_workflows/__about__.py b/argo_workflows/datadog_checks/argo_workflows/__about__.py index 1436e0ab91c45..cc393c1dad9ce 100644 --- a/argo_workflows/datadog_checks/argo_workflows/__about__.py +++ b/argo_workflows/datadog_checks/argo_workflows/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.2' +__version__ = '2.0.0' diff --git a/argocd/CHANGELOG.md b/argocd/CHANGELOG.md index 3cf19076ba061..9cdb8eb7e46cc 100644 --- a/argocd/CHANGELOG.md +++ b/argocd/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.4.3 / 2024-08-09 / Agent 7.57.0 ***Fixed***: diff --git a/argocd/datadog_checks/argocd/__about__.py b/argocd/datadog_checks/argocd/__about__.py index 87543db2ff6a8..c1405a3ef0291 100644 --- a/argocd/datadog_checks/argocd/__about__.py +++ b/argocd/datadog_checks/argocd/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.4.3' +__version__ = '3.0.0' diff --git a/aspdotnet/CHANGELOG.md b/aspdotnet/CHANGELOG.md index 7e6c0a8304bda..dce96d08b138a 100644 --- a/aspdotnet/CHANGELOG.md +++ b/aspdotnet/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/aspdotnet/datadog_checks/aspdotnet/__about__.py b/aspdotnet/datadog_checks/aspdotnet/__about__.py index 287bbeba260f7..09adcddf171c4 100644 --- a/aspdotnet/datadog_checks/aspdotnet/__about__.py +++ b/aspdotnet/datadog_checks/aspdotnet/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.1' +__version__ = '3.0.0' diff --git a/avi_vantage/CHANGELOG.md b/avi_vantage/CHANGELOG.md index 70191135600bc..03c45db6bb0e1 100644 --- a/avi_vantage/CHANGELOG.md +++ b/avi_vantage/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/avi_vantage/datadog_checks/avi_vantage/__about__.py b/avi_vantage/datadog_checks/avi_vantage/__about__.py index 6b0871e8b251e..6a50d99c582b0 100644 --- a/avi_vantage/datadog_checks/avi_vantage/__about__.py +++ b/avi_vantage/datadog_checks/avi_vantage/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.2.2' +__version__ = '5.0.0' diff --git a/aws_neuron/CHANGELOG.md b/aws_neuron/CHANGELOG.md index 0a7d99b8e806a..3aecb0f3ca4d9 100644 --- a/aws_neuron/CHANGELOG.md +++ b/aws_neuron/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.0 / 2024-08-09 / Agent 7.57.0 ***Added***: diff --git a/aws_neuron/datadog_checks/aws_neuron/__about__.py b/aws_neuron/datadog_checks/aws_neuron/__about__.py index acbfd1c866b84..cc393c1dad9ce 100644 --- a/aws_neuron/datadog_checks/aws_neuron/__about__.py +++ b/aws_neuron/datadog_checks/aws_neuron/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.0' +__version__ = '2.0.0' diff --git a/azure_iot_edge/CHANGELOG.md b/azure_iot_edge/CHANGELOG.md index b241df6656380..add7d1ab0b7d0 100644 --- a/azure_iot_edge/CHANGELOG.md +++ b/azure_iot_edge/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/azure_iot_edge/datadog_checks/azure_iot_edge/__about__.py b/azure_iot_edge/datadog_checks/azure_iot_edge/__about__.py index 1a18420519953..1fda5ed1ca206 100644 --- a/azure_iot_edge/datadog_checks/azure_iot_edge/__about__.py +++ b/azure_iot_edge/datadog_checks/azure_iot_edge/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.2.1' +__version__ = '5.0.0' diff --git a/boundary/CHANGELOG.md b/boundary/CHANGELOG.md index 1a7b4dadb7cc3..338416db0fef0 100644 --- a/boundary/CHANGELOG.md +++ b/boundary/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.3 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/boundary/datadog_checks/boundary/__about__.py b/boundary/datadog_checks/boundary/__about__.py index d5eaec6126497..c1405a3ef0291 100644 --- a/boundary/datadog_checks/boundary/__about__.py +++ b/boundary/datadog_checks/boundary/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.3' +__version__ = '3.0.0' diff --git a/btrfs/CHANGELOG.md b/btrfs/CHANGELOG.md index affcb3d841f0b..ec534c9dd361c 100644 --- a/btrfs/CHANGELOG.md +++ b/btrfs/CHANGELOG.md @@ -2,6 +2,16 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Upgrade psutil to 6.0.0 to fix performance issues addressed ([#18688](https://github.com/DataDog/integrations-core/pull/18688)) + ## 2.4.0 / 2024-09-05 ***Added***: diff --git a/btrfs/changelog.d/18688.added b/btrfs/changelog.d/18688.added deleted file mode 100644 index 30f2555bc26eb..0000000000000 --- a/btrfs/changelog.d/18688.added +++ /dev/null @@ -1 +0,0 @@ -Upgrade psutil to 6.0.0 to fix performance issues addressed \ No newline at end of file diff --git a/btrfs/datadog_checks/btrfs/__about__.py b/btrfs/datadog_checks/btrfs/__about__.py index 00268c12248fe..09adcddf171c4 100644 --- a/btrfs/datadog_checks/btrfs/__about__.py +++ b/btrfs/datadog_checks/btrfs/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.4.0' +__version__ = '3.0.0' diff --git a/cacti/CHANGELOG.md b/cacti/CHANGELOG.md index 8a14f5dc6539b..26701b2c60292 100644 --- a/cacti/CHANGELOG.md +++ b/cacti/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.1.1 / 2024-06-11 / Agent 7.54.1 ***Fixed***: diff --git a/cacti/datadog_checks/cacti/__about__.py b/cacti/datadog_checks/cacti/__about__.py index 287bbeba260f7..09adcddf171c4 100644 --- a/cacti/datadog_checks/cacti/__about__.py +++ b/cacti/datadog_checks/cacti/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.1' +__version__ = '3.0.0' diff --git a/calico/CHANGELOG.md b/calico/CHANGELOG.md index 9d33959669968..9e5e0fd42c828 100644 --- a/calico/CHANGELOG.md +++ b/calico/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/calico/datadog_checks/calico/__about__.py b/calico/datadog_checks/calico/__about__.py index 6e0db56600f4f..d037f86865212 100644 --- a/calico/datadog_checks/calico/__about__.py +++ b/calico/datadog_checks/calico/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.2' +__version__ = '3.0.0' diff --git a/cassandra/CHANGELOG.md b/cassandra/CHANGELOG.md index 3063b715b1ba9..58229e6b2a3cf 100644 --- a/cassandra/CHANGELOG.md +++ b/cassandra/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.18.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/cassandra/datadog_checks/cassandra/__about__.py b/cassandra/datadog_checks/cassandra/__about__.py index ce07658c6ffd9..0e2ebd5e4631b 100644 --- a/cassandra/datadog_checks/cassandra/__about__.py +++ b/cassandra/datadog_checks/cassandra/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.18.0' +__version__ = '2.0.0' diff --git a/cassandra_nodetool/CHANGELOG.md b/cassandra_nodetool/CHANGELOG.md index 166a163fc80b7..ad5023dd8a58a 100644 --- a/cassandra_nodetool/CHANGELOG.md +++ b/cassandra_nodetool/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.13.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/cassandra_nodetool/datadog_checks/cassandra_nodetool/__about__.py b/cassandra_nodetool/datadog_checks/cassandra_nodetool/__about__.py index 9277530c51434..0e2ebd5e4631b 100644 --- a/cassandra_nodetool/datadog_checks/cassandra_nodetool/__about__.py +++ b/cassandra_nodetool/datadog_checks/cassandra_nodetool/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.13.0' +__version__ = '2.0.0' diff --git a/ceph/CHANGELOG.md b/ceph/CHANGELOG.md index d4427c0a916d8..d1af99eadd50b 100644 --- a/ceph/CHANGELOG.md +++ b/ceph/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.10.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/ceph/datadog_checks/ceph/__about__.py b/ceph/datadog_checks/ceph/__about__.py index 75924909e08e9..5778c5423a6b0 100644 --- a/ceph/datadog_checks/ceph/__about__.py +++ b/ceph/datadog_checks/ceph/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "2.10.0" +__version__ = "3.0.0" diff --git a/cert_manager/CHANGELOG.md b/cert_manager/CHANGELOG.md index 04d8d92eb4415..15bcfea3b45ba 100644 --- a/cert_manager/CHANGELOG.md +++ b/cert_manager/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.1.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/cert_manager/datadog_checks/cert_manager/__about__.py b/cert_manager/datadog_checks/cert_manager/__about__.py index 81e293349b2dd..59ccab2a77ff8 100644 --- a/cert_manager/datadog_checks/cert_manager/__about__.py +++ b/cert_manager/datadog_checks/cert_manager/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.1.2' +__version__ = '5.0.0' diff --git a/cilium/CHANGELOG.md b/cilium/CHANGELOG.md index 36ea24e0f85b7..771e67428de6d 100644 --- a/cilium/CHANGELOG.md +++ b/cilium/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.6.0 / 2024-09-05 ***Added***: diff --git a/cilium/datadog_checks/cilium/__about__.py b/cilium/datadog_checks/cilium/__about__.py index 6cea03bf6a176..78967d676d1af 100644 --- a/cilium/datadog_checks/cilium/__about__.py +++ b/cilium/datadog_checks/cilium/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.6.0' +__version__ = '4.0.0' diff --git a/cisco_aci/CHANGELOG.md b/cisco_aci/CHANGELOG.md index 8d52e8866dfbb..f9b7d1ea94ee8 100644 --- a/cisco_aci/CHANGELOG.md +++ b/cisco_aci/CHANGELOG.md @@ -2,6 +2,16 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Security***: + +* Bump version of cryptography to 43.0.1 to address vulnerability ([#18656](https://github.com/DataDog/integrations-core/pull/18656)) + ## 2.12.0 / 2024-09-06 ***Added***: diff --git a/cisco_aci/changelog.d/18656.security b/cisco_aci/changelog.d/18656.security deleted file mode 100644 index ad676917cac26..0000000000000 --- a/cisco_aci/changelog.d/18656.security +++ /dev/null @@ -1 +0,0 @@ -Bump version of cryptography to 43.0.1 to address vulnerability \ No newline at end of file diff --git a/cisco_aci/changelog.d/18748.added b/cisco_aci/changelog.d/18748.added new file mode 100644 index 0000000000000..2c3891fb1f639 --- /dev/null +++ b/cisco_aci/changelog.d/18748.added @@ -0,0 +1 @@ +[NDM] [Cisco ACI] Add check metrics diff --git a/cisco_aci/datadog_checks/cisco_aci/__about__.py b/cisco_aci/datadog_checks/cisco_aci/__about__.py index de7a2146ed77b..5778c5423a6b0 100644 --- a/cisco_aci/datadog_checks/cisco_aci/__about__.py +++ b/cisco_aci/datadog_checks/cisco_aci/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "2.12.0" +__version__ = "3.0.0" diff --git a/cisco_aci/datadog_checks/cisco_aci/cisco.py b/cisco_aci/datadog_checks/cisco_aci/cisco.py index ee17248e34f11..857b2a69e289a 100644 --- a/cisco_aci/datadog_checks/cisco_aci/cisco.py +++ b/cisco_aci/datadog_checks/cisco_aci/cisco.py @@ -1,6 +1,8 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) +import time + from datadog_checks.base import AgentCheck, ConfigurationError from datadog_checks.base.config import _is_affirmative from datadog_checks.base.utils.containers import hash_mutable @@ -30,6 +32,7 @@ def __init__(self, name, init_config, instances): self.tagger = CiscoTags(log=self.log) def check(self, _): + start_time = time.time() aci_url = self.instance.get('aci_url') aci_urls = self.instance.get('aci_urls', []) if aci_url: @@ -137,6 +140,8 @@ def check(self, _): self.set_external_tags(self.get_external_host_tags()) + self.submit_telemetry_metrics(start_time, tags=self.check_tags) + api.close() def submit_metrics(self, metrics, tags, instance=None, obj_type="gauge", hostname=None): @@ -158,6 +163,12 @@ def submit_metrics(self, metrics, tags, instance=None, obj_type="gauge", hostnam log_line = "Trying to submit metric: %s with unknown type: %s" self.log.debug(log_line, mname, obj_type) + def submit_telemetry_metrics(self, start_time, tags): + current_time = time.time() + check_duration = current_time - start_time + self.monotonic_count('datadog.cisco_aci.check_interval', current_time, tags=tags) + self.gauge('datadog.cisco_aci.check_duration', check_duration, tags=tags) + def get_external_host_tags(self): external_host_tags = [] for hostname, tags in self.external_host_tags.items(): diff --git a/cisco_aci/hatch.toml b/cisco_aci/hatch.toml index 0169207d8cffb..8253d4a4dc5a9 100644 --- a/cisco_aci/hatch.toml +++ b/cisco_aci/hatch.toml @@ -5,5 +5,5 @@ python = ["3.12"] [envs.default] dependencies = [ - "freezegun==0.3.15", + "freezegun==1.2.2", ] \ No newline at end of file diff --git a/cisco_aci/tests/test_cisco.py b/cisco_aci/tests/test_cisco.py index 795a71555e363..9e0a475a5d656 100644 --- a/cisco_aci/tests/test_cisco.py +++ b/cisco_aci/tests/test_cisco.py @@ -5,6 +5,7 @@ from copy import deepcopy import pytest +from freezegun import freeze_time from mock import MagicMock from datadog_checks.base import AgentCheck @@ -20,9 +21,38 @@ def test_cisco(aggregator): api = Api(common.ACI_URLS, cisco_aci_check.http, common.USERNAME, password=common.PASSWORD, log=cisco_aci_check.log) api.wrapper_factory = common.FakeSessionWrapper cisco_aci_check._api_cache[hash_mutable(common.CONFIG)] = api - cisco_aci_check.check({}) + check_tags = ['cisco'] + aggregator.assert_metric( + 'datadog.cisco_aci.check_interval', + metric_type=aggregator.MONOTONIC_COUNT, + count=1, + tags=check_tags, + ) + aggregator.assert_metric('datadog.cisco_aci.check_duration', metric_type=aggregator.GAUGE, count=1, tags=check_tags) + + +def test_submit_telemetry_metrics(aggregator): + cisco_aci_check = CiscoACICheck(common.CHECK_NAME, {}, [common.CONFIG]) + check_tags = ['cisco'] + + start_time = 1326511294 # Saturday, January 14, 2012 3:21:34 AM GMT + end_time = 1326511295 # Saturday, January 14, 2012 3:21:35 AM GMT + + with freeze_time("2012-01-14 03:21:35"): + cisco_aci_check.submit_telemetry_metrics(start_time, check_tags) + aggregator.assert_metric( + 'datadog.cisco_aci.check_interval', + value=end_time, + metric_type=aggregator.MONOTONIC_COUNT, + count=1, + tags=check_tags, + ) + aggregator.assert_metric( + 'datadog.cisco_aci.check_duration', value=1, metric_type=aggregator.GAUGE, count=1, tags=check_tags + ) + @pytest.mark.parametrize( ' api_kwargs', diff --git a/cisco_aci/tests/test_fabric.py b/cisco_aci/tests/test_fabric.py index 2b9c97d7a2a0b..9212901f4a8d5 100644 --- a/cisco_aci/tests/test_fabric.py +++ b/cisco_aci/tests/test_fabric.py @@ -17753,5 +17753,9 @@ def test_fabric_mocked(aggregator): hostname=hn201, ) + aggregator.assert_metric( + 'datadog.cisco_aci.check_interval', metric_type=aggregator.MONOTONIC_COUNT, count=1, tags=['cisco'] + ) + aggregator.assert_metric('datadog.cisco_aci.check_duration', metric_type=aggregator.GAUGE, count=1, tags=['cisco']) # Assert coverage for this check on this instance aggregator.assert_all_metrics_covered() diff --git a/cisco_aci/tests/test_tenant.py b/cisco_aci/tests/test_tenant.py index 5fc6706e96a49..7aa10770a0ccc 100644 --- a/cisco_aci/tests/test_tenant.py +++ b/cisco_aci/tests/test_tenant.py @@ -1028,5 +1028,10 @@ def test_tenant_mocked(aggregator): metric_name, value=0.0, tags=['endpoint_group:Test-EPG', 'application:DtDg-test-AP'] + tags, hostname='' ) + aggregator.assert_metric( + 'datadog.cisco_aci.check_interval', metric_type=aggregator.MONOTONIC_COUNT, count=1, tags=['cisco'] + ) + aggregator.assert_metric('datadog.cisco_aci.check_duration', metric_type=aggregator.GAUGE, count=1, tags=['cisco']) + # Assert coverage for this check on this instance aggregator.assert_all_metrics_covered() diff --git a/cisco_sdwan/README.md b/cisco_sdwan/README.md index 6fcaca0c15d8f..fa6194285587b 100644 --- a/cisco_sdwan/README.md +++ b/cisco_sdwan/README.md @@ -1,4 +1,4 @@ -
The Cisco SD-WAN NDM integration is in public beta.
+
The Cisco SD-WAN NDM integration is in Preview.
# Agent Check: Cisco SD-WAN diff --git a/cisco_secure_endpoint/README.md b/cisco_secure_endpoint/README.md index 0d4bc372b5718..6f88038d18f0f 100644 --- a/cisco_secure_endpoint/README.md +++ b/cisco_secure_endpoint/README.md @@ -38,10 +38,10 @@ Configure the Datadog endpoint to forward Cisco Secure Endpoint logs to Datadog. | Cisco Secure Endpoint Parameters | Description | | -------------------- | ------------ | -| API Host URL | The API Host URL for Cisco Secure Endpoint Cloud is "https://api.\.apm.cisco.com". Adjust the "region" part based on the region of the Cisco Secure Endpoint server. If Cisco Secure Endpoint is hosted on VPC (Virtual Private Cloud), directly provide the API Host URL. | +| API Domain Name | The API Domain Name for Cisco Secure Endpoint Cloud is "api.\.amp.cisco.com". Adjust the "region" part based on the region of the Cisco Secure Endpoint server. If Cisco Secure Endpoint is hosted on VPC (Virtual Private Cloud), directly provide the API Domain Name. | | Client ID | Client ID from Cisco Secure Endpoint. | | API Key | API Key from Cisco Secure Endpoint. | -| Get Endpoint Details | Keep it "true" to collect endpoint metadata for Cisco Secure Endpoint event logs, otherwise "false". | +| Get Endpoint Details | Keep it "true" to collect endpoint metadata for Cisco Secure Endpoint event logs, otherwise "false". Default value is "true". | ## Data Collected diff --git a/citrix_hypervisor/CHANGELOG.md b/citrix_hypervisor/CHANGELOG.md index afcca29c1a323..97222b85988f4 100644 --- a/citrix_hypervisor/CHANGELOG.md +++ b/citrix_hypervisor/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/citrix_hypervisor/datadog_checks/citrix_hypervisor/__about__.py b/citrix_hypervisor/datadog_checks/citrix_hypervisor/__about__.py index 097c1de81f01c..57773e0f36fbd 100644 --- a/citrix_hypervisor/datadog_checks/citrix_hypervisor/__about__.py +++ b/citrix_hypervisor/datadog_checks/citrix_hypervisor/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.2.1' +__version__ = '4.0.0' diff --git a/clickhouse/CHANGELOG.md b/clickhouse/CHANGELOG.md index ae9681662656b..14d3e15401b56 100644 --- a/clickhouse/CHANGELOG.md +++ b/clickhouse/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.7.0 / 2024-09-05 ***Added***: diff --git a/clickhouse/datadog_checks/clickhouse/__about__.py b/clickhouse/datadog_checks/clickhouse/__about__.py index 7f3ed79b0f515..78967d676d1af 100644 --- a/clickhouse/datadog_checks/clickhouse/__about__.py +++ b/clickhouse/datadog_checks/clickhouse/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.7.0' +__version__ = '4.0.0' diff --git a/cloud_foundry_api/CHANGELOG.md b/cloud_foundry_api/CHANGELOG.md index 514c21b3cb51b..a7034a7c79ba5 100644 --- a/cloud_foundry_api/CHANGELOG.md +++ b/cloud_foundry_api/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/cloud_foundry_api/datadog_checks/cloud_foundry_api/__about__.py b/cloud_foundry_api/datadog_checks/cloud_foundry_api/__about__.py index ed007ea9d72eb..bcf02753eab69 100644 --- a/cloud_foundry_api/datadog_checks/cloud_foundry_api/__about__.py +++ b/cloud_foundry_api/datadog_checks/cloud_foundry_api/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.1' +__version__ = '4.0.0' diff --git a/cloudera/CHANGELOG.md b/cloudera/CHANGELOG.md index 7111874e5dd7e..6f30ce9935aa8 100644 --- a/cloudera/CHANGELOG.md +++ b/cloudera/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.0 / 2024-06-12 / Agent 7.56.0 ***Added***: diff --git a/cloudera/datadog_checks/cloudera/__about__.py b/cloudera/datadog_checks/cloudera/__about__.py index 48229b28def62..c1405a3ef0291 100644 --- a/cloudera/datadog_checks/cloudera/__about__.py +++ b/cloudera/datadog_checks/cloudera/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.0' +__version__ = '3.0.0' diff --git a/cockroachdb/CHANGELOG.md b/cockroachdb/CHANGELOG.md index 004c4172e6fd6..2b47d6839c1d3 100644 --- a/cockroachdb/CHANGELOG.md +++ b/cockroachdb/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.3.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/cockroachdb/datadog_checks/cockroachdb/__about__.py b/cockroachdb/datadog_checks/cockroachdb/__about__.py index 18b1f968f9fa2..741960d95510d 100644 --- a/cockroachdb/datadog_checks/cockroachdb/__about__.py +++ b/cockroachdb/datadog_checks/cockroachdb/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.2' +__version__ = '4.0.0' diff --git a/confluent_platform/CHANGELOG.md b/confluent_platform/CHANGELOG.md index 57f21e6b58b0d..8b47c3f9f3ad5 100644 --- a/confluent_platform/CHANGELOG.md +++ b/confluent_platform/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.10.2 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/confluent_platform/datadog_checks/confluent_platform/__about__.py b/confluent_platform/datadog_checks/confluent_platform/__about__.py index 506d97ff52fa5..9c6b2fb79e5ac 100644 --- a/confluent_platform/datadog_checks/confluent_platform/__about__.py +++ b/confluent_platform/datadog_checks/confluent_platform/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.10.2' +__version__ = '2.0.0' diff --git a/consul/CHANGELOG.md b/consul/CHANGELOG.md index f45d7a796d9cc..ec65843c15117 100644 --- a/consul/CHANGELOG.md +++ b/consul/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.6.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/consul/datadog_checks/consul/__about__.py b/consul/datadog_checks/consul/__about__.py index 4b554abe35835..5778c5423a6b0 100644 --- a/consul/datadog_checks/consul/__about__.py +++ b/consul/datadog_checks/consul/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "2.6.1" +__version__ = "3.0.0" diff --git a/coredns/CHANGELOG.md b/coredns/CHANGELOG.md index 3cd9fbdbb6d8b..bfe5a8e205d0d 100644 --- a/coredns/CHANGELOG.md +++ b/coredns/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.2.3 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/coredns/assets/dashboards/coredns_v2.json b/coredns/assets/dashboards/coredns_v2.json new file mode 100644 index 0000000000000..fe4a1d4720b53 --- /dev/null +++ b/coredns/assets/dashboards/coredns_v2.json @@ -0,0 +1,962 @@ +{ + "title":"CoreDNS [V2]", + "description":"## CoreDNS\n\nWith this dashboard, you can monitor CoreDNS in real time to visualize and monitor DNS failures and cache hits/misses.\n\n- [CoreDNS Integration Docs](https://docs.datadoghq.com/integrations/coredns/)\n- [Monitor CoreDNS with Datadog](https://www.datadoghq.com/blog/monitor-coredns-with-datadog/)\n- [Debugging DNS in Kubernetes](https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/#check-for-errors-in-the-dns-pod) ", + "widgets":[ + { + "id":2197552365820208, + "definition":{ + "title":"About CoreDNS", + "title_align":"center", + "banner_img":"/static/images/integration_dashboard/coredns_hero_1.jpeg", + "show_title":false, + "type":"group", + "layout_type":"ordered", + "widgets":[ + { + "id":2586292269732124, + "definition":{ + "type":"note", + "content":"### With this dashboard, you can monitor CoreDNS in real time to visualize and monitor DNS failures and cache hits/misses.\n\nCoreDNS Guides\n\n- [CoreDNS Integration Docs ↗](https://docs.datadoghq.com/integrations/coredns/)\n- [Monitor CoreDNS with Datadog ↗](https://www.datadoghq.com/blog/monitor-coredns-with-datadog/)\n- [Debugging DNS in Kubernetes ↗](https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/#check-for-errors-in-the-dns-pod) ", + "background_color":"transparent", + "font_size":"14", + "text_align":"left", + "vertical_align":"top", + "show_tick":false, + "tick_pos":"50%", + "tick_edge":"left" + }, + "layout":{ + "x":0, + "y":0, + "width":4, + "height":4 + } + } + ] + }, + "layout":{ + "x":0, + "y":0, + "width":4, + "height":7 + } + }, + { + "id":2010772691059290, + "definition":{ + "title":"Cache", + "title_align":"center", + "background_color":"vivid_purple", + "type":"group", + "layout_type":"ordered", + "widgets":[ + { + "id":6652100387539206, + "definition":{ + "title":"Cache hits vs misses", + "title_size":"16", + "title_align":"left", + "show_legend":true, + "legend_layout":"horizontal", + "legend_columns":[ + "avg", + "min", + "max", + "value", + "sum" + ], + "time":{ + + }, + "type":"timeseries", + "requests":[ + { + "on_right_yaxis":false, + "formulas":[ + { + "alias":"Cache Hits", + "formula":"query1" + } + ], + "queries":[ + { + "query":"avg:coredns.cache_hits_count.count{$cluster,$deployment,$service,$namespace,$node,$label} by {type}.as_count()", + "data_source":"metrics", + "name":"query1" + } + ], + "response_format":"timeseries", + "style":{ + "palette":"dog_classic", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"bars" + }, + { + "on_right_yaxis":false, + "formulas":[ + { + "alias":"Cache Misses", + "formula":"query1" + } + ], + "queries":[ + { + "query":"avg:coredns.cache_misses_count.count{$cluster,$deployment,$service,$namespace,$node,$label}.as_count()", + "data_source":"metrics", + "name":"query1" + } + ], + "response_format":"timeseries", + "style":{ + "palette":"warm", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"bars" + } + ], + "yaxis":{ + "scale":"linear", + "label":"", + "include_zero":true, + "min":"auto", + "max":"auto" + }, + "markers":[ + + ] + }, + "layout":{ + "x":0, + "y":0, + "width":4, + "height":2 + } + }, + { + "id":5163612880793228, + "definition":{ + "title":"Cache size", + "title_size":"16", + "title_align":"left", + "show_legend":true, + "legend_layout":"horizontal", + "legend_columns":[ + "avg", + "min", + "max", + "value", + "sum" + ], + "type":"timeseries", + "requests":[ + { + "on_right_yaxis":false, + "response_format":"timeseries", + "queries":[ + { + "query":"avg:coredns.cache_size.count{$cluster,$deployment,$service,$namespace,$node,$label} by {type}", + "data_source":"metrics", + "name":"query1" + } + ], + "style":{ + "palette":"dog_classic", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"bars" + } + ], + "yaxis":{ + "scale":"linear", + "label":"", + "include_zero":true, + "min":"auto", + "max":"auto" + }, + "markers":[ + + ] + }, + "layout":{ + "x":4, + "y":0, + "width":4, + "height":2 + } + }, + { + "id":8129252478872840, + "definition":{ + "title":"Cache Hit %", + "title_size":"16", + "title_align":"left", + "show_legend":false, + "time":{ + + }, + "type":"heatmap", + "requests":[ + { + "style":{ + "palette":"purple" + }, + "response_format":"timeseries", + "queries":[ + { + "data_source":"metrics", + "name":"query1", + "query":"avg:coredns.cache_hits_count.count{$cluster,$deployment,$service,$namespace,$node,$label} by {host}.as_count()" + }, + { + "data_source":"metrics", + "name":"query2", + "query":"avg:coredns.cache_misses_count.count{$cluster,$deployment,$service,$namespace,$node,$label} by {host}.as_count()" + } + ], + "formulas":[ + { + "formula":"query1 * 100 / (query1 + query2)" + } + ] + } + ] + }, + "layout":{ + "x":0, + "y":2, + "width":8, + "height":3 + } + }, + { + "id":5650030377334470, + "definition":{ + "type":"note", + "content":"The higher the hit ratio, the better. If this is low, even while overall traffic is high, you should consider raising the TTL value in the CoreDNS cache plugin configuration to keep records cached longer.", + "background_color":"purple", + "font_size":"14", + "text_align":"left", + "vertical_align":"center", + "show_tick":true, + "tick_pos":"50%", + "tick_edge":"top", + "has_padding":true + }, + "layout":{ + "x":0, + "y":5, + "width":8, + "height":1 + } + } + ] + }, + "layout":{ + "x":4, + "y":0, + "width":8, + "height":7 + } + }, + { + "id":729145808814926, + "definition":{ + "title":"Resource Usage", + "title_align":"center", + "background_color":"vivid_orange", + "type":"group", + "layout_type":"ordered", + "widgets":[ + { + "id":2456767441672046, + "definition":{ + "title":"CPU Usage", + "title_size":"16", + "title_align":"left", + "show_legend":false, + "legend_layout":"auto", + "legend_columns":[ + "avg", + "min", + "max", + "value", + "sum" + ], + "type":"timeseries", + "requests":[ + { + "formulas":[ + { + "formula":"query1", + "alias":"CPU Seconds" + } + ], + "response_format":"timeseries", + "on_right_yaxis":false, + "queries":[ + { + "query":"max:coredns.process.cpu_seconds_total{$cluster,$deployment,$service,$namespace,$node,$label}.as_count()", + "data_source":"metrics", + "name":"query1" + } + ], + "style":{ + "palette":"orange", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"line" + } + ], + "yaxis":{ + "scale":"linear", + "label":"", + "include_zero":true, + "min":"auto", + "max":"auto" + }, + "markers":[ + + ] + }, + "layout":{ + "x":0, + "y":0, + "width":8, + "height":2 + } + }, + { + "id":969087395184616, + "definition":{ + "title":"Open file descriptors", + "title_size":"16", + "title_align":"left", + "show_legend":true, + "legend_layout":"auto", + "legend_columns":[ + "avg", + "min", + "max", + "value", + "sum" + ], + "type":"timeseries", + "requests":[ + { + "formulas":[ + { + "formula":"query1", + "alias":"Max File Descriptors" + } + ], + "response_format":"timeseries", + "on_right_yaxis":false, + "queries":[ + { + "query":"avg:coredns.process.max_fds{$cluster,$deployment,$service,$namespace,$node,$label}", + "data_source":"metrics", + "name":"query1" + } + ], + "style":{ + "palette":"orange", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"line" + }, + { + "formulas":[ + { + "formula":"query1", + "alias":"Open File Descriptors" + } + ], + "response_format":"timeseries", + "on_right_yaxis":false, + "queries":[ + { + "query":"avg:coredns.process.open_fds{$cluster,$deployment,$service,$namespace,$node,$label}", + "data_source":"metrics", + "name":"query1" + } + ], + "style":{ + "palette":"dog_classic", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"line" + } + ], + "yaxis":{ + "scale":"linear", + "label":"", + "include_zero":true, + "min":"auto", + "max":"auto" + }, + "markers":[ + + ] + }, + "layout":{ + "x":0, + "y":2, + "width":5, + "height":2 + } + }, + { + "id":5425374732596050, + "definition":{ + "type":"note", + "content":" If your graphs show you’re running out of file descriptors, you may need to modify your server configuration to increase the available limit. ", + "background_color":"orange", + "font_size":"14", + "text_align":"left", + "vertical_align":"center", + "show_tick":true, + "tick_pos":"50%", + "tick_edge":"left", + "has_padding":true + }, + "layout":{ + "x":5, + "y":2, + "width":3, + "height":2 + } + } + ] + }, + "layout":{ + "x":0, + "y":0, + "width":8, + "height":5, + "is_column_break":true + } + }, + { + "id":8329118887177336, + "definition":{ + "title":" Memstats", + "title_align":"center", + "background_color":"orange", + "type":"group", + "layout_type":"ordered", + "widgets":[ + { + "id":5313027485980740, + "definition":{ + "title":"Allocated bytes", + "title_size":"16", + "title_align":"left", + "show_legend":false, + "legend_layout":"auto", + "legend_columns":[ + "avg", + "min", + "max", + "value", + "sum" + ], + "type":"timeseries", + "requests":[ + { + "formulas":[ + { + "formula":"query1", + "alias":"Allocated Bytes" + } + ], + "response_format":"timeseries", + "on_right_yaxis":false, + "queries":[ + { + "query":"avg:coredns.go.memstats.alloc_bytes{$deployment,$service,$cluster,$namespace,$node,$label}", + "data_source":"metrics", + "name":"query1" + } + ], + "style":{ + "palette":"orange", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"line" + } + ], + "yaxis":{ + "scale":"linear", + "label":"", + "include_zero":true, + "min":"auto", + "max":"auto" + }, + "markers":[ + + ] + }, + "layout":{ + "x":0, + "y":0, + "width":4, + "height":2 + } + }, + { + "id":1207074264588140, + "definition":{ + "title":"Allocated heap", + "title_size":"16", + "title_align":"left", + "show_legend":false, + "legend_layout":"auto", + "legend_columns":[ + "avg", + "min", + "max", + "value", + "sum" + ], + "type":"timeseries", + "requests":[ + { + "formulas":[ + { + "formula":"query1", + "alias":"Allocated Heap" + } + ], + "response_format":"timeseries", + "on_right_yaxis":false, + "queries":[ + { + "query":"avg:coredns.go.memstats.heap_alloc_bytes{$deployment,$service,$cluster,$namespace,$node,$label}", + "data_source":"metrics", + "name":"query1" + } + ], + "style":{ + "palette":"orange", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"line" + } + ], + "yaxis":{ + "scale":"linear", + "label":"", + "include_zero":true, + "min":"auto", + "max":"auto" + }, + "markers":[ + + ] + }, + "layout":{ + "x":0, + "y":2, + "width":4, + "height":2 + } + } + ] + }, + "layout":{ + "x":8, + "y":0, + "width":4, + "height":5 + } + }, + { + "id":6843685726262044, + "definition":{ + "title":"DNS Latency - Request", + "background_color":"blue", + "type":"group", + "layout_type":"ordered", + "widgets":[ + { + "id":6375540467085212, + "definition":{ + "title":"Average upstream request latency", + "title_size":"16", + "title_align":"left", + "show_legend":false, + "legend_layout":"auto", + "legend_columns":[ + "avg", + "min", + "max", + "value", + "sum" + ], + "type":"timeseries", + "requests":[ + { + "formulas":[ + { + "formula":"query1 / query2", + "alias":"Upstream Request Latency" + } + ], + "response_format":"timeseries", + "on_right_yaxis":false, + "queries":[ + { + "query":"sum:coredns.forward_request_duration.seconds.sum{$cluster,$deployment,$service,$namespace,$node,$label}", + "data_source":"metrics", + "name":"query1" + }, + { + "query":"sum:coredns.forward_request_duration.seconds.count{$cluster,$deployment,$service,$namespace,$node,$label}", + "data_source":"metrics", + "name":"query2" + } + ], + "style":{ + "palette":"dog_classic", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"line" + } + ], + "yaxis":{ + "scale":"linear", + "label":"", + "include_zero":true, + "min":"auto", + "max":"auto" + }, + "markers":[ + + ] + }, + "layout":{ + "x":0, + "y":0, + "width":6, + "height":2 + } + }, + { + "id":972681784544666, + "definition":{ + "title":"Average request latency", + "title_size":"16", + "title_align":"left", + "show_legend":false, + "legend_layout":"auto", + "legend_columns":[ + "avg", + "min", + "max", + "value", + "sum" + ], + "type":"timeseries", + "requests":[ + { + "formulas":[ + { + "formula":"query1 / query2", + "alias":"Request Latency" + } + ], + "response_format":"timeseries", + "on_right_yaxis":false, + "queries":[ + { + "query":"sum:coredns.request_duration.seconds.sum{$cluster,$deployment,$service,$namespace,$node,$label}", + "data_source":"metrics", + "name":"query1" + }, + { + "query":"sum:coredns.request_duration.seconds.count{$cluster,$deployment,$service,$namespace,$node,$label}", + "data_source":"metrics", + "name":"query2" + } + ], + "style":{ + "palette":"dog_classic", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"line" + } + ], + "yaxis":{ + "scale":"linear", + "label":"", + "include_zero":true, + "min":"auto", + "max":"auto" + }, + "markers":[ + + ] + }, + "layout":{ + "x":0, + "y":2, + "width":6, + "height":2 + } + }, + { + "id":4485197061940970, + "definition":{ + "type":"note", + "content":"If CoreDNS is slow to resolve requests, your users could encounter poor performance even if your backend services are all responding quickly.", + "background_color":"transparent", + "font_size":"14", + "text_align":"left", + "vertical_align":"top", + "show_tick":false, + "tick_pos":"50%", + "tick_edge":"top", + "has_padding":false + }, + "layout":{ + "x":0, + "y":4, + "width":6, + "height":1 + } + } + ] + }, + "layout":{ + "x":0, + "y":0, + "width":6, + "height":6 + } + }, + { + "id":6109012544060802, + "definition":{ + "title":"DNS Latency - Response", + "background_color":"blue", + "type":"group", + "layout_type":"ordered", + "widgets":[ + { + "id":8480798220641536, + "definition":{ + "title":"Rcode count upstream", + "title_size":"16", + "title_align":"left", + "show_legend":true, + "legend_layout":"horizontal", + "legend_columns":[ + "avg", + "min", + "max", + "value", + "sum" + ], + "time":{ + + }, + "type":"timeseries", + "requests":[ + { + "formulas":[ + { + "formula":"query1" + } + ], + "queries":[ + { + "query":"avg:coredns.forward_response_rcode_count.count{$cluster,$deployment,$service,$namespace,$node,$label} by {rcode}.as_count()", + "data_source":"metrics", + "name":"query1" + } + ], + "response_format":"timeseries", + "style":{ + "palette":"dog_classic", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"line" + } + ], + "yaxis":{ + "scale":"linear", + "label":"", + "include_zero":true, + "min":"auto", + "max":"auto" + }, + "markers":[ + + ] + }, + "layout":{ + "x":0, + "y":0, + "width":6, + "height":2 + } + }, + { + "id":100857845205490, + "definition":{ + "title":"Rcode count", + "title_size":"16", + "title_align":"left", + "show_legend":true, + "legend_layout":"horizontal", + "legend_columns":[ + "avg", + "min", + "max", + "value", + "sum" + ], + "time":{ + + }, + "type":"timeseries", + "requests":[ + { + "formulas":[ + { + "formula":"query1" + } + ], + "queries":[ + { + "query":"avg:coredns.response_code_count.count{$cluster,$deployment,$service,$namespace,$node,$label} by {rcode}.as_count()", + "data_source":"metrics", + "name":"query1" + } + ], + "response_format":"timeseries", + "style":{ + "palette":"dog_classic", + "line_type":"solid", + "line_width":"normal" + }, + "display_type":"line" + } + ], + "yaxis":{ + "scale":"linear", + "label":"", + "include_zero":true, + "min":"auto", + "max":"auto" + }, + "markers":[ + + ] + }, + "layout":{ + "x":0, + "y":2, + "width":6, + "height":2 + } + }, + { + "id":441625512207476, + "definition":{ + "type":"note", + "content":"When CoreDNS encounters an error, it returns an rcode—a standard DNS error code. \n\nErrors like NXDomain and FormErr can reveal a problem with the requests CoreDNS is receiving, while a ServFail error could indicate an issue with the function of the CoreDNS server itself. ", + "background_color":"transparent", + "font_size":"14", + "text_align":"left", + "vertical_align":"top", + "show_tick":false, + "tick_pos":"50%", + "tick_edge":"top", + "has_padding":false + }, + "layout":{ + "x":0, + "y":4, + "width":6, + "height":1 + } + } + ] + }, + "layout":{ + "x":6, + "y":0, + "width":6, + "height":6 + } + } + ], + "template_variables":[ + { + "name":"cluster", + "prefix":"kube_cluster_name", + "available_values":[ + + ], + "default":"*" + }, + { + "name":"deployment", + "prefix":"kube_deployment", + "available_values":[ + + ], + "default":"*" + }, + { + "name":"service", + "prefix":"kube_service", + "available_values":[ + + ], + "default":"*" + }, + { + "name":"namespace", + "prefix":"kube_namespace", + "available_values":[ + + ], + "default":"*" + }, + { + "name":"node", + "prefix":"node", + "available_values":[ + + ], + "default":"*" + }, + { + "name":"label", + "prefix":"label", + "available_values":[ + + ], + "default":"*" + } + ], + "layout_type":"ordered", + "notify_list":[ + + ], + "reflow_type":"fixed" + } \ No newline at end of file diff --git a/coredns/datadog_checks/coredns/__about__.py b/coredns/datadog_checks/coredns/__about__.py index 3200ed866fecd..c25988b9e6d8b 100644 --- a/coredns/datadog_checks/coredns/__about__.py +++ b/coredns/datadog_checks/coredns/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.2.3' +__version__ = '4.0.0' diff --git a/coredns/manifest.json b/coredns/manifest.json index 347f769132b15..ea75137a84dae 100644 --- a/coredns/manifest.json +++ b/coredns/manifest.json @@ -65,11 +65,12 @@ "auto_install": true }, "dashboards": { - "CoreDNS": "assets/dashboards/coredns.json" + "CoreDNS": "assets/dashboards/coredns.json", + "CoreDNS [V2]": "assets/dashboards/coredns_v2.json" }, "monitors": { "Cache hits count is low": "assets/monitors/coredns_cache_hits_low.json", "Request duration is high": "assets/monitors/coredns_request_duration_high.json" } } -} \ No newline at end of file +} diff --git a/couch/CHANGELOG.md b/couch/CHANGELOG.md index 3c0e6afeed988..6dadd95ae90dd 100644 --- a/couch/CHANGELOG.md +++ b/couch/CHANGELOG.md @@ -2,6 +2,12 @@ +## 7.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 6.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/couch/datadog_checks/couch/__about__.py b/couch/datadog_checks/couch/__about__.py index 464f2865446dd..18882fdf3298a 100644 --- a/couch/datadog_checks/couch/__about__.py +++ b/couch/datadog_checks/couch/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "6.2.1" +__version__ = "7.0.0" diff --git a/couchbase/CHANGELOG.md b/couchbase/CHANGELOG.md index 42bf59e5d5ec9..83f4ca5ee8d03 100644 --- a/couchbase/CHANGELOG.md +++ b/couchbase/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/couchbase/datadog_checks/couchbase/__about__.py b/couchbase/datadog_checks/couchbase/__about__.py index e41ae1cd12567..f81a9a356ff96 100644 --- a/couchbase/datadog_checks/couchbase/__about__.py +++ b/couchbase/datadog_checks/couchbase/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "3.2.1" +__version__ = "4.0.0" diff --git a/crio/CHANGELOG.md b/crio/CHANGELOG.md index e9582ca684094..492dd519c9e5e 100644 --- a/crio/CHANGELOG.md +++ b/crio/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.6.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/crio/datadog_checks/crio/__about__.py b/crio/datadog_checks/crio/__about__.py index 1999eb9d470ba..09adcddf171c4 100644 --- a/crio/datadog_checks/crio/__about__.py +++ b/crio/datadog_checks/crio/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.6.1' +__version__ = '3.0.0' diff --git a/datadog_checks_base/CHANGELOG.md b/datadog_checks_base/CHANGELOG.md index 01544ab6ff84c..ed0e8f1fc24a7 100644 --- a/datadog_checks_base/CHANGELOG.md +++ b/datadog_checks_base/CHANGELOG.md @@ -12,6 +12,12 @@ * Bump the python version from 3.11 to 3.12 ([#18207](https://github.com/DataDog/integrations-core/pull/18207)) +## 36.16.0 / 2024-09-30 / Agent 7.58.0 + +***Security***: + +* Bump version of cryptography to 43.0.1 to address vulnerability ([#18656](https://github.com/DataDog/integrations-core/pull/18656)) + ## 36.15.0 / 2024-09-05 ***Added***: diff --git a/datadog_checks_base/changelog.d/18656.security b/datadog_checks_base/changelog.d/18656.security deleted file mode 100644 index ad676917cac26..0000000000000 --- a/datadog_checks_base/changelog.d/18656.security +++ /dev/null @@ -1 +0,0 @@ -Bump version of cryptography to 43.0.1 to address vulnerability \ No newline at end of file diff --git a/datadog_checks_base/changelog.d/18758.added b/datadog_checks_base/changelog.d/18758.added new file mode 100644 index 0000000000000..426f18362cb36 --- /dev/null +++ b/datadog_checks_base/changelog.d/18758.added @@ -0,0 +1 @@ +Added Postgres cross-org telemetry metrics. diff --git a/datadog_checks_base/datadog_checks/base/stubs/datadog_agent.py b/datadog_checks_base/datadog_checks/base/stubs/datadog_agent.py index 5d355a97c7f72..67f59540d0a80 100644 --- a/datadog_checks_base/datadog_checks/base/stubs/datadog_agent.py +++ b/datadog_checks_base/datadog_checks/base/stubs/datadog_agent.py @@ -29,6 +29,7 @@ def __init__(self): self._process_start_time = 0 self._external_tags = [] self._host_tags = "{}" + self._sent_telemetry = defaultdict(list) def get_default_config(self): return {'enable_metadata_collection': True, 'disable_unsafe_yaml': True} @@ -84,6 +85,12 @@ def assert_external_tags_count(self, count): count, tags_count, repr(self._external_tags) ) + def assert_telemetry(self, check_name, metric_name, metric_type, metric_value): + values = self._sent_telemetry[(check_name, metric_name, metric_type)] + assert metric_value in values, 'Expected value {} for check {}, metric {}, type {}. Found {}.'.format( + metric_value, check_name, metric_name, metric_type, values + ) + def get_hostname(self): return self._hostname @@ -152,6 +159,9 @@ def obfuscate_mongodb_string(self, command): # Passthrough stub: obfuscation implementation is in Go code. return command + def emit_agent_telemetry(self, check_name, metric_name, metric_value, metric_type): + self._sent_telemetry[(check_name, metric_name, metric_type)].append(metric_value) + # Use the stub as a singleton datadog_agent = DatadogAgentStub() diff --git a/datadog_checks_dependency_provider/CHANGELOG.md b/datadog_checks_dependency_provider/CHANGELOG.md index a01b505185dc7..61709646cbe3f 100644 --- a/datadog_checks_dependency_provider/CHANGELOG.md +++ b/datadog_checks_dependency_provider/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.4.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/datadog_checks_dependency_provider/datadog_checks/datadog_checks_dependency_provider/__about__.py b/datadog_checks_dependency_provider/datadog_checks/datadog_checks_dependency_provider/__about__.py index 294552374efbb..a16255352ee20 100644 --- a/datadog_checks_dependency_provider/datadog_checks/datadog_checks_dependency_provider/__about__.py +++ b/datadog_checks_dependency_provider/datadog_checks/datadog_checks_dependency_provider/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.4.0' +__version__ = '2.0.0' diff --git a/datadog_checks_downloader/CHANGELOG.md b/datadog_checks_downloader/CHANGELOG.md index a35f35b258b6a..588cd5bc74fa6 100644 --- a/datadog_checks_downloader/CHANGELOG.md +++ b/datadog_checks_downloader/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.7.0 / 2024-07-05 / Agent 7.55.0 ***Security***: diff --git a/datadog_checks_downloader/datadog_checks/downloader/__about__.py b/datadog_checks_downloader/datadog_checks/downloader/__about__.py index ba8c98a598596..e682df53d5857 100644 --- a/datadog_checks_downloader/datadog_checks/downloader/__about__.py +++ b/datadog_checks_downloader/datadog_checks/downloader/__about__.py @@ -4,4 +4,4 @@ # NOTE: tie datadog-checks-downloader to v2 of our software supply chain: # https://github.com/DataDog/integrations-core/blob/6388602b6deb3b65b62cf7cda69dc20d99dede29/datadog_checks_downloader/datadog_checks/downloader/download.py#L51 -__version__ = "4.7.0" +__version__ = "5.0.0" diff --git a/datadog_cluster_agent/CHANGELOG.md b/datadog_cluster_agent/CHANGELOG.md index 67fe1cbea6f07..d8250e92ff356 100644 --- a/datadog_cluster_agent/CHANGELOG.md +++ b/datadog_cluster_agent/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.2.0 / 2024-08-09 / Agent 7.57.0 ***Added***: diff --git a/datadog_cluster_agent/datadog_checks/datadog_cluster_agent/__about__.py b/datadog_cluster_agent/datadog_checks/datadog_cluster_agent/__about__.py index 5700e88915255..57773e0f36fbd 100644 --- a/datadog_cluster_agent/datadog_checks/datadog_cluster_agent/__about__.py +++ b/datadog_cluster_agent/datadog_checks/datadog_cluster_agent/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.2.0' +__version__ = '4.0.0' diff --git a/dcgm/CHANGELOG.md b/dcgm/CHANGELOG.md index de6e465bbac36..814e957135e69 100644 --- a/dcgm/CHANGELOG.md +++ b/dcgm/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.3.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/dcgm/datadog_checks/dcgm/__about__.py b/dcgm/datadog_checks/dcgm/__about__.py index 3a4912c5dcc6a..9d7317788718b 100644 --- a/dcgm/datadog_checks/dcgm/__about__.py +++ b/dcgm/datadog_checks/dcgm/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.3.2' +__version__ = '3.0.0' diff --git a/directory/CHANGELOG.md b/directory/CHANGELOG.md index 7f65d8281295e..0340af23dfbfc 100644 --- a/directory/CHANGELOG.md +++ b/directory/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.1.1 / 2024-02-16 / Agent 7.52.0 ***Fixed***: diff --git a/directory/datadog_checks/directory/__about__.py b/directory/datadog_checks/directory/__about__.py index 287bbeba260f7..09adcddf171c4 100644 --- a/directory/datadog_checks/directory/__about__.py +++ b/directory/datadog_checks/directory/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.1' +__version__ = '3.0.0' diff --git a/disk/CHANGELOG.md b/disk/CHANGELOG.md index 58cc330b90c0b..ddab856c8fabc 100644 --- a/disk/CHANGELOG.md +++ b/disk/CHANGELOG.md @@ -2,6 +2,16 @@ +## 6.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Upgrade psutil to 6.0.0 to fix performance issues addressed ([#18688](https://github.com/DataDog/integrations-core/pull/18688)) + ## 5.4.0 / 2024-09-05 ***Added***: diff --git a/disk/changelog.d/18688.added b/disk/changelog.d/18688.added deleted file mode 100644 index 30f2555bc26eb..0000000000000 --- a/disk/changelog.d/18688.added +++ /dev/null @@ -1 +0,0 @@ -Upgrade psutil to 6.0.0 to fix performance issues addressed \ No newline at end of file diff --git a/disk/datadog_checks/disk/__about__.py b/disk/datadog_checks/disk/__about__.py index 37bb880e2a7b2..91262416e46c9 100644 --- a/disk/datadog_checks/disk/__about__.py +++ b/disk/datadog_checks/disk/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "5.4.0" +__version__ = "6.0.0" diff --git a/dns_check/CHANGELOG.md b/dns_check/CHANGELOG.md index 94a2f8db7897e..cf8f4513f8560 100644 --- a/dns_check/CHANGELOG.md +++ b/dns_check/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.3.0 / 2024-03-22 / Agent 7.53.0 ***Added***: diff --git a/dns_check/datadog_checks/dns_check/__about__.py b/dns_check/datadog_checks/dns_check/__about__.py index ccf4c4835eb69..c25988b9e6d8b 100644 --- a/dns_check/datadog_checks/dns_check/__about__.py +++ b/dns_check/datadog_checks/dns_check/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.0' +__version__ = '4.0.0' diff --git a/dotnetclr/CHANGELOG.md b/dotnetclr/CHANGELOG.md index a59c0bb6f7bda..891663c37b57f 100644 --- a/dotnetclr/CHANGELOG.md +++ b/dotnetclr/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/dotnetclr/datadog_checks/dotnetclr/__about__.py b/dotnetclr/datadog_checks/dotnetclr/__about__.py index 287bbeba260f7..09adcddf171c4 100644 --- a/dotnetclr/datadog_checks/dotnetclr/__about__.py +++ b/dotnetclr/datadog_checks/dotnetclr/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.1' +__version__ = '3.0.0' diff --git a/druid/CHANGELOG.md b/druid/CHANGELOG.md index a91e913c30a40..2a738431c1257 100644 --- a/druid/CHANGELOG.md +++ b/druid/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/druid/datadog_checks/druid/__about__.py b/druid/datadog_checks/druid/__about__.py index 7cb02e2db8123..f046338059ddf 100644 --- a/druid/datadog_checks/druid/__about__.py +++ b/druid/datadog_checks/druid/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.5.1' +__version__ = '3.0.0' diff --git a/ecs_fargate/CHANGELOG.md b/ecs_fargate/CHANGELOG.md index 91dd419f87730..6f59a9fd1cac1 100644 --- a/ecs_fargate/CHANGELOG.md +++ b/ecs_fargate/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/ecs_fargate/datadog_checks/ecs_fargate/__about__.py b/ecs_fargate/datadog_checks/ecs_fargate/__about__.py index 47897f7ba8b0a..d2601db5d5cc0 100644 --- a/ecs_fargate/datadog_checks/ecs_fargate/__about__.py +++ b/ecs_fargate/datadog_checks/ecs_fargate/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.3.1' +__version__ = '5.0.0' diff --git a/eks_fargate/CHANGELOG.md b/eks_fargate/CHANGELOG.md index f1fc030324648..da3925cbf143b 100644 --- a/eks_fargate/CHANGELOG.md +++ b/eks_fargate/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/eks_fargate/datadog_checks/eks_fargate/__about__.py b/eks_fargate/datadog_checks/eks_fargate/__about__.py index dcbdcf09b9b28..cffe407448d66 100644 --- a/eks_fargate/datadog_checks/eks_fargate/__about__.py +++ b/eks_fargate/datadog_checks/eks_fargate/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020 # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.2.1' +__version__ = '5.0.0' diff --git a/elastic/CHANGELOG.md b/elastic/CHANGELOG.md index 258cfec54dcea..d09166d756847 100644 --- a/elastic/CHANGELOG.md +++ b/elastic/CHANGELOG.md @@ -2,6 +2,12 @@ +## 7.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 6.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/elastic/datadog_checks/elastic/__about__.py b/elastic/datadog_checks/elastic/__about__.py index 4c5167d350045..18882fdf3298a 100644 --- a/elastic/datadog_checks/elastic/__about__.py +++ b/elastic/datadog_checks/elastic/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "6.3.1" +__version__ = "7.0.0" diff --git a/envoy/CHANGELOG.md b/envoy/CHANGELOG.md index 2175b1a92ceb6..b4e2fd9fd78ed 100644 --- a/envoy/CHANGELOG.md +++ b/envoy/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.6.0 / 2024-09-10 ***Added***: diff --git a/envoy/datadog_checks/envoy/__about__.py b/envoy/datadog_checks/envoy/__about__.py index e4c96eacd5850..c25988b9e6d8b 100644 --- a/envoy/datadog_checks/envoy/__about__.py +++ b/envoy/datadog_checks/envoy/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.6.0' +__version__ = '4.0.0' diff --git a/esxi/CHANGELOG.md b/esxi/CHANGELOG.md index 609bba020aea2..a489b2c6d77b5 100644 --- a/esxi/CHANGELOG.md +++ b/esxi/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.2.0 / 2024-07-05 / Agent 7.56.0 ***Added***: diff --git a/esxi/datadog_checks/esxi/__about__.py b/esxi/datadog_checks/esxi/__about__.py index 7addefff57a28..cc393c1dad9ce 100644 --- a/esxi/datadog_checks/esxi/__about__.py +++ b/esxi/datadog_checks/esxi/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.2.0' +__version__ = '2.0.0' diff --git a/etcd/CHANGELOG.md b/etcd/CHANGELOG.md index e19939e950a74..aaa1b6d563fc3 100644 --- a/etcd/CHANGELOG.md +++ b/etcd/CHANGELOG.md @@ -2,6 +2,12 @@ +## 7.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 6.2.2 / 2024-07-05 / Agent 7.56.0 ***Fixed***: diff --git a/etcd/datadog_checks/etcd/__about__.py b/etcd/datadog_checks/etcd/__about__.py index 89de12a9bb8c0..7b8b844cb208e 100644 --- a/etcd/datadog_checks/etcd/__about__.py +++ b/etcd/datadog_checks/etcd/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '6.2.2' +__version__ = '7.0.0' diff --git a/exchange_server/CHANGELOG.md b/exchange_server/CHANGELOG.md index c6f9ca2ce6bdc..c4b24c443dcee 100644 --- a/exchange_server/CHANGELOG.md +++ b/exchange_server/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/exchange_server/datadog_checks/exchange_server/__about__.py b/exchange_server/datadog_checks/exchange_server/__about__.py index 287bbeba260f7..09adcddf171c4 100644 --- a/exchange_server/datadog_checks/exchange_server/__about__.py +++ b/exchange_server/datadog_checks/exchange_server/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.1' +__version__ = '3.0.0' diff --git a/external_dns/CHANGELOG.md b/external_dns/CHANGELOG.md index 3733697fb3f00..243d00c292495 100644 --- a/external_dns/CHANGELOG.md +++ b/external_dns/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/external_dns/datadog_checks/external_dns/__about__.py b/external_dns/datadog_checks/external_dns/__about__.py index 282493d353550..f7e8e61ae8d84 100644 --- a/external_dns/datadog_checks/external_dns/__about__.py +++ b/external_dns/datadog_checks/external_dns/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.2.1' +__version__ = '4.0.0' diff --git a/flink/CHANGELOG.md b/flink/CHANGELOG.md index 211f3e468c99b..4740dcf4b1b9f 100644 --- a/flink/CHANGELOG.md +++ b/flink/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.5.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/flink/datadog_checks/flink/__about__.py b/flink/datadog_checks/flink/__about__.py index c91765ea0dd55..9c6b2fb79e5ac 100644 --- a/flink/datadog_checks/flink/__about__.py +++ b/flink/datadog_checks/flink/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.5.0' +__version__ = '2.0.0' diff --git a/fluentd/CHANGELOG.md b/fluentd/CHANGELOG.md index f31faf80eb304..a191e9867f4a1 100644 --- a/fluentd/CHANGELOG.md +++ b/fluentd/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/fluentd/datadog_checks/fluentd/__about__.py b/fluentd/datadog_checks/fluentd/__about__.py index 2ff0643692b9e..c25988b9e6d8b 100644 --- a/fluentd/datadog_checks/fluentd/__about__.py +++ b/fluentd/datadog_checks/fluentd/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.2.1' +__version__ = '4.0.0' diff --git a/fluxcd/CHANGELOG.md b/fluxcd/CHANGELOG.md index 81ae3c594cf1a..45988724dd12e 100644 --- a/fluxcd/CHANGELOG.md +++ b/fluxcd/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/fluxcd/datadog_checks/fluxcd/__about__.py b/fluxcd/datadog_checks/fluxcd/__about__.py index db97e440a2426..eeece9d233f4c 100644 --- a/fluxcd/datadog_checks/fluxcd/__about__.py +++ b/fluxcd/datadog_checks/fluxcd/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "1.2.2" +__version__ = "2.0.0" diff --git a/fly_io/CHANGELOG.md b/fly_io/CHANGELOG.md index f0f49603316a2..f8d7ccae517e6 100644 --- a/fly_io/CHANGELOG.md +++ b/fly_io/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.1 / 2024-09-05 ***Fixed***: diff --git a/fly_io/datadog_checks/fly_io/__about__.py b/fly_io/datadog_checks/fly_io/__about__.py index e0db4e56d553f..cc393c1dad9ce 100644 --- a/fly_io/datadog_checks/fly_io/__about__.py +++ b/fly_io/datadog_checks/fly_io/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.1' +__version__ = '2.0.0' diff --git a/foundationdb/CHANGELOG.md b/foundationdb/CHANGELOG.md index b4407fd202ec5..708598ebce609 100644 --- a/foundationdb/CHANGELOG.md +++ b/foundationdb/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.4.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/foundationdb/datadog_checks/foundationdb/__about__.py b/foundationdb/datadog_checks/foundationdb/__about__.py index 5f433e383a2fc..151d46d81e6db 100644 --- a/foundationdb/datadog_checks/foundationdb/__about__.py +++ b/foundationdb/datadog_checks/foundationdb/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.4.0' +__version__ = '2.0.0' diff --git a/gearmand/CHANGELOG.md b/gearmand/CHANGELOG.md index 1bb217dc1993e..8eab9a456f10d 100644 --- a/gearmand/CHANGELOG.md +++ b/gearmand/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/gearmand/datadog_checks/gearmand/__about__.py b/gearmand/datadog_checks/gearmand/__about__.py index 6ff863c1fc552..c25988b9e6d8b 100644 --- a/gearmand/datadog_checks/gearmand/__about__.py +++ b/gearmand/datadog_checks/gearmand/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.1.0' +__version__ = '4.0.0' diff --git a/gitlab/CHANGELOG.md b/gitlab/CHANGELOG.md index d06f529797674..3423ea1a7155a 100644 --- a/gitlab/CHANGELOG.md +++ b/gitlab/CHANGELOG.md @@ -2,6 +2,12 @@ +## 8.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 7.3.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/gitlab/datadog_checks/gitlab/__about__.py b/gitlab/datadog_checks/gitlab/__about__.py index e9b59d1d59c2d..9025559f4a9cf 100644 --- a/gitlab/datadog_checks/gitlab/__about__.py +++ b/gitlab/datadog_checks/gitlab/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '7.3.2' +__version__ = '8.0.0' diff --git a/gitlab_runner/CHANGELOG.md b/gitlab_runner/CHANGELOG.md index e5a69412ff9bb..bf0fe5bb0d6cc 100644 --- a/gitlab_runner/CHANGELOG.md +++ b/gitlab_runner/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/gitlab_runner/datadog_checks/gitlab_runner/__about__.py b/gitlab_runner/datadog_checks/gitlab_runner/__about__.py index 40fe88961bf3c..d2601db5d5cc0 100644 --- a/gitlab_runner/datadog_checks/gitlab_runner/__about__.py +++ b/gitlab_runner/datadog_checks/gitlab_runner/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.2.1' +__version__ = '5.0.0' diff --git a/glusterfs/CHANGELOG.md b/glusterfs/CHANGELOG.md index 58fb5f4546fcb..80758b89b65a7 100644 --- a/glusterfs/CHANGELOG.md +++ b/glusterfs/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.8.0 / 2024-09-05 ***Added***: diff --git a/glusterfs/datadog_checks/glusterfs/__about__.py b/glusterfs/datadog_checks/glusterfs/__about__.py index 5ce49ba9276dc..9c6b2fb79e5ac 100644 --- a/glusterfs/datadog_checks/glusterfs/__about__.py +++ b/glusterfs/datadog_checks/glusterfs/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.8.0' +__version__ = '2.0.0' diff --git a/go_expvar/CHANGELOG.md b/go_expvar/CHANGELOG.md index 51ae775a7ffab..76dd74ec8096f 100644 --- a/go_expvar/CHANGELOG.md +++ b/go_expvar/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/go_expvar/datadog_checks/go_expvar/__about__.py b/go_expvar/datadog_checks/go_expvar/__about__.py index c671054d218e9..09adcddf171c4 100644 --- a/go_expvar/datadog_checks/go_expvar/__about__.py +++ b/go_expvar/datadog_checks/go_expvar/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.5.1' +__version__ = '3.0.0' diff --git a/godaddy/README.md b/godaddy/README.md index d2a881db82891..ba537ede595f4 100644 --- a/godaddy/README.md +++ b/godaddy/README.md @@ -1,13 +1,40 @@ +# GoDaddy + ## Overview -The GoDaddy integration seamlessly collects metrics from SSL certificates and domains, directing them into Datadog for analysis. This integration provides insights including total certificates, issued certificates, expired certificates, revoked certificates, count of domains associated with each certificate. It features statistics for certificates that are about to expire along with many additional metrics, all accessible through out-of-the-box dashboards and monitors. +GoDaddy is a web hosting and domain registration company that helps individuals and businesses establish their online presence. One of their key offerings is SSL certificate services. GoDaddy provides several types of SSL certificates, including Standard SSL for securing one site, Wildcard SSL for securing multiple subdomains, and advanced solutions for ecommerce sites requiring enhanced security. + +The GoDaddy integration collects metrics from SSL certificates and their domains, directing them into Datadog for analysis. This integration provides data points such as the total number of certificates, issued certificates, expired certificates, revoked certificates, and domains associated with each certificate. It also includes specific metrics for certificates nearing expiration. All these metrics are accessible through out-of-the-box dashboards and monitors. ## Setup -### Configuration -!!! Add list of steps to set up this integration !!! +### Get API credentials from GoDaddy + +#### Find your GoDaddy API key and API secret + +- Navigate to the [GoDaddy Developer Portal][1]. +- Sign in with your GoDaddy account. +- Select "API Keys." +- Choose "Create New API Key." +- Provide a name for your API. +- Select "Production" under Environment. +- Click "Next." Your API Key is now created. +- Copy these credentials for the following configuration steps. Ensure they are stored securely and not exposed in public repositories or insecure locations. +- After storing your API Key and Secret, click on "Got It." + +#### Find your GoDaddy customer number + +- Go to your GoDaddy [Login & PIN page][2]. You might be prompted to sign in. +Under **Login Info**, find your **Customer number** (also known as your **shopper ID**). + +### GoDaddy Datadog Integration Configuration + +Configure the Datadog endpoint to forward GoDaddy metrics to Datadog. -### Validation -!!! Add steps to validate integration is functioning as expected !!! +1. Navigate to `GoDaddy`. +2. Add your GoDaddy credentials. + - GoDaddy API key + - GoDaddy secret key + - GoDaddy customer number (or shopper ID) ## Data Collected @@ -17,7 +44,7 @@ The GoDaddy integration does not include any logs. ### Metrics -The GoDaddy integration collects and forwards Certificates and their Domains metrics to Datadog. See [metadata.csv][3] for a list of metrics provided by this integration. +The GoDaddy integration collects and forwards Certificates and their Domains metrics to Datadog. See [metadata.csv][5] for a list of metrics provided by this integration. ### Events @@ -25,8 +52,10 @@ The GoDaddy integration does not include any events. ## Support -For further assistance, contact [Datadog Support][2]. +For further assistance, contact [Datadog Support][4]. [1]: https://developer.godaddy.com/ -[2]: https://docs.datadoghq.com/help/ -[3]: https://github.com/DataDog/integrations-core/blob/master/godaddy/metadata.csv \ No newline at end of file +[2]: https://sso.godaddy.com/security +[3]: https://developer.godaddy.com/doc/ +[4]: https://docs.datadoghq.com/help/ +[5]: https://github.com/DataDog/integrations-core/blob/master/godaddy/metadata.csv diff --git a/godaddy/assets/dashboards/godaddy_overview.json b/godaddy/assets/dashboards/godaddy_overview.json new file mode 100644 index 0000000000000..1dd6f7de92443 --- /dev/null +++ b/godaddy/assets/dashboards/godaddy_overview.json @@ -0,0 +1,733 @@ +{ + "title": "GoDaddy Overview", + "description": "Godaddy dashboard provides an overview of certificate management, including the total count of certificates, the count of issued certificates, the count of expired certificates, the count of revoked certificates, and the distribution of certificates by status. It also shows the count of domains associated with each certificate and the list of certificates that are soon to expire. Additionally, it displays the status of certificate and domain monitors.", + "widgets": [ + { + "id": 1539830225140338, + "definition": { + "type": "image", + "url": "https://s23.q4cdn.com/406380394/files/images/media_resources/2022/GD_LOCKUP_RGB_BW.svg", + "url_dark_theme": "https://s23.q4cdn.com/406380394/files/images/media_resources/2022/GD_LOCKUP_RGB_BW_DARK_BG.svg", + "sizing": "fill", + "has_background": false, + "has_border": false, + "vertical_align": "center", + "horizontal_align": "center" + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 2 + } + }, + { + "id": 6674344167556010, + "definition": { + "title": "Certificates Summary", + "background_color": "vivid_purple", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 3210784733654786, + "definition": { + "title": "Total Certificates", + "title_size": "16", + "title_align": "left", + "time": { + "type": "live", + "unit": "hour", + "value": 4 + }, + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:godaddy.certificate.total_certificates{$CustomerId}.as_count()", + "aggregator": "last" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_green", + "custom_bg_color": "#3d0de7" + } + ] + } + ], + "autoscale": true, + "precision": 0 + }, + "layout": { + "x": 0, + "y": 0, + "width": 3, + "height": 3 + } + }, + { + "id": 3886541897398508, + "definition": { + "title": "Expired Certificates", + "title_size": "16", + "title_align": "left", + "time": { + "type": "live", + "unit": "hour", + "value": 4 + }, + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:godaddy.certificate.expired_certificates{$CustomerId}.as_count()", + "aggregator": "last" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 0 + }, + "layout": { + "x": 3, + "y": 0, + "width": 3, + "height": 3 + } + }, + { + "id": 5615391778213782, + "definition": { + "title": "Issued Certificates", + "title_size": "16", + "title_align": "left", + "time": { + "type": "live", + "unit": "hour", + "value": 4 + }, + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:godaddy.certificate.issued_certificates{$CustomerId}.as_count()", + "aggregator": "last" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_yellow" + } + ] + } + ], + "autoscale": true, + "precision": 0 + }, + "layout": { + "x": 0, + "y": 3, + "width": 3, + "height": 3 + } + }, + { + "id": 6578909606700220, + "definition": { + "title": "Revoked Certificates", + "title_size": "16", + "title_align": "left", + "time": { + "type": "live", + "unit": "hour", + "value": 4 + }, + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:godaddy.certificate.revoked_certificates{$CustomerId}.as_count()", + "aggregator": "last" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "conditional_formats": [ + { + "comparator": ">=", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 0 + }, + "layout": { + "x": 3, + "y": 3, + "width": 3, + "height": 3 + } + } + ] + }, + "layout": { + "x": 6, + "y": 0, + "width": 6, + "height": 7 + } + }, + { + "id": 1277505914651742, + "definition": { + "type": "note", + "content": "**Overview**\n\nThis dashboard provides an overview of certificate summary, including the total count of certificates, the count of issued certificates, the count of expired certificates, the count of revoked certificates, and the distribution of certificates by status. It also shows the count of domains associated with each certificate and the list of certificates that are soon to expire. Additionally, it displays the status of certificate and domain monitors.\n\nFor more information, see the [GoDaddy Integration Documentation](https://docs.datadoghq.com/integrations/godaddy/).", + "background_color": "white", + "font_size": "14", + "text_align": "left", + "vertical_align": "top", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left", + "has_padding": true + }, + "layout": { + "x": 0, + "y": 2, + "width": 6, + "height": 3 + } + }, + { + "id": 1865135671025406, + "definition": { + "type": "note", + "content": "**NOTE** \n\nThe data displayed in the dashboard widgets is time-bounded. Therefore, adjusting the global time filter will not impact these widgets.", + "background_color": "yellow", + "font_size": "14", + "text_align": "left", + "vertical_align": "center", + "show_tick": true, + "tick_pos": "50%", + "tick_edge": "top", + "has_padding": true + }, + "layout": { + "x": 0, + "y": 5, + "width": 6, + "height": 2 + } + }, + { + "id": 4377282170082600, + "definition": { + "title": "Certificate Insights", + "background_color": "vivid_orange", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 4728178297866722, + "definition": { + "title": "Certificates by Status", + "title_size": "16", + "title_align": "left", + "time": { + "type": "live", + "unit": "hour", + "value": 4 + }, + "requests": [ + { + "response_format": "scalar", + "formulas": [ + { + "formula": "query1 + query2 + query3 + query4 + query5 + query6 + query7 + query8 + query9" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:godaddy.certificate.issued_certificates{$CustomerId} by {status}.as_count()", + "aggregator": "last" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:godaddy.certificate.denied_certificates{$CustomerId} by {status}.as_count()", + "aggregator": "last" + }, + { + "data_source": "metrics", + "name": "query3", + "query": "sum:godaddy.certificate.expired_certificates{$CustomerId} by {status}.as_count()", + "aggregator": "last" + }, + { + "data_source": "metrics", + "name": "query4", + "query": "sum:godaddy.certificate.canceled_certificates{$CustomerId} by {status}.as_count()", + "aggregator": "last" + }, + { + "data_source": "metrics", + "name": "query5", + "query": "sum:godaddy.certificate.revoked_certificates{$CustomerId} by {status}.as_count()", + "aggregator": "last" + }, + { + "data_source": "metrics", + "name": "query6", + "query": "sum:godaddy.certificate.pending_issuance_certificates{$CustomerId} by {status}.as_count()", + "aggregator": "last" + }, + { + "data_source": "metrics", + "name": "query7", + "query": "sum:godaddy.certificate.pending_rekey_certificates{$CustomerId} by {status}.as_count()", + "aggregator": "last" + }, + { + "data_source": "metrics", + "name": "query8", + "query": "sum:godaddy.certificate.pending_revocation_certificates{$CustomerId} by {status}.as_count()", + "aggregator": "last" + }, + { + "data_source": "metrics", + "name": "query9", + "query": "sum:godaddy.certificate.unused_certificates{$CustomerId} by {status}.as_count()", + "aggregator": "last" + } + ], + "style": { + "palette": "datadog16" + }, + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 12, + "height": 5 + } + }, + { + "id": 2848804234196820, + "definition": { + "title": "Soon to be Expired Certificates", + "title_size": "16", + "title_align": "left", + "time": { + "type": "live", + "unit": "hour", + "value": 4 + }, + "type": "query_table", + "requests": [ + { + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "min:godaddy.certificate.certificate_expiration_days{$CustomerId} by {certificateid,commonname}.as_count()", + "aggregator": "last" + } + ], + "response_format": "scalar", + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "asc" + } + ] + }, + "formulas": [ + { + "conditional_formats": [ + { + "comparator": "<=", + "value": 30, + "palette": "white_on_red" + }, + { + "comparator": ">", + "value": 30, + "palette": "white_on_green" + } + ], + "cell_display_mode": "bar", + "alias": "Remaining Days in Expiry", + "formula": "query1" + } + ] + } + ], + "has_search_bar": "auto" + }, + "layout": { + "x": 0, + "y": 5, + "width": 12, + "height": 5 + } + }, + { + "id": 229722093944502, + "definition": { + "title": "Certificates over Time", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "time": { + "type": "live", + "unit": "day", + "value": 1 + }, + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "Cancelled Certificates", + "formula": "query2" + }, + { + "alias": "Denied Certificates", + "formula": "query3" + }, + { + "alias": "Expired Certificates", + "formula": "query4" + }, + { + "alias": "Issued Certificates", + "formula": "query5" + }, + { + "alias": "Pending Issued Certificates", + "formula": "query6" + }, + { + "alias": "Pending Revocation Certificates", + "formula": "query7" + }, + { + "alias": "Pending Rekey Certificates", + "formula": "query8" + }, + { + "alias": "Revoked Certificates", + "formula": "query9" + }, + { + "alias": "Unused Certificates", + "formula": "query10" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query2", + "query": "sum:godaddy.certificate.canceled_certificates{$CustomerId}.as_count()" + }, + { + "data_source": "metrics", + "name": "query3", + "query": "sum:godaddy.certificate.denied_certificates{$CustomerId}.as_count()" + }, + { + "data_source": "metrics", + "name": "query4", + "query": "sum:godaddy.certificate.expired_certificates{$CustomerId}.as_count()" + }, + { + "data_source": "metrics", + "name": "query5", + "query": "sum:godaddy.certificate.issued_certificates{$CustomerId}.as_count()" + }, + { + "data_source": "metrics", + "name": "query6", + "query": "sum:godaddy.certificate.pending_issuance_certificates{$CustomerId}.as_count()" + }, + { + "data_source": "metrics", + "name": "query7", + "query": "sum:godaddy.certificate.pending_revocation_certificates{$CustomerId}.as_count()" + }, + { + "data_source": "metrics", + "name": "query8", + "query": "sum:godaddy.certificate.pending_rekey_certificates{$CustomerId}.as_count()" + }, + { + "data_source": "metrics", + "name": "query9", + "query": "sum:godaddy.certificate.revoked_certificates{$CustomerId}.as_count()" + }, + { + "data_source": "metrics", + "name": "query10", + "query": "sum:godaddy.certificate.unused_certificates{$CustomerId}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "order_by": "values", + "color_order": "shuffled", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 10, + "width": 12, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 7, + "width": 12, + "height": 15 + } + }, + { + "id": 6555127930450788, + "definition": { + "title": "Domain Overview", + "background_color": "vivid_yellow", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 5177473629095424, + "definition": { + "title": "Domain Count by Certificate", + "title_size": "16", + "title_align": "left", + "time": { + "type": "live", + "unit": "hour", + "value": 4 + }, + "type": "query_table", + "requests": [ + { + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:godaddy.certificate.domains_count{$CustomerId} by {certificateid}.as_count()", + "aggregator": "last" + } + ], + "response_format": "scalar", + "sort": { + "count": 500, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + }, + "formulas": [ + { + "cell_display_mode": "bar", + "alias": "Domains Count", + "formula": "query1" + } + ] + } + ], + "has_search_bar": "auto" + }, + "layout": { + "x": 0, + "y": 0, + "width": 12, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 22, + "width": 12, + "height": 5, + "is_column_break": true + } + }, + { + "id": 8886524551670130, + "definition": { + "title": "Monitors Overview ", + "background_color": "vivid_green", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 5019585661866338, + "definition": { + "title": "Certificate Monitors Summary", + "type": "manage_status", + "display_format": "countsAndList", + "color_preference": "background", + "hide_zero_counts": true, + "show_status": true, + "last_triggered_format": "relative", + "query": "tag:(service:certificate AND source:godaddy)", + "sort": "status,asc", + "count": 50, + "start": 0, + "summary_type": "monitors", + "show_priority": false, + "show_last_triggered": false + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 5 + } + }, + { + "id": 3522330832237362, + "definition": { + "title": "Domain Monitors Summary", + "type": "manage_status", + "display_format": "countsAndList", + "color_preference": "background", + "hide_zero_counts": true, + "show_status": true, + "last_triggered_format": "relative", + "query": "tag:(service:domain AND source:godaddy)", + "sort": "status,asc", + "count": 50, + "start": 0, + "summary_type": "monitors", + "show_priority": false, + "show_last_triggered": false + }, + "layout": { + "x": 6, + "y": 0, + "width": 6, + "height": 5 + } + } + ] + }, + "layout": { + "x": 0, + "y": 27, + "width": 12, + "height": 6 + } + } + ], + "template_variables": [ + { + "name": "CustomerId", + "prefix": "customer_id", + "available_values": [], + "default": "*" + } + ], + "layout_type": "ordered", + "notify_list": [], + "reflow_type": "fixed" +} \ No newline at end of file diff --git a/godaddy/assets/godaddy.svg b/godaddy/assets/godaddy.svg new file mode 100644 index 0000000000000..c48eaf6df1ff2 --- /dev/null +++ b/godaddy/assets/godaddy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/godaddy/assets/monitors/godaddy_certificate_denied.json b/godaddy/assets/monitors/godaddy_certificate_denied.json new file mode 100644 index 0000000000000..be3140de27bc3 --- /dev/null +++ b/godaddy/assets/monitors/godaddy_certificate_denied.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-08-20", + "last_updated_at": "2024-08-20", + "title": "SSL Certificate Denied", + "description": "The customer's request for an SSL certificate was denied. This monitor tracks the status of the SSL certificate and triggers an alert when the status changes to denied. This process ensures that appropriate actions are taken promptly to address the denial.", + "definition": { + "id": 149884454, + "name": "SSL Certificate Denied", + "type": "query alert", + "query": "sum(last_1h):max:godaddy.certificate.certificate_status{status:denied} by {certificateid} >= 1", + "message": "The certificate {{certificateid.name}} is denied. Please review and take the necessary actions.", + "tags": [ + "service:certificate", + "source:godaddy" + ], + "options": { + "thresholds": { + "critical": 1 + }, + "notify_audit": false, + "include_tags": true, + "notify_no_data": false, + "new_host_delay": 300, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:godaddy" + ] +} \ No newline at end of file diff --git a/godaddy/assets/monitors/godaddy_certificate_expired.json b/godaddy/assets/monitors/godaddy_certificate_expired.json new file mode 100644 index 0000000000000..eff9b43bb15e9 --- /dev/null +++ b/godaddy/assets/monitors/godaddy_certificate_expired.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-08-20", + "last_updated_at": "2024-08-20", + "title": "SSL Certificate Expired", + "description": "An issued SSL certificate has passed its valid end date and is now expired. This monitor tracks the status of the SSL certificate and triggers an alert when the status changes to expired. This ensures that necessary actions are taken promptly to renew the certificate.", + "definition": { + "id": 149114169, + "name": "SSL Certificate Expired", + "type": "query alert", + "query": "sum(last_1h):max:godaddy.certificate.certificate_status{status:expired} by {certificateid} >= 1", + "message": "The certificate {{certificateid.name}} has expired. Please review and take the necessary actions.", + "tags": [ + "service:certificate", + "source:godaddy" + ], + "options": { + "thresholds": { + "critical": 1 + }, + "notify_audit": false, + "include_tags": true, + "notify_no_data": false, + "new_host_delay": 300, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:godaddy" + ] +} \ No newline at end of file diff --git a/godaddy/assets/monitors/godaddy_certificate_in_an_error_state.json b/godaddy/assets/monitors/godaddy_certificate_in_an_error_state.json new file mode 100644 index 0000000000000..627b8b0462681 --- /dev/null +++ b/godaddy/assets/monitors/godaddy_certificate_in_an_error_state.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-08-20", + "last_updated_at": "2024-08-20", + "title": "SSL Certificate in an Error State", + "description": "An SSL certificate is currently in an error state and is not being used. This monitor tracks the status of the SSL certificate and triggers an alert when the status changes to unused. This will help ensure that the issue is promptly addressed.", + "definition": { + "id": 149884381, + "name": "SSL Certificate is in an Error State", + "type": "query alert", + "query": "sum(last_1h):max:godaddy.certificate.certificate_status{status:unused} by {certificateid} >= 1", + "message": "The certificate {{certificateid.name}} is currently in an error state (unused). Please review and take the necessary actions.", + "tags": [ + "service:certificate", + "source:godaddy" + ], + "options": { + "thresholds": { + "critical": 1 + }, + "notify_audit": false, + "include_tags": true, + "notify_no_data": false, + "new_host_delay": 300, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:godaddy" + ] +} \ No newline at end of file diff --git a/godaddy/assets/monitors/godaddy_certificate_revoked.json b/godaddy/assets/monitors/godaddy_certificate_revoked.json new file mode 100644 index 0000000000000..3aa47c52a527a --- /dev/null +++ b/godaddy/assets/monitors/godaddy_certificate_revoked.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-08-20", + "last_updated_at": "2024-08-20", + "title": "SSL Certificate Revoked", + "description": "An issued SSL certificate has been revoked. This monitor tracks the status of the SSL certificate and triggers an alert when the status changes to revoked. This will help ensure that appropriate actions are taken promptly to address the revocation and secure the affected systems.", + "definition": { + "id": 149116202, + "name": "SSL Certificate Revoked", + "type": "query alert", + "query": "sum(last_1h):max:godaddy.certificate.certificate_status{status:revoked} by {certificateid} >= 1", + "message": "The certificate {{certificateid.name}} has been revoked. Please review and take the necessary actions.", + "tags": [ + "service:certificate", + "source:godaddy" + ], + "options": { + "thresholds": { + "critical": 1 + }, + "notify_audit": false, + "include_tags": true, + "notify_no_data": false, + "new_host_delay": 300, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:godaddy" + ] +} \ No newline at end of file diff --git a/godaddy/assets/monitors/godaddy_days_remaining_for_expiration_of_certificate.json b/godaddy/assets/monitors/godaddy_days_remaining_for_expiration_of_certificate.json new file mode 100644 index 0000000000000..0038cdb29469d --- /dev/null +++ b/godaddy/assets/monitors/godaddy_days_remaining_for_expiration_of_certificate.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-08-20", + "last_updated_at": "2024-08-20", + "title": "SSL Certificate Expiration Alert", + "description": "Each SSL certificate has an expiration date. This monitor tracks the number of days remaining until the SSL certificate expires and triggers an alert when the remaining days fall below a defined threshold. This helps ensure that timely actions are taken to renew the certificate before it expires.", + "definition": { + "id": 149106208, + "name": "SSL Certificate Expiration Alert", + "type": "query alert", + "query": "min(last_1h):min:godaddy.certificate.certificate_expiration_days{*} by {certificateid} <= 7", + "message": "The certificate with id {{certificateid.name}} is set to expire in {{value}} days. Please review and take the necessary actions.", + "tags": [ + "service:certificate", + "source:godaddy" + ], + "options": { + "thresholds": { + "critical": 7 + }, + "notify_audit": false, + "include_tags": true, + "notify_no_data": false, + "new_group_delay": 300, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:godaddy" + ] +} \ No newline at end of file diff --git a/godaddy/assets/monitors/godaddy_domain_dropped_from_request.json b/godaddy/assets/monitors/godaddy_domain_dropped_from_request.json new file mode 100644 index 0000000000000..251e88d39253b --- /dev/null +++ b/godaddy/assets/monitors/godaddy_domain_dropped_from_request.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-08-20", + "last_updated_at": "2024-08-20", + "title": "Domain Dropped from Request", + "description": "A domain can be dropped from the request. This monitor tracks the status of the domain and triggers an alert when the status changes to \"dropped.\" This helps ensure that appropriate actions are taken promptly to address the dropped domain and prevent any potential disruptions.", + "definition": { + "id": 150029151, + "name": "Domain Dropped from Request", + "type": "query alert", + "query": "sum(last_1h):max:godaddy.certificate.domain_status{domain_status:dropped} by {domain_name} >= 1", + "message": "The domain {{domain_name.name}} has been dropped from the request. Please review and take the necessary actions.", + "tags": [ + "service:domain", + "source:godaddy" + ], + "options": { + "thresholds": { + "critical": 1 + }, + "notify_audit": false, + "include_tags": true, + "notify_no_data": false, + "new_group_delay": 0, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:godaddy" + ] +} \ No newline at end of file diff --git a/godaddy/assets/monitors/godaddy_domain_fraud_detected.json b/godaddy/assets/monitors/godaddy_domain_fraud_detected.json new file mode 100644 index 0000000000000..c537232e003fe --- /dev/null +++ b/godaddy/assets/monitors/godaddy_domain_fraud_detected.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-08-20", + "last_updated_at": "2024-08-20", + "title": "Domain Fraud Detected", + "description": "Fraudulent activity can occur with a domain. This monitor tracks the status of the domain and triggers an alert when the status changes to verified_possible_fraud. This helps ensure that potential fraudulent activity is promptly investigated and addressed to protect the integrity of the domain.", + "definition": { + "id": 149884615, + "name": "Domain Fraud Detected", + "type": "query alert", + "query": "sum(last_1h):max:godaddy.certificate.domain_status{domain_status:verified_possible_fraud} by {domain_name} >= 1", + "message": "Fraud has been detected for the domain {{domain_name.name}}. Please review and take the necessary actions.", + "tags": [ + "service:domain", + "source:godaddy" + ], + "options": { + "thresholds": { + "critical": 1 + }, + "notify_audit": false, + "include_tags": true, + "new_group_delay": 60, + "notify_no_data": false, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:godaddy" + ] +} \ No newline at end of file diff --git a/godaddy/assets/monitors/godaddy_domain_verification_failed.json b/godaddy/assets/monitors/godaddy_domain_verification_failed.json new file mode 100644 index 0000000000000..246cde50d645f --- /dev/null +++ b/godaddy/assets/monitors/godaddy_domain_verification_failed.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "created_at": "2024-08-20", + "last_updated_at": "2024-08-20", + "title": "Domain Verification Failed", + "description": "A domain verification request can fail. This monitor tracks the status of the domain and triggers an alert when the status changes to failed_verification. This helps ensure that any issues with the verification process are promptly addressed to prevent delays or disruptions.", + "definition": { + "id": 149884600, + "name": "Domain Verification Failed", + "type": "query alert", + "query": "sum(last_1h):max:godaddy.certificate.domain_status{domain_status:failed_verification} by {domain_name} >= 1", + "message": "Domain verification for {{domain_name.name}} has failed on GoDaddy. Please review and take the necessary actions.", + "tags": [ + "service:domain", + "source:godaddy" + ], + "options": { + "thresholds": { + "critical": 1 + }, + "notify_audit": false, + "include_tags": true, + "new_group_delay": 60, + "notify_no_data": false, + "silenced": {} + }, + "priority": null, + "restriction_policy": { + "bindings": [] + } + }, + "tags": [ + "integration:godaddy" + ] +} \ No newline at end of file diff --git a/godaddy/images/godaddy_1.png b/godaddy/images/godaddy_1.png new file mode 100644 index 0000000000000..9f83c3f3caecc Binary files /dev/null and b/godaddy/images/godaddy_1.png differ diff --git a/godaddy/images/godaddy_2.png b/godaddy/images/godaddy_2.png new file mode 100644 index 0000000000000..2a4618180ea38 Binary files /dev/null and b/godaddy/images/godaddy_2.png differ diff --git a/godaddy/manifest.json b/godaddy/manifest.json index b4438a7e73052..b44480a339206 100644 --- a/godaddy/manifest.json +++ b/godaddy/manifest.json @@ -10,7 +10,18 @@ "changelog": "CHANGELOG.md", "description": "Gain insights and monitor GoDaddy SSL Certificates.", "title": "GoDaddy", - "media": [], + "media": [ + { + "caption": "GoDaddy Overview", + "image_url": "images/godaddy_1.png", + "media_type": "image" + }, + { + "caption": "GoDaddy Overview", + "image_url": "images/godaddy_2.png", + "media_type": "image" + } + ], "classifier_tags": [ "Category::Metrics", "Submitted Data Type::Metrics", @@ -27,12 +38,25 @@ }, "metrics": { "prefix": "godaddy.", - "check": [], + "check": "godaddy.certificate.total_certificates", "metadata_path": "metadata.csv" }, "service_checks": { "metadata_path": "assets/service_checks.json" } + }, + "dashboards": { + "GoDaddy Overview": "assets/dashboards/godaddy_overview.json" + }, + "monitors": { + "SSL Certificate Denied": "assets/monitors/godaddy_certificate_denied.json", + "SSL Certificate Expired": "assets/monitors/godaddy_certificate_expired.json", + "SSL Certificate in an Error State": "assets/monitors/godaddy_certificate_in_an_error_state.json", + "SSL Certificate Revoked": "assets/monitors/godaddy_certificate_revoked.json", + "SSL Certificate Expiration Alert": "assets/monitors/godaddy_days_remaining_for_expiration_of_certificate.json", + "Domain Dropped from Request": "assets/monitors/godaddy_domain_dropped_from_request.json", + "Domain Fraud Detected": "assets/monitors/godaddy_domain_fraud_detected.json", + "Domain Verification Failed": "assets/monitors/godaddy_domain_verification_failed.json" } }, "author": { diff --git a/godaddy/metadata.csv b/godaddy/metadata.csv index 60d916455a42f..5a3b859a6cf09 100644 --- a/godaddy/metadata.csv +++ b/godaddy/metadata.csv @@ -1 +1,15 @@ -metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric,sample_tags \ No newline at end of file +metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric,sample_tags +godaddy.certificate.canceled_certificates,count,,,,The total number of canceled certificates,0,godaddy,Canceled Certificates,, +godaddy.certificate.certificate_expiration_days,count,,day,,Count of expiration days by certificate,0,godaddy,Certificate Expiration Days,, +godaddy.certificate.certificate_status,count,,,,Contains the certificate and it's current status,0,godaddy,Certificate Status,, +godaddy.certificate.denied_certificates,count,,,,The total number of denied certificates,0,godaddy,Denied Certificates,, +godaddy.certificate.domain_status,count,,,,Contains the domain and it's current status by certificate,0,godaddy,Domain Status,, +godaddy.certificate.domains_count,count,,,,The total number of domains by certificate,0,godaddy,Domains Count,, +godaddy.certificate.expired_certificates,count,,,,The total number of expired certificates,0,godaddy,Expired Certificates,, +godaddy.certificate.issued_certificates,count,,,,The total number of issued certificates,0,godaddy,Issued Certificates,, +godaddy.certificate.pending_issuance_certificates,count,,,,The total number of pending issued certificates,0,godaddy,Pending Issued Certificates,, +godaddy.certificate.pending_rekey_certificates,count,,,,The total number of pending rekey certificates,0,godaddy,Pending Rekey Certificates,, +godaddy.certificate.pending_revocation_certificates,count,,,,The total number of pending revocation certificates,0,godaddy,Pending Revocation Certificates,, +godaddy.certificate.revoked_certificates,count,,,,The total number of revoked certificates,0,godaddy,Revoked Certificates,, +godaddy.certificate.total_certificates,count,,,,The total number of certificates,0,godaddy,Total Certificates,, +godaddy.certificate.unused_certificates,count,,,,The total number of unused certificates,0,godaddy,Unused Certificates,, diff --git a/gunicorn/CHANGELOG.md b/gunicorn/CHANGELOG.md index e5f1ebd40f791..185fdedbbeae8 100644 --- a/gunicorn/CHANGELOG.md +++ b/gunicorn/CHANGELOG.md @@ -2,6 +2,16 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Upgrade psutil to 6.0.0 to fix performance issues addressed ([#18688](https://github.com/DataDog/integrations-core/pull/18688)) + ## 2.8.0 / 2024-09-05 ***Added***: diff --git a/gunicorn/changelog.d/18688.added b/gunicorn/changelog.d/18688.added deleted file mode 100644 index 30f2555bc26eb..0000000000000 --- a/gunicorn/changelog.d/18688.added +++ /dev/null @@ -1 +0,0 @@ -Upgrade psutil to 6.0.0 to fix performance issues addressed \ No newline at end of file diff --git a/gunicorn/datadog_checks/gunicorn/__about__.py b/gunicorn/datadog_checks/gunicorn/__about__.py index bdeea16a69e4c..09adcddf171c4 100644 --- a/gunicorn/datadog_checks/gunicorn/__about__.py +++ b/gunicorn/datadog_checks/gunicorn/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.8.0' +__version__ = '3.0.0' diff --git a/haproxy/CHANGELOG.md b/haproxy/CHANGELOG.md index e25ad134435f7..1a4fe82dd7246 100644 --- a/haproxy/CHANGELOG.md +++ b/haproxy/CHANGELOG.md @@ -2,6 +2,12 @@ +## 6.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 5.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/haproxy/datadog_checks/haproxy/__about__.py b/haproxy/datadog_checks/haproxy/__about__.py index 83ff1f1dd4e11..91262416e46c9 100644 --- a/haproxy/datadog_checks/haproxy/__about__.py +++ b/haproxy/datadog_checks/haproxy/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "5.2.2" +__version__ = "6.0.0" diff --git a/harbor/CHANGELOG.md b/harbor/CHANGELOG.md index 6d2266292312b..be90f6a3b4001 100644 --- a/harbor/CHANGELOG.md +++ b/harbor/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.2.2 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/harbor/datadog_checks/harbor/__about__.py b/harbor/datadog_checks/harbor/__about__.py index b514fc8e57cf8..78967d676d1af 100644 --- a/harbor/datadog_checks/harbor/__about__.py +++ b/harbor/datadog_checks/harbor/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.2.2' +__version__ = '4.0.0' diff --git a/hazelcast/CHANGELOG.md b/hazelcast/CHANGELOG.md index 6e5217c1a96a3..c9561c348a10f 100644 --- a/hazelcast/CHANGELOG.md +++ b/hazelcast/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.1.0 / 2024-09-06 ***Added***: diff --git a/hazelcast/datadog_checks/hazelcast/__about__.py b/hazelcast/datadog_checks/hazelcast/__about__.py index 3da3f55dcb924..1fda5ed1ca206 100644 --- a/hazelcast/datadog_checks/hazelcast/__about__.py +++ b/hazelcast/datadog_checks/hazelcast/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.1.0' +__version__ = '5.0.0' diff --git a/hdfs_datanode/CHANGELOG.md b/hdfs_datanode/CHANGELOG.md index ecff9b07d0a6c..cf42a86ac479c 100644 --- a/hdfs_datanode/CHANGELOG.md +++ b/hdfs_datanode/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/hdfs_datanode/datadog_checks/hdfs_datanode/__about__.py b/hdfs_datanode/datadog_checks/hdfs_datanode/__about__.py index 8bbfa16dda76d..be76f78423b5e 100644 --- a/hdfs_datanode/datadog_checks/hdfs_datanode/__about__.py +++ b/hdfs_datanode/datadog_checks/hdfs_datanode/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.2.1" +__version__ = "5.0.0" diff --git a/hdfs_namenode/CHANGELOG.md b/hdfs_namenode/CHANGELOG.md index 2fe2bc6a923d1..03824a7ee204e 100644 --- a/hdfs_namenode/CHANGELOG.md +++ b/hdfs_namenode/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/hdfs_namenode/datadog_checks/hdfs_namenode/__about__.py b/hdfs_namenode/datadog_checks/hdfs_namenode/__about__.py index 8bbfa16dda76d..be76f78423b5e 100644 --- a/hdfs_namenode/datadog_checks/hdfs_namenode/__about__.py +++ b/hdfs_namenode/datadog_checks/hdfs_namenode/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.2.1" +__version__ = "5.0.0" diff --git a/hive/CHANGELOG.md b/hive/CHANGELOG.md index c2c5b2a763f47..ea353012f8299 100644 --- a/hive/CHANGELOG.md +++ b/hive/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.10.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/hive/datadog_checks/hive/__about__.py b/hive/datadog_checks/hive/__about__.py index 917440c386c75..b33fa8cee4d9d 100644 --- a/hive/datadog_checks/hive/__about__.py +++ b/hive/datadog_checks/hive/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.10.0' +__version__ = '2.0.0' diff --git a/hivemq/CHANGELOG.md b/hivemq/CHANGELOG.md index c9e651659ea0f..ce96c49652938 100644 --- a/hivemq/CHANGELOG.md +++ b/hivemq/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.8.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/hivemq/datadog_checks/hivemq/__about__.py b/hivemq/datadog_checks/hivemq/__about__.py index 5ce49ba9276dc..9c6b2fb79e5ac 100644 --- a/hivemq/datadog_checks/hivemq/__about__.py +++ b/hivemq/datadog_checks/hivemq/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.8.0' +__version__ = '2.0.0' diff --git a/http_check/CHANGELOG.md b/http_check/CHANGELOG.md index b363d19ab18b8..03cc92a52b062 100644 --- a/http_check/CHANGELOG.md +++ b/http_check/CHANGELOG.md @@ -2,6 +2,16 @@ +## 10.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Security***: + +* Bump version of cryptography to 43.0.1 to address vulnerability ([#18656](https://github.com/DataDog/integrations-core/pull/18656)) + ## 9.9.0 / 2024-09-05 ***Added***: diff --git a/http_check/changelog.d/18656.security b/http_check/changelog.d/18656.security deleted file mode 100644 index ad676917cac26..0000000000000 --- a/http_check/changelog.d/18656.security +++ /dev/null @@ -1 +0,0 @@ -Bump version of cryptography to 43.0.1 to address vulnerability \ No newline at end of file diff --git a/http_check/datadog_checks/http_check/__about__.py b/http_check/datadog_checks/http_check/__about__.py index 2596e8a50fbd6..b29ff41307630 100644 --- a/http_check/datadog_checks/http_check/__about__.py +++ b/http_check/datadog_checks/http_check/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "9.9.0" +__version__ = "10.0.0" diff --git a/hudi/CHANGELOG.md b/hudi/CHANGELOG.md index 552ac94cf1b61..b7d11cac69c84 100644 --- a/hudi/CHANGELOG.md +++ b/hudi/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.3.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/hudi/datadog_checks/hudi/__about__.py b/hudi/datadog_checks/hudi/__about__.py index cc380ae1d72ca..0791a0b0a54f2 100644 --- a/hudi/datadog_checks/hudi/__about__.py +++ b/hudi/datadog_checks/hudi/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.3.0' +__version__ = '3.0.0' diff --git a/hyperv/CHANGELOG.md b/hyperv/CHANGELOG.md index 1f6d22d131043..67ced6c2cd7bb 100644 --- a/hyperv/CHANGELOG.md +++ b/hyperv/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.11.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/hyperv/datadog_checks/hyperv/__about__.py b/hyperv/datadog_checks/hyperv/__about__.py index d0b98712e9abc..5d1f81de59f43 100644 --- a/hyperv/datadog_checks/hyperv/__about__.py +++ b/hyperv/datadog_checks/hyperv/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.11.1' +__version__ = '2.0.0' diff --git a/ibm_ace/CHANGELOG.md b/ibm_ace/CHANGELOG.md index 1e42cf10bea61..1485d7fc5b29e 100644 --- a/ibm_ace/CHANGELOG.md +++ b/ibm_ace/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.2 / 2024-04-26 / Agent 7.54.0 ***Fixed***: diff --git a/ibm_ace/datadog_checks/ibm_ace/__about__.py b/ibm_ace/datadog_checks/ibm_ace/__about__.py index faa7c19604967..c1405a3ef0291 100644 --- a/ibm_ace/datadog_checks/ibm_ace/__about__.py +++ b/ibm_ace/datadog_checks/ibm_ace/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.2' +__version__ = '3.0.0' diff --git a/ibm_db2/CHANGELOG.md b/ibm_db2/CHANGELOG.md index ef68fb9e33122..22d474c39e148 100644 --- a/ibm_db2/CHANGELOG.md +++ b/ibm_db2/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/ibm_db2/datadog_checks/ibm_db2/__about__.py b/ibm_db2/datadog_checks/ibm_db2/__about__.py index 629c671eb148b..f046338059ddf 100644 --- a/ibm_db2/datadog_checks/ibm_db2/__about__.py +++ b/ibm_db2/datadog_checks/ibm_db2/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.0' +__version__ = '3.0.0' diff --git a/ibm_i/CHANGELOG.md b/ibm_i/CHANGELOG.md index cf6935d2cf5a7..ec90a694317c2 100644 --- a/ibm_i/CHANGELOG.md +++ b/ibm_i/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.0 / 2024-02-16 / Agent 7.52.0 ***Added***: diff --git a/ibm_i/datadog_checks/ibm_i/__about__.py b/ibm_i/datadog_checks/ibm_i/__about__.py index c38d1e1cd06af..0791a0b0a54f2 100644 --- a/ibm_i/datadog_checks/ibm_i/__about__.py +++ b/ibm_i/datadog_checks/ibm_i/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.0' +__version__ = '3.0.0' diff --git a/ibm_mq/CHANGELOG.md b/ibm_mq/CHANGELOG.md index 9ea47bb7a2dd9..4ff12fcea8653 100644 --- a/ibm_mq/CHANGELOG.md +++ b/ibm_mq/CHANGELOG.md @@ -2,6 +2,16 @@ +## 7.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Upgrade psutil to 6.0.0 to fix performance issues addressed ([#18688](https://github.com/DataDog/integrations-core/pull/18688)) + ## 6.4.0 / 2024-09-05 ***Added***: diff --git a/ibm_mq/changelog.d/18688.added b/ibm_mq/changelog.d/18688.added deleted file mode 100644 index 30f2555bc26eb..0000000000000 --- a/ibm_mq/changelog.d/18688.added +++ /dev/null @@ -1 +0,0 @@ -Upgrade psutil to 6.0.0 to fix performance issues addressed \ No newline at end of file diff --git a/ibm_mq/datadog_checks/ibm_mq/__about__.py b/ibm_mq/datadog_checks/ibm_mq/__about__.py index 069a9a9b8d8fd..3134ece129a2d 100644 --- a/ibm_mq/datadog_checks/ibm_mq/__about__.py +++ b/ibm_mq/datadog_checks/ibm_mq/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '6.4.0' +__version__ = '7.0.0' diff --git a/ibm_was/CHANGELOG.md b/ibm_was/CHANGELOG.md index e2047d37846d2..64a4f1dea5260 100644 --- a/ibm_was/CHANGELOG.md +++ b/ibm_was/CHANGELOG.md @@ -2,6 +2,16 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Bump lxml version for py3.12 E2E tests ([#18637](https://github.com/DataDog/integrations-core/pull/18637)) + ## 3.3.2 / 2024-08-28 / Agent 7.57.0 ***Fixed***: diff --git a/ibm_was/changelog.d/18637.added b/ibm_was/changelog.d/18637.added deleted file mode 100644 index 03c3e7d117eb1..0000000000000 --- a/ibm_was/changelog.d/18637.added +++ /dev/null @@ -1 +0,0 @@ -Bump lxml version for py3.12 E2E tests \ No newline at end of file diff --git a/ibm_was/datadog_checks/ibm_was/__about__.py b/ibm_was/datadog_checks/ibm_was/__about__.py index 18b1f968f9fa2..741960d95510d 100644 --- a/ibm_was/datadog_checks/ibm_was/__about__.py +++ b/ibm_was/datadog_checks/ibm_was/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.2' +__version__ = '4.0.0' diff --git a/ignite/CHANGELOG.md b/ignite/CHANGELOG.md index cdd7527a86fae..922182763d44b 100644 --- a/ignite/CHANGELOG.md +++ b/ignite/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.4.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/ignite/datadog_checks/ignite/__about__.py b/ignite/datadog_checks/ignite/__about__.py index ca9a25e7919e5..32b388c31505f 100644 --- a/ignite/datadog_checks/ignite/__about__.py +++ b/ignite/datadog_checks/ignite/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.4.0' +__version__ = '3.0.0' diff --git a/iis/CHANGELOG.md b/iis/CHANGELOG.md index fb503d4f6ff1a..1b1cb60f30a4a 100644 --- a/iis/CHANGELOG.md +++ b/iis/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/iis/datadog_checks/iis/__about__.py b/iis/datadog_checks/iis/__about__.py index ddb3387b0e4db..c25988b9e6d8b 100644 --- a/iis/datadog_checks/iis/__about__.py +++ b/iis/datadog_checks/iis/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.1.1' +__version__ = '4.0.0' diff --git a/impala/CHANGELOG.md b/impala/CHANGELOG.md index a8f19fde8151f..e1ef71e3b21f6 100644 --- a/impala/CHANGELOG.md +++ b/impala/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/impala/datadog_checks/impala/__about__.py b/impala/datadog_checks/impala/__about__.py index faa7c19604967..c1405a3ef0291 100644 --- a/impala/datadog_checks/impala/__about__.py +++ b/impala/datadog_checks/impala/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.2' +__version__ = '3.0.0' diff --git a/istio/CHANGELOG.md b/istio/CHANGELOG.md index 6793e03925a0c..f39d516083ab8 100644 --- a/istio/CHANGELOG.md +++ b/istio/CHANGELOG.md @@ -2,6 +2,12 @@ +## 7.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 6.1.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/istio/README.md b/istio/README.md index 865d95ac12a67..8908bd73d8bc5 100644 --- a/istio/README.md +++ b/istio/README.md @@ -31,7 +31,7 @@ If you want to monitor the Envoy proxies in Istio, configure the [Envoy integrat ### Configuration #### Metric collection -To monitor `istio-proxy` and `istiod` in Istio v1.5+, there are two key components involved in collecting the Prometheus-formatted metrics: +To monitor Istio v1.5+ there are two key components matching the [Istio architecture][23] for the Prometheus-formatted metrics: - **Data plane**: The `istio-proxy` sidecar containers - **Control plane**: The `istiod` service managing the proxies @@ -42,48 +42,46 @@ These are both run as `istio` Agent checks, but they have different responsibili The default [`istio.d/auto_conf.yaml`][9] file automatically sets up monitoring for each of the `istio-proxy` sidecar containers. The Agent initializes this check for each sidecar container that it detects automatically. This configuration enables the reporting of `istio.mesh.*` metrics for the data exposed by each of these sidecar containers. -To customize the data plane portion of the integration: +To customize the data plane portion of the integration, create a custom Istio configuration file `istio.yaml`. See [Configure integrations on Kubernetes][4] or [Configure integrations with Autodiscovery on Docker][26] for options in creating this file. -1. Create a `conf.d/istio.d/conf.yaml` file on your host. This file must contain: +This file must contain: - ```yaml - ad_identifiers: - - proxyv2 - - proxyv2-rhel8 - - init_config: - - instances: - - use_openmetrics: true - send_histograms_buckets: false - istio_mesh_endpoint: http://%%host%%:15020/stats/prometheus - tag_by_endpoint: false - ``` +```yaml +ad_identifiers: + - proxyv2 + - proxyv2-rhel8 -2. Customize this file with any additional configurations. See the [sample istio.d/conf.yaml][8] for all available configuration options. +init_config: -3. Mount your host `conf.d/` folder to the containerized Agent's `conf/d` folder. +instances: + - use_openmetrics: true + send_histograms_buckets: false + istio_mesh_endpoint: http://%%host%%:15020/stats/prometheus + tag_by_endpoint: false +``` -See [Configure integrations with Autodiscovery on Kubernetes][4] or [Configure integrations with Autodiscovery on Docker][26] for alternative configuration methods. +Customize this file with any additional configurations. See the [sample istio.d/conf.yaml][8] for all available configuration options. ##### Control plane configuration To monitor the Istio control plane and report the `mixer`, `galley`, `pilot`, and `citadel` metrics, you must configure the Agent to monitor the `istiod` deployment. In Istio v1.5 or later, apply the following pod annotations for the deployment `istiod` in the `istio-system` namespace: ```yaml -ad.datadoghq.com/.check_names: '["istio"]' -ad.datadoghq.com/.init_configs: '[{}]' -ad.datadoghq.com/.instances: | - [ - { - "istiod_endpoint": "http://%%host%%:15014/metrics", - "use_openmetrics": "true" - } - ] +ad.datadoghq.com/discovery.checks: | + { + "istio": { + "instances": [ + { + "istiod_endpoint": "http://%%host%%:15014/metrics", + "use_openmetrics": "true" + } + ] + } + } ``` -Replace `` with the name (`.spec.containers[i].name`) of your container. For example, `discovery`. +This annotation specifies the container `discovery` to match the default container name of the Istio container in this pod. Replace this annotation `ad.datadoghq.com/.checks` with the name (`.spec.containers[i].name`) of your Istio container if yours differs. -The method for applying these annotations varies depending on the [Istio deployment strategy (Istioctl, Helm, Operator)][22] used. Consult the [Istio documentation][23] for the proper method to apply these pod annotations. See the [sample istio.d/conf.yaml][8] for all available configuration options. +The method for applying these annotations varies depending on the [Istio deployment strategy (Istioctl, Helm, Operator)][22] used. Consult the Istio documentation for the proper method to apply these pod annotations. See the [sample istio.d/conf.yaml][8] for all available configuration options. #### Disable sidecar injection for Datadog Agent pods @@ -137,37 +135,42 @@ First, enable the Datadog Agent to perform log collection in Kubernetes. See [Ku #### Istio logs -To collect [Istio logs][12], apply the following annotation to the pod where Istio containers are running: +To collect Istio logs from your control plane (`istiod`), apply the following pod annotations for the deployment `istiod` in the `istio-system` namespace: ```yaml -ad.datadoghq.com/.logs: | - [ - { - "source": "istio", - "service": "" - } - ] +ad.datadoghq.com/discovery.logs: | + [ + { + "source": "istio", + "service": "" + } + ] ``` -Replace `` with the name (`.spec.containers[i].name`) of your container. Replace `` with the name of your Istio service. +This annotation specifies the container `discovery` to match the default container name of the Istio container in this pod. Replace this annotation `ad.datadoghq.com/.logs` with the name (`.spec.containers[i].name`) of your Istio container if yours differs. + +Replace `` with your desired Istio service name. #### Envoy access logs -To collect Envoy access logs: -1. Ensure the [Envoy integration][11] is installed. -2. Apply the following annotation to the pod where Envoy is running: +To collect Envoy access logs from your data plane (`istio-proxy`): + +1. Enable [Envoy access logging within Istio][27] +2. Apply the following annotation to the pod where the `istio-proxy` container was injected ```yaml -ad.datadoghq.com/.logs: | - [ - { - "type": "file", - "path": "/var/log/envoy.log", - "source": "envoy" - } - ] +ad.datadoghq.com/istio-proxy.logs: | + [ + { + "source": "envoy", + "service": "" + } + ] ``` -Replace `` with the name (`.spec.containers[i].name`) of your container. + +This annotation specifies the container `istio-proxy` to match the default container name of the injected Istio sidecar container. Replace this annotation `ad.datadoghq.com/.logs` with the name (`.spec.containers[i].name`) of your Istio sidecar container if yours differs. + +Replace `` with your desired Istio proxy service name. ### Validation @@ -277,3 +280,4 @@ Additional helpful documentation, links, and articles: [24]: https://docs.datadoghq.com/agent/kubernetes/integrations/?tab=file#configuration [25]: https://docs.datadoghq.com/integrations/guide/versions-for-openmetrics-based-integrations [26]: https://docs.datadoghq.com/containers/docker/integrations/ +[27]: https://istio.io/latest/docs/tasks/observability/logs/access-log/ diff --git a/istio/datadog_checks/istio/__about__.py b/istio/datadog_checks/istio/__about__.py index 16db6bfd0b240..18882fdf3298a 100644 --- a/istio/datadog_checks/istio/__about__.py +++ b/istio/datadog_checks/istio/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "6.1.2" +__version__ = "7.0.0" diff --git a/jboss_wildfly/CHANGELOG.md b/jboss_wildfly/CHANGELOG.md index 021fe5e623f0d..abb36b8baa261 100644 --- a/jboss_wildfly/CHANGELOG.md +++ b/jboss_wildfly/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/jboss_wildfly/datadog_checks/jboss_wildfly/__about__.py b/jboss_wildfly/datadog_checks/jboss_wildfly/__about__.py index 629c671eb148b..f046338059ddf 100644 --- a/jboss_wildfly/datadog_checks/jboss_wildfly/__about__.py +++ b/jboss_wildfly/datadog_checks/jboss_wildfly/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.0' +__version__ = '3.0.0' diff --git a/journald/CHANGELOG.md b/journald/CHANGELOG.md index 0f2214fe25425..bbe8a46255c03 100644 --- a/journald/CHANGELOG.md +++ b/journald/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.2.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/journald/datadog_checks/journald/__about__.py b/journald/datadog_checks/journald/__about__.py index e83b5b53c9f82..a16255352ee20 100644 --- a/journald/datadog_checks/journald/__about__.py +++ b/journald/datadog_checks/journald/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.2.0' +__version__ = '2.0.0' diff --git a/kafka/CHANGELOG.md b/kafka/CHANGELOG.md index d4f83c373be41..ce09650e385a3 100644 --- a/kafka/CHANGELOG.md +++ b/kafka/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.16.0 / 2024-05-31 / Agent 7.55.0 ***Added***: diff --git a/kafka/datadog_checks/kafka/__about__.py b/kafka/datadog_checks/kafka/__about__.py index 032bc0f0fc3c9..09adcddf171c4 100644 --- a/kafka/datadog_checks/kafka/__about__.py +++ b/kafka/datadog_checks/kafka/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.16.0' +__version__ = '3.0.0' diff --git a/kafka_consumer/CHANGELOG.md b/kafka_consumer/CHANGELOG.md index fa7ff66835014..5d6a0c962039f 100644 --- a/kafka_consumer/CHANGELOG.md +++ b/kafka_consumer/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.6.1 / 2024-09-05 ***Fixed***: diff --git a/kafka_consumer/datadog_checks/kafka_consumer/__about__.py b/kafka_consumer/datadog_checks/kafka_consumer/__about__.py index 8b9ad60a758fa..b033d7b5bb770 100644 --- a/kafka_consumer/datadog_checks/kafka_consumer/__about__.py +++ b/kafka_consumer/datadog_checks/kafka_consumer/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.6.1" +__version__ = "5.0.0" diff --git a/karpenter/CHANGELOG.md b/karpenter/CHANGELOG.md index 1e9bb35171829..eb64c39fa17ca 100644 --- a/karpenter/CHANGELOG.md +++ b/karpenter/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.6.0 / 2024-09-23 ***Added***: diff --git a/karpenter/datadog_checks/karpenter/__about__.py b/karpenter/datadog_checks/karpenter/__about__.py index 33cc8c84a2eab..2ce3bcb822978 100644 --- a/karpenter/datadog_checks/karpenter/__about__.py +++ b/karpenter/datadog_checks/karpenter/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.6.0' +__version__ = '2.0.0' diff --git a/kong/CHANGELOG.md b/kong/CHANGELOG.md index cfdfea80162ac..3ca927e03efe1 100644 --- a/kong/CHANGELOG.md +++ b/kong/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/kong/datadog_checks/kong/__about__.py b/kong/datadog_checks/kong/__about__.py index e5456b9ec95ef..c25988b9e6d8b 100644 --- a/kong/datadog_checks/kong/__about__.py +++ b/kong/datadog_checks/kong/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.2.2' +__version__ = '4.0.0' diff --git a/kube_apiserver_metrics/CHANGELOG.md b/kube_apiserver_metrics/CHANGELOG.md index 9083470245e69..7e7402f301f6a 100644 --- a/kube_apiserver_metrics/CHANGELOG.md +++ b/kube_apiserver_metrics/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kube_apiserver_metrics/datadog_checks/kube_apiserver_metrics/__about__.py b/kube_apiserver_metrics/datadog_checks/kube_apiserver_metrics/__about__.py index 37b77a6c5b5a2..59ccab2a77ff8 100644 --- a/kube_apiserver_metrics/datadog_checks/kube_apiserver_metrics/__about__.py +++ b/kube_apiserver_metrics/datadog_checks/kube_apiserver_metrics/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.3.1' +__version__ = '5.0.0' diff --git a/kube_controller_manager/CHANGELOG.md b/kube_controller_manager/CHANGELOG.md index b9acc63878e8e..3f217bbae6391 100644 --- a/kube_controller_manager/CHANGELOG.md +++ b/kube_controller_manager/CHANGELOG.md @@ -2,6 +2,12 @@ +## 6.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 5.1.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kube_controller_manager/datadog_checks/kube_controller_manager/__about__.py b/kube_controller_manager/datadog_checks/kube_controller_manager/__about__.py index 160dc03d2240a..83ebcac59b965 100644 --- a/kube_controller_manager/datadog_checks/kube_controller_manager/__about__.py +++ b/kube_controller_manager/datadog_checks/kube_controller_manager/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '5.1.1' +__version__ = '6.0.0' diff --git a/kube_dns/CHANGELOG.md b/kube_dns/CHANGELOG.md index 487c9dd26defe..9012bbef87562 100644 --- a/kube_dns/CHANGELOG.md +++ b/kube_dns/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.4.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kube_dns/datadog_checks/kube_dns/__about__.py b/kube_dns/datadog_checks/kube_dns/__about__.py index 174bd1265f67c..d2601db5d5cc0 100644 --- a/kube_dns/datadog_checks/kube_dns/__about__.py +++ b/kube_dns/datadog_checks/kube_dns/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.4.1' +__version__ = '5.0.0' diff --git a/kube_metrics_server/CHANGELOG.md b/kube_metrics_server/CHANGELOG.md index 0f82574aea7f7..fd9c0091ffe10 100644 --- a/kube_metrics_server/CHANGELOG.md +++ b/kube_metrics_server/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kube_metrics_server/datadog_checks/kube_metrics_server/__about__.py b/kube_metrics_server/datadog_checks/kube_metrics_server/__about__.py index 539f63b827f2c..78967d676d1af 100644 --- a/kube_metrics_server/datadog_checks/kube_metrics_server/__about__.py +++ b/kube_metrics_server/datadog_checks/kube_metrics_server/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.1' +__version__ = '4.0.0' diff --git a/kube_proxy/CHANGELOG.md b/kube_proxy/CHANGELOG.md index e5081094ea5d1..0346624a4b205 100644 --- a/kube_proxy/CHANGELOG.md +++ b/kube_proxy/CHANGELOG.md @@ -2,6 +2,12 @@ +## 7.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 6.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kube_proxy/datadog_checks/kube_proxy/__about__.py b/kube_proxy/datadog_checks/kube_proxy/__about__.py index 4c5167d350045..18882fdf3298a 100644 --- a/kube_proxy/datadog_checks/kube_proxy/__about__.py +++ b/kube_proxy/datadog_checks/kube_proxy/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "6.3.1" +__version__ = "7.0.0" diff --git a/kube_scheduler/CHANGELOG.md b/kube_scheduler/CHANGELOG.md index 126ff587da4de..ad5240c54dfdc 100644 --- a/kube_scheduler/CHANGELOG.md +++ b/kube_scheduler/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.10.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kube_scheduler/datadog_checks/kube_scheduler/__about__.py b/kube_scheduler/datadog_checks/kube_scheduler/__about__.py index 382cadc2a1f39..59ccab2a77ff8 100644 --- a/kube_scheduler/datadog_checks/kube_scheduler/__about__.py +++ b/kube_scheduler/datadog_checks/kube_scheduler/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.10.1' +__version__ = '5.0.0' diff --git a/kubeflow/CHANGELOG.md b/kubeflow/CHANGELOG.md index 8658345ebf7a3..5c3bf784bb7d8 100644 --- a/kubeflow/CHANGELOG.md +++ b/kubeflow/CHANGELOG.md @@ -2,3 +2,8 @@ +## 1.0.0 / 2024-10-04 + +***Fixed***: + +* Bump the version of datadog-checks-base to 37.0.0 ([#18617](https://github.com/DataDog/integrations-core/pull/18617)) diff --git a/kubeflow/changelog.d/18617.fixed b/kubeflow/changelog.d/18617.fixed deleted file mode 100644 index e759164f82784..0000000000000 --- a/kubeflow/changelog.d/18617.fixed +++ /dev/null @@ -1 +0,0 @@ -Bump the version of datadog-checks-base to 37.0.0 \ No newline at end of file diff --git a/kubeflow/datadog_checks/kubeflow/__about__.py b/kubeflow/datadog_checks/kubeflow/__about__.py index e9541ce83e9e5..acbfd1c866b84 100644 --- a/kubeflow/datadog_checks/kubeflow/__about__.py +++ b/kubeflow/datadog_checks/kubeflow/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '0.0.1' +__version__ = '1.0.0' diff --git a/kubeflow/manifest.json b/kubeflow/manifest.json index 2252c0462db06..96eebed0294d9 100644 --- a/kubeflow/manifest.json +++ b/kubeflow/manifest.json @@ -2,7 +2,7 @@ "manifest_version": "2.0.0", "app_uuid": "0db7b333-38a1-4e09-af1b-317da2f9f413", "app_id": "kubeflow", - "display_on_public_website": false, + "display_on_public_website": true, "tile": { "overview": "README.md#Overview", "configuration": "README.md#Setup", diff --git a/kubelet/CHANGELOG.md b/kubelet/CHANGELOG.md index 2162539234a4d..775d3f73eb902 100644 --- a/kubelet/CHANGELOG.md +++ b/kubelet/CHANGELOG.md @@ -2,6 +2,12 @@ +## 8.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 7.13.2 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kubelet/datadog_checks/kubelet/__about__.py b/kubelet/datadog_checks/kubelet/__about__.py index 8d12bdbe95ebe..90c94f7125939 100644 --- a/kubelet/datadog_checks/kubelet/__about__.py +++ b/kubelet/datadog_checks/kubelet/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "7.13.2" +__version__ = "8.0.0" diff --git a/kubernetes_cluster_autoscaler/CHANGELOG.md b/kubernetes_cluster_autoscaler/CHANGELOG.md index 4abc40d848cd8..70c9f5eae6789 100644 --- a/kubernetes_cluster_autoscaler/CHANGELOG.md +++ b/kubernetes_cluster_autoscaler/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/kubernetes_cluster_autoscaler/datadog_checks/kubernetes_cluster_autoscaler/__about__.py b/kubernetes_cluster_autoscaler/datadog_checks/kubernetes_cluster_autoscaler/__about__.py index e0db4e56d553f..cc393c1dad9ce 100644 --- a/kubernetes_cluster_autoscaler/datadog_checks/kubernetes_cluster_autoscaler/__about__.py +++ b/kubernetes_cluster_autoscaler/datadog_checks/kubernetes_cluster_autoscaler/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.1' +__version__ = '2.0.0' diff --git a/kubernetes_state/CHANGELOG.md b/kubernetes_state/CHANGELOG.md index d0f2b1240e8be..8fa6d0c66bd1b 100644 --- a/kubernetes_state/CHANGELOG.md +++ b/kubernetes_state/CHANGELOG.md @@ -2,6 +2,12 @@ +## 9.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 8.1.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kubernetes_state/datadog_checks/kubernetes_state/__about__.py b/kubernetes_state/datadog_checks/kubernetes_state/__about__.py index 8e6c48eb5b19d..d028d71da95d0 100644 --- a/kubernetes_state/datadog_checks/kubernetes_state/__about__.py +++ b/kubernetes_state/datadog_checks/kubernetes_state/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '8.1.1' +__version__ = '9.0.0' diff --git a/kubevirt_api/CHANGELOG.md b/kubevirt_api/CHANGELOG.md index fd98fa4837529..41fab8d0f2a51 100644 --- a/kubevirt_api/CHANGELOG.md +++ b/kubevirt_api/CHANGELOG.md @@ -1,3 +1,13 @@ # CHANGELOG - KubeVirt API + +## 1.0.0 / 2024-10-04 + +***Added***: + +* Initial Release ([#18179](https://github.com/DataDog/integrations-core/pull/18179)) + +***Fixed***: + +* Bump the version of datadog-checks-base to 37.0.0 ([#18617](https://github.com/DataDog/integrations-core/pull/18617)) diff --git a/kubevirt_api/changelog.d/18179.added b/kubevirt_api/changelog.d/18179.added deleted file mode 100644 index aa949b47b7b41..0000000000000 --- a/kubevirt_api/changelog.d/18179.added +++ /dev/null @@ -1 +0,0 @@ -Initial Release \ No newline at end of file diff --git a/kubevirt_api/changelog.d/18617.fixed b/kubevirt_api/changelog.d/18617.fixed deleted file mode 100644 index e759164f82784..0000000000000 --- a/kubevirt_api/changelog.d/18617.fixed +++ /dev/null @@ -1 +0,0 @@ -Bump the version of datadog-checks-base to 37.0.0 \ No newline at end of file diff --git a/kubevirt_api/datadog_checks/kubevirt_api/__about__.py b/kubevirt_api/datadog_checks/kubevirt_api/__about__.py index e9541ce83e9e5..acbfd1c866b84 100644 --- a/kubevirt_api/datadog_checks/kubevirt_api/__about__.py +++ b/kubevirt_api/datadog_checks/kubevirt_api/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '0.0.1' +__version__ = '1.0.0' diff --git a/kubevirt_api/manifest.json b/kubevirt_api/manifest.json index 5db35a9102ba1..68274dbad8c03 100644 --- a/kubevirt_api/manifest.json +++ b/kubevirt_api/manifest.json @@ -42,7 +42,8 @@ }, "service_checks": { "metadata_path": "assets/service_checks.json" - } + }, + "process_signatures": ["virt-api"] }, "dashboards": { "KubeVirt Overview": "assets/dashboards/kubevirt_overview.json" diff --git a/kubevirt_api/metadata.csv b/kubevirt_api/metadata.csv index c2c50890e7599..523b73c43bc18 100644 --- a/kubevirt_api/metadata.csv +++ b/kubevirt_api/metadata.csv @@ -1,5 +1,5 @@ metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric,sample_tags -kubevirt_api.can_connect,gauge,,,,Whether the check can connect to the KubeVirt API or not.,0,kubevirt_api,api connect,, +kubevirt_api.can_connect,gauge,,,,"Value of 1 if the agent can connect to the KubeVirt Handler, and 0 otherwise.",0,kubevirt_api,api connect,, kubevirt_api.process.cpu_seconds.count,count,,second,,Total user and system CPU time spent in seconds.,0,kubevirt_api,cpu time total,, kubevirt_api.process.max_fds,gauge,,file,,Maximum number of open file descriptors.,0,kubevirt_api,max fds,, kubevirt_api.process.open_fds,gauge,,file,,Number of open file descriptors.,0,kubevirt_api,open fds,, diff --git a/kubevirt_controller/CHANGELOG.md b/kubevirt_controller/CHANGELOG.md index 63ef4768a3096..faadd0fcdb0fc 100644 --- a/kubevirt_controller/CHANGELOG.md +++ b/kubevirt_controller/CHANGELOG.md @@ -2,3 +2,12 @@ +## 1.0.0 / 2024-10-04 + +***Added***: + +* Initial Release ([#18186](https://github.com/DataDog/integrations-core/pull/18186)) + +***Fixed***: + +* Bump the version of datadog-checks-base to 37.0.0 ([#18617](https://github.com/DataDog/integrations-core/pull/18617)) diff --git a/kubevirt_controller/changelog.d/18186.added b/kubevirt_controller/changelog.d/18186.added deleted file mode 100644 index aa949b47b7b41..0000000000000 --- a/kubevirt_controller/changelog.d/18186.added +++ /dev/null @@ -1 +0,0 @@ -Initial Release \ No newline at end of file diff --git a/kubevirt_controller/changelog.d/18617.fixed b/kubevirt_controller/changelog.d/18617.fixed deleted file mode 100644 index e759164f82784..0000000000000 --- a/kubevirt_controller/changelog.d/18617.fixed +++ /dev/null @@ -1 +0,0 @@ -Bump the version of datadog-checks-base to 37.0.0 \ No newline at end of file diff --git a/kubevirt_controller/datadog_checks/kubevirt_controller/__about__.py b/kubevirt_controller/datadog_checks/kubevirt_controller/__about__.py index e9541ce83e9e5..acbfd1c866b84 100644 --- a/kubevirt_controller/datadog_checks/kubevirt_controller/__about__.py +++ b/kubevirt_controller/datadog_checks/kubevirt_controller/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '0.0.1' +__version__ = '1.0.0' diff --git a/kubevirt_controller/datadog_checks/kubevirt_controller/check.py b/kubevirt_controller/datadog_checks/kubevirt_controller/check.py index 4a4063870f68c..591857bc6964a 100644 --- a/kubevirt_controller/datadog_checks/kubevirt_controller/check.py +++ b/kubevirt_controller/datadog_checks/kubevirt_controller/check.py @@ -63,6 +63,10 @@ def _parse_config(self): "namespace": self.__NAMESPACE__, "enable_health_service_check": False, "tls_verify": self.tls_verify, + "rename_labels": { + "namespace": "vm_namespace", + # both kubevirt_vm_* and kubevirt_vmi_* metrics share the same name and namespace labels + }, } self.scraper_configs.append(instance) diff --git a/kubevirt_controller/manifest.json b/kubevirt_controller/manifest.json index 8600a63ef8a5e..552896c23a325 100644 --- a/kubevirt_controller/manifest.json +++ b/kubevirt_controller/manifest.json @@ -42,7 +42,8 @@ }, "service_checks": { "metadata_path": "assets/service_checks.json" - } + }, + "process_signatures": ["virt-controller"] } }, "author": { diff --git a/kubevirt_controller/metadata.csv b/kubevirt_controller/metadata.csv index bc3261e7b18af..0f1b194405586 100644 --- a/kubevirt_controller/metadata.csv +++ b/kubevirt_controller/metadata.csv @@ -1,35 +1,35 @@ metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric,sample_tags -kubevirt_controller.can_connect,gauge,,,,Whether the check can connect to the KubeVirt Controller or not.,0,kubevirt_controller,api connect,, +kubevirt_controller.can_connect,gauge,,,,"Value of 1 if the agent can connect to the KubeVirt Controller, and 0 otherwise.",0,kubevirt_controller,api connect,, kubevirt_controller.virt_controller.leading_status,gauge,,,,Indication for an operating virt-controller.,0,kubevirt_controller,leading_status,, kubevirt_controller.virt_controller.ready_status,gauge,,,,Indication for a virt-controller that is ready to take the lead.,0,kubevirt_controller,ready_status,, -kubevirt_controller.vm.error_status_last_transition_timestamp_seconds.count,count,,,,Virtual Machine last transition timestamp to error status.,0,kubevirt_controller,,, -kubevirt_controller.vm.migrating_status_last_transition_timestamp_seconds.count,count,,,,Virtual Machine last transition timestamp to migrating status.,0,kubevirt_controller,,, -kubevirt_controller.vm.non_running_status_last_transition_timestamp_seconds.count,count,,,,Virtual Machine last transition timestamp to paused/stopped status.,0,kubevirt_controller,,, -kubevirt_controller.vm.running_status_last_transition_timestamp_seconds.count,count,,,,Virtual Machine last transition timestamp to running status.,0,kubevirt_controller,,, -kubevirt_controller.vm.starting_status_last_transition_timestamp_seconds.count,count,,,,Virtual Machine last transition timestamp to starting status.,0,kubevirt_controller,,, +kubevirt_controller.vm.error_status_last_transition_timestamp_seconds.count,count,,second,,Virtual Machine last transition timestamp to error status.,0,kubevirt_controller,,, +kubevirt_controller.vm.migrating_status_last_transition_timestamp_seconds.count,count,,second,,Virtual Machine last transition timestamp to migrating status.,0,kubevirt_controller,,, +kubevirt_controller.vm.non_running_status_last_transition_timestamp_seconds.count,count,,second,,Virtual Machine last transition timestamp to paused/stopped status.,0,kubevirt_controller,,, +kubevirt_controller.vm.running_status_last_transition_timestamp_seconds.count,count,,second,,Virtual Machine last transition timestamp to running status.,0,kubevirt_controller,,, +kubevirt_controller.vm.starting_status_last_transition_timestamp_seconds.count,count,,second,,Virtual Machine last transition timestamp to starting status.,0,kubevirt_controller,,, kubevirt_controller.vmi.migrations_in_pending_phase,gauge,,,,Number of current pending migrations.,0,kubevirt_controller,,, kubevirt_controller.vmi.migrations_in_running_phase,gauge,,,,Number of current running migrations.,0,kubevirt_controller,,, kubevirt_controller.vmi.migrations_in_scheduling_phase,gauge,,,,Number of current scheduling migrations.,0,kubevirt_controller,,, kubevirt_controller.vmi.non_evictable,gauge,,,,Indication for a VirtualMachine that its eviction strategy is set to Live Migration but is not migratable.,0,kubevirt_controller,,, kubevirt_controller.vmi.number_of_outdated,gauge,,,,Indication for the total number of VirtualMachineInstance workloads that are not running within the most up-to-date version of the virt-launcher environment.,0,kubevirt_controller,,, kubevirt_controller.vmi.phase_count,gauge,,,,"Sum of VMIs per phase and node. phase can be one of the following: [Pending, Scheduling, Scheduled, Running, Succeeded, Failed, Unknown].",0,kubevirt_controller,,, -kubevirt_controller.vmi.phase_transition_time_from_creation_seconds.bucket,count,,,,Histogram of VM phase transitions duration from creation time in seconds.,0,kubevirt_controller,,, -kubevirt_controller.vmi.phase_transition_time_from_creation_seconds.count,count,,,,Histogram of VM phase transitions duration from creation time in seconds.,0,kubevirt_controller,,, -kubevirt_controller.vmi.phase_transition_time_from_creation_seconds.sum,count,,,,Histogram of VM phase transitions duration from creation time in seconds.,0,kubevirt_controller,,, -kubevirt_controller.vmi.phase_transition_time_from_deletion_seconds.bucket,count,,,,Histogram of VM phase transitions duration from deletion time in seconds.,0,kubevirt_controller,,, -kubevirt_controller.vmi.phase_transition_time_from_deletion_seconds.count,count,,,,Histogram of VM phase transitions duration from deletion time in seconds.,0,kubevirt_controller,,, -kubevirt_controller.vmi.phase_transition_time_from_deletion_seconds.sum,count,,,,Histogram of VM phase transitions duration from deletion time in seconds.,0,kubevirt_controller,,, -kubevirt_controller.vmi.phase_transition_time_seconds.bucket,count,,,,Histogram of VM phase transitions duration between different phases in seconds.,0,kubevirt_controller,,, -kubevirt_controller.vmi.phase_transition_time_seconds.count,count,,,,Histogram of VM phase transitions duration between different phases in seconds.,0,kubevirt_controller,,, -kubevirt_controller.vmi.phase_transition_time_seconds.sum,count,,,,Histogram of VM phase transitions duration between different phases in seconds.,0,kubevirt_controller,,, -kubevirt_controller.workqueue.adds.count,count,,,,Total number of adds handled by workqueue,0,kubevirt_controller,,, -kubevirt_controller.workqueue.depth,gauge,,,,Current depth of workqueue,0,kubevirt_controller,,, -kubevirt_controller.workqueue.longest_running_processor_seconds,gauge,,,,How many seconds has the longest running processor for workqueue been running.,0,kubevirt_controller,,, -kubevirt_controller.workqueue.queue_duration_seconds.bucket,count,,,,How long an item stays in workqueue before being requested.,0,kubevirt_controller,,, -kubevirt_controller.workqueue.queue_duration_seconds.count,count,,,,How long an item stays in workqueue before being requested.,0,kubevirt_controller,,, -kubevirt_controller.workqueue.queue_duration_seconds.sum,count,,,,How long an item stays in workqueue before being requested.,0,kubevirt_controller,,, +kubevirt_controller.vmi.phase_transition_time_from_creation_seconds.bucket,count,,second,,Histogram of VM phase transitions duration from creation time in seconds.,0,kubevirt_controller,,, +kubevirt_controller.vmi.phase_transition_time_from_creation_seconds.count,count,,second,,Histogram of VM phase transitions duration from creation time in seconds.,0,kubevirt_controller,,, +kubevirt_controller.vmi.phase_transition_time_from_creation_seconds.sum,count,,second,,Histogram of VM phase transitions duration from creation time in seconds.,0,kubevirt_controller,,, +kubevirt_controller.vmi.phase_transition_time_from_deletion_seconds.bucket,count,,second,,Histogram of VM phase transitions duration from deletion time in seconds.,0,kubevirt_controller,,, +kubevirt_controller.vmi.phase_transition_time_from_deletion_seconds.count,count,,second,,Histogram of VM phase transitions duration from deletion time in seconds.,0,kubevirt_controller,,, +kubevirt_controller.vmi.phase_transition_time_from_deletion_seconds.sum,count,,second,,Histogram of VM phase transitions duration from deletion time in seconds.,0,kubevirt_controller,,, +kubevirt_controller.vmi.phase_transition_time_seconds.bucket,count,,second,,Histogram of VM phase transitions duration between different phases in seconds.,0,kubevirt_controller,,, +kubevirt_controller.vmi.phase_transition_time_seconds.count,count,,second,,Histogram of VM phase transitions duration between different phases in seconds.,0,kubevirt_controller,,, +kubevirt_controller.vmi.phase_transition_time_seconds.sum,count,,second,,Histogram of VM phase transitions duration between different phases in seconds.,0,kubevirt_controller,,, +kubevirt_controller.workqueue.adds.count,count,,item,,Total number of adds handled by workqueue,0,kubevirt_controller,,, +kubevirt_controller.workqueue.depth,gauge,,item,,Current depth of workqueue,0,kubevirt_controller,,, +kubevirt_controller.workqueue.longest_running_processor_seconds,gauge,,second,,How many seconds has the longest running processor for workqueue been running.,0,kubevirt_controller,,, +kubevirt_controller.workqueue.queue_duration_seconds.bucket,count,,second,,How long an item stays in workqueue before being requested.,0,kubevirt_controller,,, +kubevirt_controller.workqueue.queue_duration_seconds.count,count,,second,,How long an item stays in workqueue before being requested.,0,kubevirt_controller,,, +kubevirt_controller.workqueue.queue_duration_seconds.sum,count,,second,,How long an item stays in workqueue before being requested.,0,kubevirt_controller,,, kubevirt_controller.workqueue.retries.count,count,,,,Total number of retries handled by workqueue.,0,kubevirt_controller,,, -kubevirt_controller.workqueue.unfinished_work_seconds,gauge,,,,How many seconds of work has done that is in progress and hasn't been observed by work_duration. Large values indicate stuck threads. One can deduce the number of stuck threads by observing the rate at which this increases.,0,kubevirt_controller,,, -kubevirt_controller.workqueue.work_duration_seconds.bucket,count,,,,How long in seconds processing an item from workqueue takes.,0,kubevirt_controller,,, -kubevirt_controller.workqueue.work_duration_seconds.count,count,,,,How long in seconds processing an item from workqueue takes.,0,kubevirt_controller,,, -kubevirt_controller.workqueue.work_duration_seconds.sum,count,,,,How long in seconds processing an item from workqueue takes.,0,kubevirt_controller,,, +kubevirt_controller.workqueue.unfinished_work_seconds,gauge,,second,,How many seconds of work has done that is in progress and hasn't been observed by work_duration. Large values indicate stuck threads. One can deduce the number of stuck threads by observing the rate at which this increases.,0,kubevirt_controller,,, +kubevirt_controller.workqueue.work_duration_seconds.bucket,count,,second,,How long in seconds processing an item from workqueue takes.,0,kubevirt_controller,,, +kubevirt_controller.workqueue.work_duration_seconds.count,count,,second,,How long in seconds processing an item from workqueue takes.,0,kubevirt_controller,,, +kubevirt_controller.workqueue.work_duration_seconds.sum,count,,second,,How long in seconds processing an item from workqueue takes.,0,kubevirt_controller,,, diff --git a/kubevirt_handler/CHANGELOG.md b/kubevirt_handler/CHANGELOG.md index 934b76a9af53b..efb69c7b7ace0 100644 --- a/kubevirt_handler/CHANGELOG.md +++ b/kubevirt_handler/CHANGELOG.md @@ -1,3 +1,9 @@ # CHANGELOG - KubeVirt Handler + +## 1.0.0 / 2024-10-04 + +***Added***: + +* Initial Release ([#18283](https://github.com/DataDog/integrations-core/pull/18283)) diff --git a/kubevirt_handler/changelog.d/18283.added b/kubevirt_handler/changelog.d/18283.added deleted file mode 100644 index aa949b47b7b41..0000000000000 --- a/kubevirt_handler/changelog.d/18283.added +++ /dev/null @@ -1 +0,0 @@ -Initial Release \ No newline at end of file diff --git a/kubevirt_handler/datadog_checks/kubevirt_handler/__about__.py b/kubevirt_handler/datadog_checks/kubevirt_handler/__about__.py index e9541ce83e9e5..acbfd1c866b84 100644 --- a/kubevirt_handler/datadog_checks/kubevirt_handler/__about__.py +++ b/kubevirt_handler/datadog_checks/kubevirt_handler/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '0.0.1' +__version__ = '1.0.0' diff --git a/kubevirt_handler/datadog_checks/kubevirt_handler/check.py b/kubevirt_handler/datadog_checks/kubevirt_handler/check.py index f009596b2cc1a..26d77e4e2566f 100644 --- a/kubevirt_handler/datadog_checks/kubevirt_handler/check.py +++ b/kubevirt_handler/datadog_checks/kubevirt_handler/check.py @@ -61,6 +61,9 @@ def _parse_config(self): "namespace": self.__NAMESPACE__, "enable_health_service_check": False, "tls_verify": self.tls_verify, + "rename_labels": { + "namespace": "vm_namespace", + }, } self.scraper_configs.append(instance) diff --git a/kubevirt_handler/images/IMAGES_README.md b/kubevirt_handler/images/IMAGES_README.md deleted file mode 100644 index 70612c2830ffb..0000000000000 --- a/kubevirt_handler/images/IMAGES_README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Marketplace Media Carousel Guidelines - -## Using the media gallery - -To use the media gallery, you must upload a minimum of one image. The gallery -can hold a maximum of 8 pieces of media total, and one of these pieces of media -can be a video (guidelines and submission steps below). Images should be -added to your /images directory and referenced in the manifest.json file. - - -## Image and video requirements - -### Images - -``` -File type : .jpg or .png -File size : ~500 KB per image, with a max of 1 MB per image -File dimensions : The image must be between 1440px and 2880px width, with a 16:9 aspect ratio (for example: 1440x810) -File name : Use only letters, numbers, underscores, and hyphens -Color mode : RGB -Color profile : sRGB -Description : 300 characters maximum -``` - -### Video - -To display a video in your media gallery, please send our team the zipped file -or a link to download the video at `marketplace@datadog.com`. In addition, -please upload a thumbnail image for your video as a part of the pull request. -Once approved, we will upload the file to Vimeo and provide you with the -vimeo_id to add to your manifest.json file. Please note that the gallery can -only hold one video. - -``` -File type : MP4 H.264 -File size : Max 1 video; 1 GB maximum size -File dimensions : The aspect ratio must be exactly 16:9, and the resolution must be 1920x1080 or higher -File name : partnerName-appName.mp4 -Run time : Recommendation of 60 seconds or less -Description : 300 characters maximum -``` diff --git a/kubevirt_handler/manifest.json b/kubevirt_handler/manifest.json index ea197c1090e70..a9a0d6db1620c 100644 --- a/kubevirt_handler/manifest.json +++ b/kubevirt_handler/manifest.json @@ -35,14 +35,15 @@ "metrics": { "prefix": "kubevirt_handler.", "check": [ - "kubevirt_handler.can_connect", + "kubevirt_handler.can_connect", "kubevirt_handler.vmi.cpu_system_usage_seconds.count" ], "metadata_path": "metadata.csv" }, "service_checks": { "metadata_path": "assets/service_checks.json" - } + }, + "process_signatures": ["virt-handler"] } }, "author": { diff --git a/kubevirt_handler/metadata.csv b/kubevirt_handler/metadata.csv index 1b9faba853995..7f697de4cae94 100644 --- a/kubevirt_handler/metadata.csv +++ b/kubevirt_handler/metadata.csv @@ -1,5 +1,5 @@ metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric,sample_tags -kubevirt_handler.can_connect,gauge,,,,Whether the check can connect to the KubeVirt Handler or not.,0,kubevirt_handler,handler connect,, +kubevirt_handler.can_connect,gauge,,,,"Value of 1 if the agent can connect to the KubeVirt Handler, and 0 otherwise.",0,kubevirt_handler,handler connect,, kubevirt_handler.vmi.cpu_system_usage_seconds.count,count,,second,,"Total CPU time spent in system mode.",0,kubevirt_handler,short_name,, kubevirt_handler.vmi.cpu_usage_seconds.count,count,,second,,"Total CPU time spent in all modes (sum of both vcpu and hypervisor usage).",0,kubevirt_handler,short_name,, kubevirt_handler.vmi.cpu_user_usage_seconds.count,count,,second,,"Total CPU time spent in user mode.",0,kubevirt_handler,short_name,, diff --git a/kyototycoon/CHANGELOG.md b/kyototycoon/CHANGELOG.md index 62d2b5030a242..ec97b4e7e1a8b 100644 --- a/kyototycoon/CHANGELOG.md +++ b/kyototycoon/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/kyototycoon/datadog_checks/kyototycoon/__about__.py b/kyototycoon/datadog_checks/kyototycoon/__about__.py index 1c0e297048fe0..742f0fd7b8754 100644 --- a/kyototycoon/datadog_checks/kyototycoon/__about__.py +++ b/kyototycoon/datadog_checks/kyototycoon/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "2.5.1" +__version__ = "3.0.0" diff --git a/kyverno/CHANGELOG.md b/kyverno/CHANGELOG.md index 768d614a63266..b9af61afdf3d6 100644 --- a/kyverno/CHANGELOG.md +++ b/kyverno/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.2 / 2024-07-31 / Agent 7.56.0 ***Fixed***: diff --git a/kyverno/datadog_checks/kyverno/__about__.py b/kyverno/datadog_checks/kyverno/__about__.py index 1436e0ab91c45..cc393c1dad9ce 100644 --- a/kyverno/datadog_checks/kyverno/__about__.py +++ b/kyverno/datadog_checks/kyverno/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.2' +__version__ = '2.0.0' diff --git a/lastpass/CHANGELOG.md b/lastpass/CHANGELOG.md index 18e8eef1a9484..cf44ddc855937 100644 --- a/lastpass/CHANGELOG.md +++ b/lastpass/CHANGELOG.md @@ -4,4 +4,4 @@ ***Added***: -* Initial Release \ No newline at end of file +* Initial Release diff --git a/lastpass/README.md b/lastpass/README.md index 94550af351aba..b73232f5557f3 100644 --- a/lastpass/README.md +++ b/lastpass/README.md @@ -1,29 +1,70 @@ ## Overview -LastPass is a password management solution that securely stores and manages passwords and other sensitive information. LastPass provides users with the ability to generate passwords, synchronize passwords across multiple devices, and add an extra layer of security through multi-factor authentication. +[LastPass][1] is a password management solution that securely stores and manages passwords and other sensitive +information. LastPass provides users with the ability to generate passwords, synchronize passwords across multiple +devices, and add an extra layer of security through multi-factor authentication. + +Integrate LastPass with Datadog to gain insights into reporting event logs through the LastPass Enterprise API. The data is +normalized and enriched before ingestion. Pre-built dashboard visualizations provide immediate insights into LastPass +reporting events, while out-of-the-box detection rules enhance detection and response capabilities. ## Setup ### Configuration -!!! Add list of steps to set up this integration !!! +#### Get config parameters of LastPass + +##### Account number + +1. Log in to the [Admin Console](https://admin.lastpass.com/) with your email address and master password. +2. On the **Dashboard** tab, click the profile email located in the top right corner to find the account number. +3. Alternatively, you can find the account number by navigating to **Advanced** > **Enterprise API**. + +##### Provisioning hash + +1. Log in to the [Admin Console](https://admin.lastpass.com) with your email address and master password. +2. Navigate to **Advanced** > **Enterprise API**. +3. From there, you can create or reset a provisioning hash if you forgot it. + +##### Time zone + +1. The options in the **Time Zone** dropdown menu are based on LastPass' time zone values. +2. You must select the time zone that is configured in your LastPass account. +3. To verify your LastPass account's time zone, do the following: + - Log in to your LastPass Business account. + - Access the [Vault page](https://lastpass.com/vault/). + - Navigate to **Account Settings**. + - Find the selected time zone under the **Account Information** section. -### Validation +#### Configure the LastPass and Datadog integration -!!! Add steps to validate integration is functioning as expected !!! +Configure the Datadog endpoint to forward LastPass logs to Datadog. + +1. Navigate to `LastPass` integration on Datadog platform. +2. Add your LastPass credentials. + +| LastPass Parameters | Description | +|---------------------|----------------------------------------------------------------------| +| Account number | The account number of your registered LastPass account. | +| Provisioning hash | The provisioning hash secret of your registered account on LastPass. | +| Time zone | The time zone of your registered account on LastPass | ## Data Collected ### Logs -The LastPass integration collects and forwards LastPass Reporting Event logs to Datadog. + +The LastPass integration collects and forwards LastPass reporting event logs to Datadog. ### Metrics + The LastPass integration does not include any metrics. ### Events + The LastPass integration does not include any events. ## Support + For further assistance, contact [Datadog Support][2]. [1]: https://www.lastpass.com/products/business diff --git a/lastpass/assets/dashboards/lastpass_reporting_events.json b/lastpass/assets/dashboards/lastpass_reporting_events.json new file mode 100644 index 0000000000000..f03cf1e14b09a --- /dev/null +++ b/lastpass/assets/dashboards/lastpass_reporting_events.json @@ -0,0 +1,2528 @@ +{ + "title": "LastPass - Reporting Events", + "description": "This dashboard provides a comprehensive analysis of reporting events.", + "widgets": [ + { + "id": 366259692847036, + "definition": { + "title": "", + "banner_img": "https://support.lastpass.com/resource/1677168358000/LastpassLogo", + "show_title": false, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 5191298634878960, + "definition": { + "type": "note", + "content": "[LastPass](https://www.lastpass.com/products/business) is a password management solution that securely stores and manages passwords and other sensitive\ninformation. LastPass provides users with the ability to generate passwords, synchronize passwords across multiple\ndevices, and add an extra layer of security through multi-factor authentication.\n\nThis dashboard provides a comprehensive analysis of reporting events.\n\n\n**Tips**\n- Use the timeframe selector in the top right of the dashboard to change the default timeframe.\n- Clone this dashboard to rearrange, modify and add widgets and visualizations.", + "background_color": "blue", + "font_size": "14", + "text_align": "left", + "vertical_align": "center", + "show_tick": true, + "tick_pos": "50%", + "tick_edge": "top", + "has_padding": true + }, + "layout": { + "x": 0, + "y": 0, + "width": 4, + "height": 9 + } + } + ] + }, + "layout": { + "x": 0, + "y": 0, + "width": 4, + "height": 12 + } + }, + { + "id": 4721155967459458, + "definition": { + "title": "Login Activity", + "background_color": "vivid_purple", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 1280501236012426, + "definition": { + "title": "Total LastPass Login Attempts", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @Data:\"LastPass via Website\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "conditional_formats": [ + { + "comparator": ">", + "value": 0, + "palette": "custom_bg", + "custom_bg_color": "#dbdef5" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "yaxis": { + "include_zero": true + }, + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 8, + "height": 3 + } + }, + { + "id": 4438774702454684, + "definition": { + "title": "Successful LastPass Logins", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @Data:\"LastPass via Website\" @evt.name:\"Log in\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "conditional_formats": [ + { + "comparator": ">", + "value": 0, + "palette": "black_on_light_green" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "yaxis": { + "include_zero": true + }, + "type": "area" + } + }, + "layout": { + "x": 0, + "y": 3, + "width": 4, + "height": 3 + } + }, + { + "id": 4674596454830660, + "definition": { + "title": "Failed LastPass Logins", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @Data:\"LastPass via Website\" @evt.name:\"Failed login attempt\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "conditional_formats": [ + { + "comparator": ">", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "yaxis": { + "include_zero": true + }, + "type": "area" + } + }, + "layout": { + "x": 4, + "y": 3, + "width": 4, + "height": 3 + } + }, + { + "id": 8425364252595370, + "definition": { + "title": "Successful/Failed LastPass Logins Overtime", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "Successful ", + "formula": "query1" + }, + { + "alias": "Failed", + "formula": "query2" + } + ], + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @Data:\"LastPass via Website\" @evt.name:\"Log in\" $IP_Address $Username" + }, + "storage": "hot" + }, + { + "data_source": "logs", + "name": "query2", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @Data:\"LastPass via Website\" @evt.name:\"Failed login attempt\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 6, + "width": 8, + "height": 5 + } + } + ] + }, + "layout": { + "x": 4, + "y": 0, + "width": 8, + "height": 12 + } + }, + { + "id": 3843119513260660, + "definition": { + "title": "Datadog Cloud SIEM", + "title_align": "center", + "background_color": "vivid_purple", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 6185164624143288, + "definition": { + "type": "note", + "content": "Datadog Cloud SIEM analyzes and correlates reporting events to detect real-time threats happening in your LastPass account. If you don't see any signals, make sure you've enabled [Datadog Cloud SIEM](/security).", + "background_color": "blue", + "font_size": "14", + "text_align": "left", + "vertical_align": "center", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left", + "has_padding": true + }, + "layout": { + "x": 0, + "y": 0, + "width": 12, + "height": 1 + } + }, + { + "id": 1846663025930926, + "definition": { + "title": "CRITICALs", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">", + "custom_bg_color": "#bc303c", + "palette": "custom_bg", + "value": 0 + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "security_signals", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events status:critical" + } + } + ], + "response_format": "scalar" + } + ], + "autoscale": true, + "custom_links": [], + "precision": 2 + }, + "layout": { + "x": 0, + "y": 1, + "width": 2, + "height": 2 + } + }, + { + "id": 5874320444095978, + "definition": { + "title": "MEDIUMs", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">", + "custom_bg_color": "#e5a21c", + "palette": "custom_bg", + "value": 0 + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "security_signals", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events status:medium" + } + } + ], + "response_format": "scalar" + } + ], + "autoscale": true, + "custom_links": [], + "precision": 2 + }, + "layout": { + "x": 2, + "y": 1, + "width": 2, + "height": 2 + } + }, + { + "id": 7513659035159196, + "definition": { + "title": "Critical Security Signals", + "type": "toplist", + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">", + "custom_bg_color": "#bc303c", + "palette": "custom_bg", + "value": 0 + } + ], + "queries": [ + { + "data_source": "security_signals", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@workflow.rule.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events status:critical" + } + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "custom_links": [ + { + "label": "View related Security Signals", + "link": "/security?query=@workflow.rule.name:{{@workflow.rule.name.value}}&column=time&order=desc&view=signal&start={{timestamp_widget_start}}&end={{timestamp_widget_end}}&paused=false" + } + ], + "style": {} + }, + "layout": { + "x": 4, + "y": 1, + "width": 8, + "height": 4 + } + }, + { + "id": 5570817317099560, + "definition": { + "title": "HIGHs", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">", + "custom_bg_color": "#d33043", + "palette": "custom_bg", + "value": 0 + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "security_signals", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events status:high" + } + } + ], + "response_format": "scalar" + } + ], + "autoscale": true, + "custom_links": [], + "precision": 2 + }, + "layout": { + "x": 0, + "y": 3, + "width": 2, + "height": 2 + } + }, + { + "id": 8300831351575414, + "definition": { + "title": "LOWs", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">", + "custom_bg_color": "#bc303c", + "palette": "black_on_light_yellow", + "value": 0 + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "security_signals", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events status:low" + } + } + ], + "response_format": "scalar" + } + ], + "autoscale": true, + "custom_links": [], + "precision": 2 + }, + "layout": { + "x": 2, + "y": 3, + "width": 2, + "height": 1 + } + }, + { + "id": 5019476718522210, + "definition": { + "title": "INFOs", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">", + "custom_bg_color": "#c9e5ff", + "palette": "custom_bg", + "value": 0 + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "security_signals", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events status:info" + } + } + ], + "response_format": "scalar" + } + ], + "autoscale": true, + "custom_links": [], + "precision": 2 + }, + "layout": { + "x": 2, + "y": 4, + "width": 2, + "height": 1 + } + }, + { + "id": 2394925443650716, + "definition": { + "title": "High Security Signals", + "type": "toplist", + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">", + "custom_bg_color": "#d33043", + "palette": "custom_bg", + "value": 0 + } + ], + "queries": [ + { + "data_source": "security_signals", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@workflow.rule.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events status:high" + } + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "custom_links": [ + { + "label": "View related Security Signals", + "link": "/security?query=@workflow.rule.name:{{@workflow.rule.name.value}}&column=time&order=desc&view=signal&start={{timestamp_widget_start}}&end={{timestamp_widget_end}}&paused=false" + } + ], + "style": {} + }, + "layout": { + "x": 0, + "y": 5, + "width": 6, + "height": 4 + } + }, + { + "id": 4353073577209702, + "definition": { + "title": "Medium Security Signals", + "type": "toplist", + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">", + "custom_bg_color": "#e5a21c", + "palette": "custom_bg", + "value": 0 + } + ], + "queries": [ + { + "data_source": "security_signals", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@workflow.rule.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events status:medium" + } + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "custom_links": [ + { + "label": "View related Security Signals", + "link": "/security?query=@workflow.rule.name:{{@workflow.rule.name.value}}&column=time&order=desc&view=signal&start={{timestamp_widget_start}}&end={{timestamp_widget_end}}&paused=false" + } + ], + "style": {} + }, + "layout": { + "x": 6, + "y": 5, + "width": 6, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 12, + "width": 12, + "height": 10 + } + }, + { + "id": 4693872799867300, + "definition": { + "title": "User Activity", + "background_color": "vivid_purple", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 5242139185711476, + "definition": { + "title": "Top 10 Active Users", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@usr.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events $IP_Address $Username -@Data:\"Initiated by API\" -@usr.name:\"\" $Event_Name" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "style": { + "display": { + "type": "stacked", + "legend": "automatic" + } + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 4 + } + }, + { + "id": 7392172131225458, + "definition": { + "title": "Users with Disabled MFA Actions", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@usr.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Disabled LastPass Authentication\" -@usr.name:\"\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "style": { + "display": { + "type": "stacked", + "legend": "automatic" + } + } + }, + "layout": { + "x": 6, + "y": 0, + "width": 6, + "height": 4 + } + }, + { + "id": 6345008047916956, + "definition": { + "title": "Top IPs with Failed Login Attempts", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@network.client.ip", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Failed login attempt\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "style": { + "display": { + "type": "stacked", + "legend": "automatic" + } + } + }, + "layout": { + "x": 0, + "y": 4, + "width": 12, + "height": 4 + } + }, + { + "id": 3338231403565158, + "definition": { + "title": "Total Master Password Changed", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Master password changed\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">", + "value": 0, + "palette": "custom_bg", + "custom_bg_color": "#dbdef5" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": true + } + } + }, + "layout": { + "x": 0, + "y": 8, + "width": 3, + "height": 4 + } + }, + { + "id": 5816013216282476, + "definition": { + "title": "Top 10 Master Password Changers", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@usr.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Master password changed\" -@usr.name:\"\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "style": { + "display": { + "type": "stacked", + "legend": "automatic" + } + } + }, + "layout": { + "x": 3, + "y": 8, + "width": 9, + "height": 4 + } + }, + { + "id": 801162268259126, + "definition": { + "title": "Total Password Changed for Sites", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Password changed\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "conditional_formats": [ + { + "comparator": ">", + "value": 0, + "palette": "custom_bg", + "custom_bg_color": "#dbdef5" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": true + } + } + }, + "layout": { + "x": 0, + "y": 12, + "width": 3, + "height": 4 + } + }, + { + "id": 8500122943944382, + "definition": { + "title": "Top Site Password Changers", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@usr.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Password changed\" -@usr.name:\"\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "style": { + "display": { + "type": "stacked", + "legend": "automatic" + } + } + }, + "layout": { + "x": 3, + "y": 12, + "width": 9, + "height": 4 + } + }, + { + "id": 728768989256908, + "definition": { + "title": "Site Logins by Country", + "title_size": "16", + "title_align": "left", + "type": "geomap", + "requests": [ + { + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@network.client.geoip.country.iso_code", + "limit": 250, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Log in\" -@Data:\"Lastpass via website\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 250, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "style": { + "palette": "hostmap_blues", + "palette_flip": false + }, + "view": { + "focus": "WORLD" + } + }, + "layout": { + "x": 0, + "y": 16, + "width": 12, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 22, + "width": 12, + "height": 21 + } + }, + { + "id": 3960011924423096, + "definition": { + "title": "Shared Folder Activity", + "background_color": "vivid_purple", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 3263778074706804, + "definition": { + "title": "Shared Folder Actions Overtime", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "horizontal", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "style": { + "palette": "classic", + "palette_index": 2 + }, + "alias": "Restored shared folder", + "formula": "query1" + }, + { + "style": { + "palette": "cool", + "palette_index": 3 + }, + "alias": "Update folder permissions", + "formula": "query2" + }, + { + "style": { + "palette": "green", + "palette_index": 3 + }, + "alias": "Limit shared folder", + "formula": "query3" + }, + { + "style": { + "palette": "warm", + "palette_index": 3 + }, + "alias": "Removed from shared folder", + "formula": "query4" + }, + { + "style": { + "palette": "gray", + "palette_index": 3 + }, + "alias": "Add to shared folder", + "formula": "query5" + }, + { + "style": { + "palette": "dd20", + "palette_index": 3 + }, + "alias": "Move to shared folder", + "formula": "query6" + }, + { + "style": { + "palette": "warm", + "palette_index": 0 + }, + "alias": "Created shared folder", + "formula": "query7" + }, + { + "style": { + "palette": "orange", + "palette_index": 1 + }, + "alias": "Permanently deleted shared folder", + "formula": "query8" + }, + { + "style": { + "palette": "dd20", + "palette_index": 9 + }, + "alias": "Deleted shared folder", + "formula": "query9" + } + ], + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Restored shared folder\" $IP_Address $Username" + }, + "storage": "hot" + }, + { + "data_source": "logs", + "name": "query2", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Update folder permissions\" $IP_Address $Username" + }, + "storage": "hot" + }, + { + "data_source": "logs", + "name": "query3", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Limit shared folder\" $IP_Address $Username" + }, + "storage": "hot" + }, + { + "data_source": "logs", + "name": "query4", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Removed from shared folder\" $IP_Address $Username" + }, + "storage": "hot" + }, + { + "data_source": "logs", + "name": "query5", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Add to shared folder\" $IP_Address $Username" + }, + "storage": "hot" + }, + { + "data_source": "logs", + "name": "query6", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Move to shared folder\" $IP_Address $Username" + }, + "storage": "hot" + }, + { + "data_source": "logs", + "name": "query7", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Created shared folder\" $IP_Address $Username" + }, + "storage": "hot" + }, + { + "data_source": "logs", + "name": "query8", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Permanently deleted shared folder\" $IP_Address $Username" + }, + "storage": "hot" + }, + { + "data_source": "logs", + "name": "query9", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Deleted shared folder\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 0, + "width": 12, + "height": 5 + } + }, + { + "id": 2545229658024910, + "definition": { + "title": "Permanently Deleted Shared Folders", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Permanently deleted shared folder\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "conditional_formats": [ + { + "comparator": ">", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": true + } + } + }, + "layout": { + "x": 0, + "y": 5, + "width": 4, + "height": 4 + } + }, + { + "id": 5118784576217878, + "definition": { + "title": "Shared Folder Actions Distribution", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@evt.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:(\"Restored shared folder\" OR \"Update folder permissions\" OR \"Limit shared folder\" OR \"Removed from shared folder\" OR \"Add to shared folder\" OR \"Move to shared folder\" OR \"Created shared folder\" OR \"Permanently deleted shared folder\" OR \"Deleted shared folder\" OR \"Rename shared folder\") $IP_Address $Username" + }, + "storage": "hot" + } + ], + "style": { + "palette": "datadog16" + }, + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 4, + "y": 5, + "width": 8, + "height": 4 + } + }, + { + "id": 4571288467147354, + "definition": { + "title": "Top Folders and their Users", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@shared_folder.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + }, + { + "facet": "@usr.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @shared_folder.name:* $IP_Address $Username -@shared_folder.name:\"INVALID SHARED FOLDER\" $Event_Name" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 100, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "style": { + "display": { + "type": "stacked", + "legend": "automatic" + } + } + }, + "layout": { + "x": 0, + "y": 9, + "width": 12, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 43, + "width": 12, + "height": 14, + "is_column_break": true + } + }, + { + "id": 521163664454470, + "definition": { + "title": "Business Admin Activity", + "background_color": "vivid_purple", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 3518995677108260, + "definition": { + "title": "Total Count of Notified Password Change Events", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Require password change\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "conditional_formats": [ + { + "comparator": ">", + "value": 0, + "palette": "custom_bg", + "custom_bg_color": "#dbdef5" + } + ] + } + ], + "autoscale": true, + "precision": 2, + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": true + } + } + }, + "layout": { + "x": 0, + "y": 0, + "width": 5, + "height": 4 + } + }, + { + "id": 3864408125134510, + "definition": { + "title": "Policy Actions Distribution", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@evt.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:(\"Add policy\" OR \"Edit policy\" OR \"Delete policy\" OR \"Update policy users\") $IP_Address $Username" + }, + "storage": "hot" + } + ], + "style": { + "palette": "datadog16" + }, + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 5, + "y": 0, + "width": 7, + "height": 4 + } + }, + { + "id": 4102109028396586, + "definition": { + "title": "Top 10 Policies and their Actions", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@policy.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + }, + { + "facet": "@evt.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:(\"Add policy\" OR \"Edit policy\" OR \"Delete policy\" OR \"Update policy users\") $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 100, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "style": { + "display": { + "type": "stacked", + "legend": "automatic" + } + } + }, + "layout": { + "x": 0, + "y": 4, + "width": 12, + "height": 4 + } + }, + { + "id": 2158310616321462, + "definition": { + "title": "MFA-Disabled Actions by Admin Overtime", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "MFA Disabled", + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:(Disabled OR \"Disabled LastPass Authentication\") $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 8, + "width": 12, + "height": 4 + } + }, + { + "id": 4398728177105610, + "definition": { + "title": "Employee Account Actions Distribution", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@evt.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:(\"Created LastPass account\" OR \"Employee account created\" OR \"Employee account deleted\" OR \"Employee invited\" OR \"Employee account requires activation\") $IP_Address $Username" + }, + "storage": "hot" + } + ], + "style": { + "palette": "datadog16" + }, + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 0, + "y": 12, + "width": 6, + "height": 4 + } + }, + { + "id": 848330169767050, + "definition": { + "title": "Group Actions Distribution", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@evt.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:(\"Rename group\" OR \"Delete group\" OR \"Create group\" OR \"Remove from group\" OR \"Adding user to group\") $IP_Address $Username" + }, + "storage": "hot" + } + ], + "style": { + "palette": "datadog16" + }, + "sort": { + "count": 10, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "type": "sunburst", + "legend": { + "type": "table" + } + }, + "layout": { + "x": 6, + "y": 12, + "width": 6, + "height": 4 + } + }, + { + "id": 1912396428941678, + "definition": { + "title": "Total Password Reuse", + "title_size": "16", + "title_align": "left", + "type": "query_value", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Password reuse\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "conditional_formats": [ + { + "comparator": ">", + "value": 0, + "palette": "black_on_light_red" + } + ] + } + ], + "autoscale": true, + "precision": 2 + }, + "layout": { + "x": 0, + "y": 16, + "width": 4, + "height": 4 + } + }, + { + "id": 6489114963667280, + "definition": { + "title": "Top 10 Groups and their Actions", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [ + { + "facet": "@group.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + }, + { + "facet": "@evt.name", + "limit": 10, + "sort": { + "order": "desc", + "aggregation": "count" + } + } + ], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:(\"Rename group\" OR \"Delete group\" OR \"Create group\" OR \"Remove from group\" OR \"Adding user to group\") $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "scalar", + "formulas": [ + { + "formula": "query1" + } + ], + "sort": { + "count": 100, + "order_by": [ + { + "type": "formula", + "index": 0, + "order": "desc" + } + ] + } + } + ], + "style": { + "display": { + "type": "stacked", + "legend": "automatic" + } + } + }, + "layout": { + "x": 4, + "y": 16, + "width": 8, + "height": 4 + } + }, + { + "id": 1577864555655948, + "definition": { + "title": "Reactivated/Deactivated Users Overtime", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "alias": "Reactivated User", + "formula": "query1" + }, + { + "alias": "Deactivated User", + "formula": "query2" + } + ], + "queries": [ + { + "data_source": "logs", + "name": "query1", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Reactivated user\" $IP_Address $Username" + }, + "storage": "hot" + }, + { + "data_source": "logs", + "name": "query2", + "indexes": [ + "*" + ], + "compute": { + "aggregation": "count" + }, + "group_by": [], + "search": { + "query": "source:lastpass service:reporting-events @evt.name:\"Deactivated user\" $IP_Address $Username" + }, + "storage": "hot" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 20, + "width": 12, + "height": 4 + } + }, + { + "id": 3037648160947038, + "definition": { + "title": "Reporting Event List", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "response_format": "event_list", + "query": { + "data_source": "logs_stream", + "query_string": "source:lastpass service:reporting-events $IP_Address $Username -@Data:\"Initiated by API\" $Event_Name ", + "indexes": [], + "storage": "hot", + "sort": { + "order": "desc", + "column": "timestamp" + } + }, + "columns": [ + { + "field": "status_line", + "width": "auto" + }, + { + "field": "timestamp", + "width": "auto" + }, + { + "field": "@network.client.ip", + "width": "auto" + }, + { + "field": "@usr.name", + "width": "auto" + }, + { + "field": "@evt.name", + "width": "auto" + }, + { + "field": "content", + "width": "auto" + } + ] + } + ], + "type": "list_stream" + }, + "layout": { + "x": 0, + "y": 24, + "width": 12, + "height": 4 + } + } + ] + }, + "layout": { + "x": 0, + "y": 57, + "width": 12, + "height": 29 + } + } + ], + "template_variables": [ + { + "name": "Username", + "prefix": "@usr.name", + "available_values": [], + "default": "*" + }, + { + "name": "IP_Address", + "prefix": "@network.client.ip", + "available_values": [], + "default": "*" + }, + { + "name": "Event_Name", + "prefix": "@evt.name", + "available_values": [], + "default": "*" + } + ], + "layout_type": "ordered", + "notify_list": [], + "reflow_type": "fixed" +} diff --git a/lastpass/assets/lastpass.svg b/lastpass/assets/lastpass.svg new file mode 100644 index 0000000000000..5b4b646981c8d --- /dev/null +++ b/lastpass/assets/lastpass.svg @@ -0,0 +1,1623 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lastpass/assets/logs/lastpass.yaml b/lastpass/assets/logs/lastpass.yaml new file mode 100644 index 0000000000000..d842adb438fa3 --- /dev/null +++ b/lastpass/assets/logs/lastpass.yaml @@ -0,0 +1,225 @@ +id: lastpass +metric_id: lastpass +backend_only: false +facets: + - groups: + - Event + name: Event Name + path: evt.name + source: log + - groups: + - Geoip + name: City Name + path: network.client.geoip.city.name + source: log + - groups: + - Geoip + name: Continent Code + path: network.client.geoip.continent.code + source: log + - groups: + - Geoip + name: Continent Name + path: network.client.geoip.continent.name + source: log + - groups: + - Geoip + name: Country ISO Code + path: network.client.geoip.country.iso_code + source: log + - groups: + - Geoip + name: Country Name + path: network.client.geoip.country.name + source: log + - groups: + - Geoip + name: Subdivision ISO Code + path: network.client.geoip.subdivision.iso_code + source: log + - groups: + - Geoip + name: Subdivision Name + path: network.client.geoip.subdivision.name + source: log + - groups: + - Web Access + name: Client IP + path: network.client.ip + source: log + - groups: + - User + name: User Name + path: usr.name + source: log +pipeline: + type: pipeline + name: LastPass + enabled: true + filter: + query: "source:lastpass" + processors: + - type: attribute-remapper + name: Map `IP_Address` to `network.client.ip` + enabled: true + sources: + - IP_Address + sourceType: attribute + target: network.client.ip + targetType: attribute + preserveSource: false + overrideOnConflict: false + - type: attribute-remapper + name: Map `Username` to `usr.name` + enabled: true + sources: + - Username + sourceType: attribute + target: usr.name + targetType: attribute + preserveSource: false + overrideOnConflict: false + - type: attribute-remapper + name: Map `Action` to `evt.name` + enabled: true + sources: + - Action + sourceType: attribute + target: evt.name + targetType: attribute + preserveSource: false + overrideOnConflict: false + - type: geo-ip-parser + name: Define `network.client.ip` as default geoip attribute for source + enabled: true + sources: + - network.client.ip + target: network.client.geoip + ip_processing_behavior: do-nothing + - type: pipeline + name: Group Related Activity + enabled: true + filter: + query: '@evt.name:("Rename group" OR "Delete group" OR "Create group" OR "Remove + from group" OR "Adding user to group") ' + processors: + - type: grok-parser + name: Parsing Group Related Info Attribute + enabled: true + source: Data + samples: + - "'Groupabcde'" + - "'Group3' to 'Groupabcde'" + - "'Group3' 'test@abc.com'" + - test@abc.com - Group3 + grok: + supportRules: "" + matchRules: >- + modified_user_added %{notSpace:group.modified_user} \- + %{greedyData:group.name} + + modified_user_removed \'%{greedyData:group.name}\' \'%{notSpace:group.modified_user}\' + + renamed \'%{greedyData:group.oldname}\' to \'%{greedyData:group.name}\' + + add_delete \'%{greedyData:group.name}\' + - type: pipeline + name: Shared Folder Activity + enabled: true + filter: + query: '@evt.name:("Restored shared folder" OR "Update folder permissions" OR + "Limit shared folder" OR "Removed from shared folder" OR "Add to + shared folder" OR "Move to shared folder" OR "Created shared folder" + OR "Permanently deleted shared folder" OR "Deleted shared folder") ' + processors: + - type: grok-parser + name: Parsing Shared Folder Info Attribute + enabled: true + source: Data + samples: + - Testing_data + - "VID: 8931324857103585383 to Testing_data" + - "'Testing_data' 'test@abc.com' 'Read only:no Admin:yes Hide PW:yes" + - "'Testing_data' 'test@abc.com'" + - "VID: 4364210409355695795" + grok: + supportRules: "" + matchRules: >+ + permission_change \'%{greedyData:shared_folder.name}\' + \'%{notSpace:shared_folder.modified_user}\' \'Read + only\:%{word:shared_folder.permissions.read_only} + Admin\:%{word:shared_folder.permissions.is_admin} Hide + PW\:%{word:shared_folder.permissions.hide_password} + + move_to VID\: %{numberStr:shared_folder.VID} to %{greedyData:shared_folder.name} + + removed_added \'%{greedyData:shared_folder.name}\' \'%{notSpace:shared_folder.modified_user}\' + + move_to_without_folder VID\: %{numberStr:shared_folder.VID} + + limit_shared %{greedyData:shared_folder.name} %{notSpace:shared_folder.modified_user} + + create_delete_permanetly_restored %{greedyData:shared_folder.name} + + - type: pipeline + name: Rename Shared Folder Activity + enabled: true + filter: + query: '@evt.name:"Renamed shared folder" ' + processors: + - type: grok-parser + name: Parsing Folder Rename Info Attribute + enabled: true + source: Data + samples: + - "'Testing_data' 'Testing_data_abc'" + grok: + supportRules: "" + matchRules: rename \'%{greedyData:shared_folder.old_name}\' + \'%{greedyData:shared_folder.name}\' + - type: pipeline + name: Policy Related Actions + enabled: true + filter: + query: '@evt.name:("Add policy" OR "Edit policy" OR "Delete policy" OR "Update + policy users") ' + processors: + - type: grok-parser + name: Parsing Policy Related Activity Attribute + enabled: true + source: Data + samples: + - 'Length of site passwords New value: !@# abc.com = 1"' + - Length of site passwords + grok: + supportRules: "" + matchRules: >- + modify %{greedyData:policy.name} New value: + %{greedyData:policy.new_values} + + add %{greedyData:policy.name} + - type: pipeline + name: Vault Item Related Activity + enabled: true + filter: + query: '@evt.name:("Edit secure note" OR "Add secure note" OR "Open secure note" + OR "Site changed" OR "Deleted sites" OR "Site added" OR "Password + changed" OR "Username changed" OR "Log in") -@Data:"LastPass via + Website" ' + processors: + - type: grok-parser + name: Parsing Vault Item Related Info Attribute + enabled: true + source: Data + samples: + - "Secure Note (VID: 1965737432614185751)" + - "VID: 4963227935627314198" + - "VID: 7114762062923152782 from Common_DataDog_Creds" + grok: + supportRules: "" + matchRules: > + Add_Edit_Open Secure Note \(VID\: %{numberStr:VID}\) + + login_sharedfolder VID\: %{numberStr:VID} from %{greedyData:shared_folder.name} + + Site_added_deleted_login_changed_Password_Username_changed VID\: %{numberStr:VID} diff --git a/lastpass/assets/logs/lastpass_tests.yaml b/lastpass/assets/logs/lastpass_tests.yaml new file mode 100644 index 0000000000000..90ab9c1d541bd --- /dev/null +++ b/lastpass/assets/logs/lastpass_tests.yaml @@ -0,0 +1,529 @@ +id: lastpass +tests: + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Remove from group", + "Data": "'Group3' 'cdd@test.com'", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "'Group3' 'cdd@test.com'" + Time: "2024-08-06 05:16:17" + evt: + name: "Remove from group" + group: + modified_user: "cdd@test.com" + name: "Group3" + network: + client: + geoip: { } + ip: "10.10.10.10" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Remove from group", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "'Group3' 'cdd@test.com'", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Adding user to group", + "Data": "cdd@test.com - Group3", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "cdd@test.com - Group3" + Time: "2024-08-06 05:16:17" + evt: + name: "Adding user to group" + group: + modified_user: "cdd@test.com" + name: "Group3" + network: + client: + geoip: { } + ip: "10.10.10.10" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Adding user to group", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "cdd@test.com - Group3", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Add to shared folder", + "Data": "'shared by name1' 'cdd@test.com'", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "'shared by name1' 'cdd@test.com'" + Time: "2024-08-06 05:16:17" + evt: + name: "Add to shared folder" + network: + client: + geoip: { } + ip: "10.10.10.10" + shared_folder: + modified_user: "cdd@test.com" + name: "shared by name1" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Add to shared folder", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "'shared by name1' 'cdd@test.com'", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Move to shared folder", + "Data": "VID: 4901555952779484761 to Common_DataDog_Creds", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "VID: 4901555952779484761 to Common_DataDog_Creds" + Time: "2024-08-06 05:16:17" + evt: + name: "Move to shared folder" + network: + client: + geoip: { } + ip: "10.10.10.10" + shared_folder: + VID: "4901555952779484761" + name: "Common_DataDog_Creds" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Move to shared folder", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "VID: 4901555952779484761 to Common_DataDog_Creds", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Removed from shared folder", + "Data": "'Testing_data' 'cdd@test.com'", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "'Testing_data' 'cdd@test.com'" + Time: "2024-08-06 05:16:17" + evt: + name: "Removed from shared folder" + network: + client: + geoip: { } + ip: "10.10.10.10" + shared_folder: + modified_user: "cdd@test.com" + name: "Testing_data" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Removed from shared folder", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "'Testing_data' 'cdd@test.com'", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Renamed shared folder", + "Data": "'shared by name1' 'shared by name2'", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "'shared by name1' 'shared by name2'" + Time: "2024-08-06 05:16:17" + evt: + name: "Renamed shared folder" + network: + client: + geoip: { } + ip: "10.10.10.10" + shared_folder: + name: "shared by name2" + old_name: "shared by name1" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Renamed shared folder", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "'shared by name1' 'shared by name2'", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Add policy", + "Data": "Length of site passwords", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "Length of site passwords" + Time: "2024-08-06 05:16:17" + evt: + name: "Add policy" + network: + client: + geoip: { } + ip: "10.10.10.10" + policy: + name: "Length of site passwords" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Add policy", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "Length of site passwords", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Edit policy", + "Data": "Length of site passwords New value: test.com=8", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "Length of site passwords New value: test.com=8" + Time: "2024-08-06 05:16:17" + evt: + name: "Edit policy" + network: + client: + geoip: { } + ip: "10.10.10.10" + policy: + name: "Length of site passwords" + new_values: "test.com=8" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Edit policy", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "Length of site passwords New value: test.com=8", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Site added", + "Data": "VID: 5516541713708306640 from SFolder33", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "VID: 5516541713708306640 from SFolder33" + Time: "2024-08-06 05:16:17" + VID: "5516541713708306640" + evt: + name: "Site added" + network: + client: + geoip: {} + ip: "10.10.10.10" + shared_folder: + name: "SFolder33" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Site added", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "VID: 5516541713708306640 from SFolder33", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Username changed", + "Data": "VID: 4963227935627314198", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "VID: 4963227935627314198" + Time: "2024-08-06 05:16:17" + VID: "4963227935627314198" + evt: + name: "Username changed" + network: + client: + geoip: {} + ip: "10.10.10.10" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Username changed", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "VID: 4963227935627314198", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Password changed", + "Data": "VID: 4963227935627314198", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "VID: 4963227935627314198" + Time: "2024-08-06 05:16:17" + VID: "4963227935627314198" + evt: + name: "Password changed" + network: + client: + geoip: {} + ip: "10.10.10.10" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Password changed", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "VID: 4963227935627314198", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Site changed", + "Data": "VID: 8129207370202608594", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "VID: 8129207370202608594" + Time: "2024-08-06 05:16:17" + VID: "8129207370202608594" + evt: + name: "Site changed" + network: + client: + geoip: {} + ip: "10.10.10.10" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Site changed", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "VID: 8129207370202608594", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Deleted sites", + "Data": "VID: 8802943594384138037", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "VID: 8802943594384138037" + Time: "2024-08-06 05:16:17" + VID: "8802943594384138037" + evt: + name: "Deleted sites" + network: + client: + geoip: {} + ip: "10.10.10.10" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Deleted sites", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "VID: 8802943594384138037", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Log in", + "Data": "VID: 4963227935627314198", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "VID: 4963227935627314198" + Time: "2024-08-06 05:16:17" + VID: "4963227935627314198" + evt: + name: "Log in" + network: + client: + geoip: {} + ip: "10.10.10.10" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Log in", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "VID: 4963227935627314198", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" + - sample: |- + { + "Time": "2024-08-06 05:16:17", + "Username": "abc@test.com", + "IP_Address": "10.10.10.10", + "Action": "Open secure note", + "Data": "Secure Note (VID: 7608813617878138489)", + "timestamp": 1722921377000.0 + } + result: + custom: + Data: "Secure Note (VID: 7608813617878138489)" + Time: "2024-08-06 05:16:17" + VID: "7608813617878138489" + evt: + name: "Open secure note" + network: + client: + geoip: {} + ip: "10.10.10.10" + timestamp: 1.722921377E12 + usr: + name: "abc@test.com" + message: |- + { + "Action" : "Open secure note", + "Username" : "abc@test.com", + "Time" : "2024-08-06 05:16:17", + "Data" : "Secure Note (VID: 7608813617878138489)", + "IP_Address" : "10.10.10.10", + "timestamp" : 1.722921377E12 + } + tags: + - "source:LOGS_SOURCE" \ No newline at end of file diff --git a/lastpass/images/lastpass_reporting_events_1.png b/lastpass/images/lastpass_reporting_events_1.png new file mode 100644 index 0000000000000..20013e1f29fb9 Binary files /dev/null and b/lastpass/images/lastpass_reporting_events_1.png differ diff --git a/lastpass/images/lastpass_reporting_events_2.png b/lastpass/images/lastpass_reporting_events_2.png new file mode 100644 index 0000000000000..0884178fb0b1c Binary files /dev/null and b/lastpass/images/lastpass_reporting_events_2.png differ diff --git a/lastpass/images/lastpass_reporting_events_3.png b/lastpass/images/lastpass_reporting_events_3.png new file mode 100644 index 0000000000000..9eadfc44f34bd Binary files /dev/null and b/lastpass/images/lastpass_reporting_events_3.png differ diff --git a/lastpass/manifest.json b/lastpass/manifest.json index fb3207699bbfb..bea88819dcd0d 100644 --- a/lastpass/manifest.json +++ b/lastpass/manifest.json @@ -10,7 +10,23 @@ "changelog": "CHANGELOG.md", "description": "Gain insights into LastPass reporting logs", "title": "LastPass", - "media": [], + "media": [ + { + "caption": "LastPass - Reporting Events 1", + "image_url": "images/lastpass_reporting_events_1.png", + "media_type": "image" + }, + { + "caption": "LastPass - Reporting Events 2", + "image_url": "images/lastpass_reporting_events_2.png", + "media_type": "image" + }, + { + "caption": "LastPass - Reporting Events 3", + "image_url": "images/lastpass_reporting_events_3.png", + "media_type": "image" + } + ], "classifier_tags": [ "Category::Log Collection", "Category::Security", @@ -30,6 +46,9 @@ "metadata_path": "assets/service_checks.json" } }, + "dashboards": { + "LastPass - Reporting Events": "assets/dashboards/lastpass_reporting_events.json" + }, "logs": { "source": "lastpass" } diff --git a/lighttpd/CHANGELOG.md b/lighttpd/CHANGELOG.md index 8e67921106b01..1a678d760afb7 100644 --- a/lighttpd/CHANGELOG.md +++ b/lighttpd/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/lighttpd/datadog_checks/lighttpd/__about__.py b/lighttpd/datadog_checks/lighttpd/__about__.py index 5502f359afa10..f81a9a356ff96 100644 --- a/lighttpd/datadog_checks/lighttpd/__about__.py +++ b/lighttpd/datadog_checks/lighttpd/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "3.5.1" +__version__ = "4.0.0" diff --git a/linkerd/CHANGELOG.md b/linkerd/CHANGELOG.md index 27ac1f842880f..624d434b5488d 100644 --- a/linkerd/CHANGELOG.md +++ b/linkerd/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/linkerd/datadog_checks/linkerd/__about__.py b/linkerd/datadog_checks/linkerd/__about__.py index 131ae880ddf5a..be76f78423b5e 100644 --- a/linkerd/datadog_checks/linkerd/__about__.py +++ b/linkerd/datadog_checks/linkerd/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.2.2" +__version__ = "5.0.0" diff --git a/linux_proc_extras/CHANGELOG.md b/linux_proc_extras/CHANGELOG.md index 237e5a15e42ad..7bd5d084e6f15 100644 --- a/linux_proc_extras/CHANGELOG.md +++ b/linux_proc_extras/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.5.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/linux_proc_extras/datadog_checks/linux_proc_extras/__about__.py b/linux_proc_extras/datadog_checks/linux_proc_extras/__about__.py index 72639401021d6..09adcddf171c4 100644 --- a/linux_proc_extras/datadog_checks/linux_proc_extras/__about__.py +++ b/linux_proc_extras/datadog_checks/linux_proc_extras/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.5.0' +__version__ = '3.0.0' diff --git a/mapr/CHANGELOG.md b/mapr/CHANGELOG.md index 5775c5bc1e0ea..397fe4a1fe502 100644 --- a/mapr/CHANGELOG.md +++ b/mapr/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.11.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/mapr/datadog_checks/mapr/__about__.py b/mapr/datadog_checks/mapr/__about__.py index 7d0a0d83e667a..b33fa8cee4d9d 100644 --- a/mapr/datadog_checks/mapr/__about__.py +++ b/mapr/datadog_checks/mapr/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.11.0' +__version__ = '2.0.0' diff --git a/mapreduce/CHANGELOG.md b/mapreduce/CHANGELOG.md index d507546a62623..946de5cc8d3ff 100644 --- a/mapreduce/CHANGELOG.md +++ b/mapreduce/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/mapreduce/datadog_checks/mapreduce/__about__.py b/mapreduce/datadog_checks/mapreduce/__about__.py index 8bbfa16dda76d..be76f78423b5e 100644 --- a/mapreduce/datadog_checks/mapreduce/__about__.py +++ b/mapreduce/datadog_checks/mapreduce/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.2.1" +__version__ = "5.0.0" diff --git a/marathon/CHANGELOG.md b/marathon/CHANGELOG.md index 8847d6692d41e..41da5cdc76671 100644 --- a/marathon/CHANGELOG.md +++ b/marathon/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/marathon/datadog_checks/marathon/__about__.py b/marathon/datadog_checks/marathon/__about__.py index ca8c2b36aa50f..742f0fd7b8754 100644 --- a/marathon/datadog_checks/marathon/__about__.py +++ b/marathon/datadog_checks/marathon/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "2.3.1" +__version__ = "3.0.0" diff --git a/marklogic/CHANGELOG.md b/marklogic/CHANGELOG.md index ad29d9a97f4fc..7bf8d3753f3b2 100644 --- a/marklogic/CHANGELOG.md +++ b/marklogic/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/marklogic/datadog_checks/marklogic/__about__.py b/marklogic/datadog_checks/marklogic/__about__.py index 1a18420519953..1fda5ed1ca206 100644 --- a/marklogic/datadog_checks/marklogic/__about__.py +++ b/marklogic/datadog_checks/marklogic/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.2.1' +__version__ = '5.0.0' diff --git a/mcache/CHANGELOG.md b/mcache/CHANGELOG.md index 287701c5b367b..8cc89df2597fc 100644 --- a/mcache/CHANGELOG.md +++ b/mcache/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/mcache/datadog_checks/mcache/__about__.py b/mcache/datadog_checks/mcache/__about__.py index ccf6bd22bcecb..b033d7b5bb770 100644 --- a/mcache/datadog_checks/mcache/__about__.py +++ b/mcache/datadog_checks/mcache/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.1.0" +__version__ = "5.0.0" diff --git a/mesos_master/CHANGELOG.md b/mesos_master/CHANGELOG.md index e59d8523299d7..7580647e883c5 100644 --- a/mesos_master/CHANGELOG.md +++ b/mesos_master/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/mesos_master/datadog_checks/mesos_master/__about__.py b/mesos_master/datadog_checks/mesos_master/__about__.py index a3b938c41252f..c25988b9e6d8b 100644 --- a/mesos_master/datadog_checks/mesos_master/__about__.py +++ b/mesos_master/datadog_checks/mesos_master/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.1' +__version__ = '4.0.0' diff --git a/mesos_slave/CHANGELOG.md b/mesos_slave/CHANGELOG.md index 176782ed6b405..474e1c7e53302 100644 --- a/mesos_slave/CHANGELOG.md +++ b/mesos_slave/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/mesos_slave/datadog_checks/mesos_slave/__about__.py b/mesos_slave/datadog_checks/mesos_slave/__about__.py index a3b938c41252f..c25988b9e6d8b 100644 --- a/mesos_slave/datadog_checks/mesos_slave/__about__.py +++ b/mesos_slave/datadog_checks/mesos_slave/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.1' +__version__ = '4.0.0' diff --git a/mimecast/README.md b/mimecast/README.md index 721e1d0a177d7..29266260e8109 100644 --- a/mimecast/README.md +++ b/mimecast/README.md @@ -33,7 +33,7 @@ To find your application's details in Mimecast Email Security: - Application Name: Enter the application name of your choice - Category: Select **SIEM Integration** - Products: Click **Select all** option - - Application Role: Select **SIEM Admin Role** + - Application Role: Select **Basic Administrator** - Description: Enter the description of your choice - In **Notifications**, provide the contact details of your technical administrator and click on **Next** - After clicking on **Add and Generate Keys** there will be pop up window showing Client ID and Client Secret. Please copy those keys to a safe place as they won't be displayed again. diff --git a/mongo/CHANGELOG.md b/mongo/CHANGELOG.md index 1994c19a6da17..07208f8bbd2be 100644 --- a/mongo/CHANGELOG.md +++ b/mongo/CHANGELOG.md @@ -2,6 +2,16 @@ +## 7.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Upgrade psutil to 6.0.0 to fix performance issues addressed ([#18688](https://github.com/DataDog/integrations-core/pull/18688)) + ## 6.11.0 / 2024-09-10 ***Added***: diff --git a/mongo/assets/configuration/spec.yaml b/mongo/assets/configuration/spec.yaml index defd4a34db300..762a49a836450 100644 --- a/mongo/assets/configuration/spec.yaml +++ b/mongo/assets/configuration/spec.yaml @@ -218,7 +218,6 @@ files: example: 10 - name: slow_operations description: Configure collection of MongoDB slow operations. - hidden: true options: - name: enabled description: | diff --git a/mongo/changelog.d/18688.added b/mongo/changelog.d/18688.added deleted file mode 100644 index 30f2555bc26eb..0000000000000 --- a/mongo/changelog.d/18688.added +++ /dev/null @@ -1 +0,0 @@ -Upgrade psutil to 6.0.0 to fix performance issues addressed \ No newline at end of file diff --git a/mongo/changelog.d/18750.added b/mongo/changelog.d/18750.added new file mode 100644 index 0000000000000..2e389bd538453 --- /dev/null +++ b/mongo/changelog.d/18750.added @@ -0,0 +1 @@ +Always emit `database_instance` metadata regardless of DBM status; previously emitted only when DBM was enabled. diff --git a/mongo/changelog.d/18751.added b/mongo/changelog.d/18751.added new file mode 100644 index 0000000000000..13b26ddcc81f4 --- /dev/null +++ b/mongo/changelog.d/18751.added @@ -0,0 +1 @@ +Include tag `clustername` & `database_instance` in mongo service check tags diff --git a/mongo/changelog.d/18761.added b/mongo/changelog.d/18761.added new file mode 100644 index 0000000000000..9af73df70e76a --- /dev/null +++ b/mongo/changelog.d/18761.added @@ -0,0 +1,4 @@ +Add `resolved_views`, `working_millis`, and `queues` fields to the slow query (dbm only) event payload +- resolved_views: contains view details for slow queries on views (MongoDB 5.0+) +- working_millis: the amount of time that MongoDB spends working on the operation (MongoDB 8.0+) +- queues: contains information about the operation's queues (MongoDB 8.0+) \ No newline at end of file diff --git a/mongo/datadog_checks/mongo/__about__.py b/mongo/datadog_checks/mongo/__about__.py index 0e13d4a6062ef..7b8b844cb208e 100644 --- a/mongo/datadog_checks/mongo/__about__.py +++ b/mongo/datadog_checks/mongo/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '6.11.0' +__version__ = '7.0.0' diff --git a/mongo/datadog_checks/mongo/config.py b/mongo/datadog_checks/mongo/config.py index 78e3b9c690c87..06fa2f9dd5c24 100644 --- a/mongo/datadog_checks/mongo/config.py +++ b/mongo/datadog_checks/mongo/config.py @@ -148,6 +148,8 @@ def _compute_service_check_tags(self): main_host, main_port = main_host.split(':') service_check_tags = ["db:%s" % self.db_name, "host:%s" % main_host, "port:%s" % main_port] + self._base_tags + if self.cluster_name: + service_check_tags.append('clustername:%s' % self.cluster_name) return service_check_tags def _compute_metric_tags(self): diff --git a/mongo/datadog_checks/mongo/data/conf.yaml.example b/mongo/datadog_checks/mongo/data/conf.yaml.example index 25140de02139f..9d978b840f0e1 100644 --- a/mongo/datadog_checks/mongo/data/conf.yaml.example +++ b/mongo/datadog_checks/mongo/data/conf.yaml.example @@ -182,6 +182,26 @@ instances: # # collection_interval: 10 + ## Configure collection of MongoDB slow operations. + # + # slow_operations: + + ## @param enabled - boolean - optional - default: true + ## Enable collection of slow operations. Requires `dbm: true`. + # + # enabled: true + + ## @param collection_interval - number - optional - default: 10 + ## Set the slow operations collection interval in seconds. Each collection involves capturing + ## profiled slow operations from sys.profile collection or from the Slow Query log. + # + # collection_interval: 10 + + ## @param max_operations - number - optional - default: 1000 + ## Set the maximum number of slow operations to collect per interval. + # + # max_operations: 1000 + ## Configure collection of MongoDB schemas (inferred) by sampling documents. # # schemas: diff --git a/mongo/datadog_checks/mongo/dbm/slow_operations.py b/mongo/datadog_checks/mongo/dbm/slow_operations.py index 40b2f10c91360..aafd587dbb699 100644 --- a/mongo/datadog_checks/mongo/dbm/slow_operations.py +++ b/mongo/datadog_checks/mongo/dbm/slow_operations.py @@ -257,7 +257,7 @@ def _create_slow_operation_event(self, slow_operation): "user": slow_operation.get("user"), # only available with profiling "application": slow_operation.get("appName"), # only available with profiling "statement": slow_operation["obfuscated_command"], - "query_hash": slow_operation.get("queryHash"), # only available with profiling + "query_hash": slow_operation.get("queryHash") or slow_operation.get("planCacheShapeHash"), "plan_cache_key": slow_operation.get("planCacheKey"), # only available with profiling "query_framework": slow_operation.get("queryFramework"), "comment": slow_operation["command"].get("comment"), @@ -290,6 +290,11 @@ def _create_slow_operation_event(self, slow_operation): "cursor": self._get_slow_operation_cursor(slow_operation), "lock_stats": self._get_slow_operation_lock_stats(slow_operation), "flow_control_stats": self._get_slow_operation_flow_control_stats(slow_operation), + # MongoDB 5.0+ specific fields + "resolved_views": self._get_slow_operation_resolved_views(slow_operation), + # MongoDB 8.0+ specific fields + "working_millis": slow_operation.get("workingMillis"), # the amount of time spends working on the operation + "queues": self._get_slow_operation_queues(slow_operation), } return self._sanitize_event(event) @@ -372,6 +377,21 @@ def _get_slow_operation_flow_control_stats(self, slow_operation): return format_key_name(self._check.convert_to_underscore_separated, flow_control_stats) return None + def _get_slow_operation_queues(self, slow_operation): + queues = slow_operation.get("queues") + if queues: + return format_key_name(self._check.convert_to_underscore_separated, queues) + return + + def _get_slow_operation_resolved_views(self, slow_operation): + resolved_views = slow_operation.get("resolvedViews") + result = [] + if resolved_views: + for view in resolved_views: + view.pop("resolvedPipeline", None) + result.append(format_key_name(self._check.convert_to_underscore_separated, view)) + return result or None + def _sanitize_event(self, event): # remove empty fields return {k: v for k, v in event.items() if v is not None} diff --git a/mongo/datadog_checks/mongo/mongo.py b/mongo/datadog_checks/mongo/mongo.py index df448ea0fea22..bb68d63b0c29b 100644 --- a/mongo/datadog_checks/mongo/mongo.py +++ b/mongo/datadog_checks/mongo/mongo.py @@ -259,15 +259,21 @@ def _get_tags(self, include_internal_resource_tags=False): tags.extend(self.deployment_type.replset_tags) return tags + def _get_service_check_tags(self): + tags = deepcopy(self._config.service_check_tags) + if self._resolved_hostname: + tags.append(f"database_instance:{self._resolved_hostname}") + return tags + def check(self, _): try: self._refresh_metadata() self._refresh_deployment() self._collect_metrics() + self._send_database_instance_metadata() # DBM if self._config.dbm_enabled: - self._send_database_instance_metadata() self._operation_samples.run_job_loop(tags=self._get_tags(include_internal_resource_tags=True)) self._slow_operations.run_job_loop(tags=self._get_tags(include_internal_resource_tags=True)) self._schemas.run_job_loop(tags=self._get_tags(include_internal_resource_tags=True)) diff --git a/mongo/hatch.toml b/mongo/hatch.toml index 30c0e594ed026..fbd7a3fd7c0b3 100644 --- a/mongo/hatch.toml +++ b/mongo/hatch.toml @@ -8,7 +8,7 @@ dependencies = [ [[envs.default.matrix]] python = ["3.12"] -version = ["4.4", "5.0", "6.0", "7.0"] +version = ["4.4", "5.0", "6.0", "7.0", "8.0"] flavor = ["standalone", "shard", "auth", "tls"] [envs.default.overrides] diff --git a/mongo/tests/fixtures/getLog-standalone b/mongo/tests/fixtures/getLog-standalone index 260f95874a802..4a2f95fca9236 100644 --- a/mongo/tests/fixtures/getLog-standalone +++ b/mongo/tests/fixtures/getLog-standalone @@ -2,14 +2,15 @@ "totalLinesWritten": 1306, "log": [ "{\"t\":{\"$date\":\"2023-04-01T18:45:38.733+00:00\"},\"s\":\"I\", \"c\":\"WTCHKPT\", \"id\":22430, \"ctx\":\"Checkpointer\",\"msg\":\"WiredTiger message\",\"attr\":{\"message\":{\"ts_sec\":1720550738,\"ts_usec\":733701,\"thread\":\"1:0xffff796debc0\",\"session_name\":\"WT_SESSION.checkpoint\",\"category\":\"WT_VERB_CHECKPOINT_PROGRESS\",\"category_id\":6,\"verbose_level\":\"DEBUG_1\",\"verbose_level_id\":1,\"msg\":\"saving checkpoint snapshot min: 1332074, snapshot max: 1332074 snapshot count: 0, oldest timestamp: (0, 0) , meta checkpoint timestamp: (0, 0) base write gen: 7015\"}}}\n", - "{\"t\":{\"$date\":\"2023-04-01T18:45:41.386+00:00\"},\"s\":\"I\", \"c\":\"WRITE\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"update\",\"ns\":\"test.customers\",\"command\":{\"q\":{\"age\":{\"$gt\":35}},\"u\":{\"$set\":{\"subscribed\":true}},\"multi\":true,\"upsert\":false,\"comment\":\"update customers subscription status by age\"},\"planSummary\":\"IXSCAN { age: -1 }\",\"keysExamined\":487,\"docsExamined\":487,\"nMatched\":487,\"nModified\":487,\"nUpserted\":0,\"keysInserted\":487,\"keysDeleted\":487,\"numYields\":0,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":1}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"w\":1}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":1}},\"Global\":{\"acquireCount\":{\"w\":1}},\"Database\":{\"acquireCount\":{\"w\":1}},\"Collection\":{\"acquireCount\":{\"w\":1}}},\"flowControl\":{\"acquireCount\":1},\"storage\":{},\"cpuNanos\":11530375,\"remote\":\"192.168.65.1:58133\",\"durationMillis\":11}}\n", + "{\"t\":{\"$date\":\"2023-04-01T18:45:41.386+00:00\"},\"s\":\"I\", \"c\":\"WRITE\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"update\",\"ns\":\"test.customers\",\"command\":{\"q\":{\"age\":{\"$gt\":35}},\"u\":{\"$set\":{\"subscribed\":true}},\"multi\":true,\"upsert\":false,\"comment\":\"update customers subscription status by age\"},\"planSummary\":\"IXSCAN { age: -1 }\",\"keysExamined\":487,\"docsExamined\":487,\"nMatched\":487,\"nModified\":487,\"nUpserted\":0,\"keysInserted\":487,\"keysDeleted\":487,\"numYields\":0,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":1}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"w\":1}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":1}},\"Global\":{\"acquireCount\":{\"w\":1}},\"Database\":{\"acquireCount\":{\"w\":1}},\"Collection\":{\"acquireCount\":{\"w\":1}}},\"flowControl\":{\"acquireCount\":1},\"storage\":{},\"cpuNanos\":11530375,\"remote\":\"192.168.65.1:58133\",\"durationMillis\":11,\"workingMillis\":10}}\n", "{\"t\":{\"$date\":\"2024-04-01T18:45:41.387+00:00\"},\"s\":\"I\", \"c\":\"COMMAND\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"command\",\"ns\":\"test.$cmd\",\"command\":{\"update\":\"customers\",\"ordered\":true,\"comment\":\"update customers subscription status by age\",\"$db\":\"test\"},\"numYields\":0,\"reslen\":60,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":2}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"r\":1,\"w\":2}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":1}},\"Global\":{\"acquireCount\":{\"r\":1,\"w\":2}},\"Database\":{\"acquireCount\":{\"w\":2}},\"Collection\":{\"acquireCount\":{\"w\":2}}},\"flowControl\":{\"acquireCount\":1},\"storage\":{},\"cpuNanos\":11746542,\"remote\":\"192.168.65.1:58133\",\"protocol\":\"op_msg\",\"durationMillis\":11}}\n", "{\"t\":{\"$date\":\"2024-04-01T18:45:41.387+00:00\"},\"s\":\"I\", \"c\":\"COMMAND\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"command\",\"ns\":\"test.$cmd\",\"command\":{\"update\":\"customers\",\"ordered\":true,\"comment\":\"update customers subscription status by age\",\"$db\":\"test\"},\"numYields\":0,\"reslen\":60,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":2}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"r\":1,\"w\":2}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":1}},\"Global\":{\"acquireCount\":{\"r\":1,\"w\":2}},\"Database\":{\"acquireCount\":{\"w\":2}},\"Collection\":{\"acquireCount\":{\"w\":2}}},\"flowControl\":{\"acquireCount\":1},\"storage\":{},\"cpuNanos\":11746542,\"remote\":\"192.168.65.1:58133\",\"protocol\":\"op_msg\",\"durationMillis\":11}}\n", "{\"t\":{\"$date\":\"2024-04-01T18:45:41.387+00:00\"},\"s\":\"I\", \"c\":\"COMMAND\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"command\",\"ns\":\"test.$cmd\",\"command\":{\"update\":\"customers\",\"ordered\":true,\"comment\":\"update customers subscription status by age\",\"$db\":\"test\"},\"numYields\":0,\"reslen\":60,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":2}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"r\":1,\"w\":2}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":1}},\"Global\":{\"acquireCount\":{\"r\":1,\"w\":2}},\"Database\":{\"acquireCount\":{\"w\":2}},\"Collection\":{\"acquireCount\":{\"w\":2}}},\"flowControl\":{\"acquireCount\":1},\"storage\":{},\"cpuNanos\":11746542,\"remote\":\"192.168.65.1:58133\",\"protocol\":\"op_msg\",\"durationMillis\":11}}\n", - "{\"t\":{\"$date\":\"2999-04-01T18:45:43.991+00:00\"},\"s\":\"I\", \"c\":\"WRITE\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"update\",\"ns\":\"test.customers\",\"command\":{\"q\":{\"age\":{\"$gt\":18}},\"u\":{\"$set\":{\"subscribed\":false}},\"multi\":true,\"upsert\":false,\"comment\":\"update customers subscription status by age\"},\"planSummary\":\"IXSCAN { age: -1 }\",\"keysExamined\":608,\"docsExamined\":608,\"nMatched\":608,\"nModified\":441,\"nUpserted\":0,\"keysInserted\":441,\"keysDeleted\":441,\"numYields\":4,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":5}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"w\":5}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":5}},\"Global\":{\"acquireCount\":{\"w\":5}},\"Database\":{\"acquireCount\":{\"w\":5}},\"Collection\":{\"acquireCount\":{\"w\":5}}},\"flowControl\":{\"acquireCount\":5},\"storage\":{},\"cpuNanos\":74500749,\"remote\":\"192.168.65.1:58133\",\"durationMillis\":74}}\n", + "{\"t\":{\"$date\":\"2999-04-01T18:45:43.991+00:00\"},\"s\":\"I\", \"c\":\"WRITE\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"update\",\"ns\":\"test.customers\",\"command\":{\"q\":{\"age\":{\"$gt\":18}},\"u\":{\"$set\":{\"subscribed\":false}},\"multi\":true,\"upsert\":false,\"comment\":\"update customers subscription status by age\"},\"planSummary\":\"IXSCAN { age: -1 }\",\"keysExamined\":608,\"docsExamined\":608,\"nMatched\":608,\"nModified\":441,\"nUpserted\":0,\"keysInserted\":441,\"keysDeleted\":441,\"numYields\":4,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":5}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"w\":5}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":5}},\"Global\":{\"acquireCount\":{\"w\":5}},\"Database\":{\"acquireCount\":{\"w\":5}},\"Collection\":{\"acquireCount\":{\"w\":5}}},\"flowControl\":{\"acquireCount\":5},\"storage\":{},\"cpuNanos\":74500749,\"remote\":\"192.168.65.1:58133\",\"durationMillis\":74,\"queues\":{\"ingress\":{\"admissions\":7,\"totalTimeQueuedMicros\":0},\"execution\":{\"admissions\":328,\"totalTimeQueuedMicros\":2109}}}}\n", "{\"t\":{\"$date\":\"2999-04-01T18:45:43.991+00:00\"},\"s\":\"I\", \"c\":\"COMMAND\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"command\",\"ns\":\"test.$cmd\",\"command\":{\"update\":\"customers\",\"ordered\":true,\"comment\":\"update customers subscription status by age\",\"$db\":\"test\"},\"numYields\":4,\"reslen\":60,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":6}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"r\":1,\"w\":6}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":5}},\"Global\":{\"acquireCount\":{\"r\":1,\"w\":6}},\"Database\":{\"acquireCount\":{\"w\":6}},\"Collection\":{\"acquireCount\":{\"w\":6}}},\"flowControl\":{\"acquireCount\":5},\"storage\":{},\"cpuNanos\":74715957,\"remote\":\"192.168.65.1:58133\",\"protocol\":\"op_msg\",\"durationMillis\":74}}\n", - "{\"t\":{\"$date\":\"2999-04-01T18:45:45.007+00:00\"},\"s\":\"I\", \"c\":\"WRITE\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"update\",\"ns\":\"test.customers\",\"command\":{\"q\":{\"age\":{\"$gt\":35}},\"u\":{\"$set\":{\"subscribed\":true}},\"multi\":true,\"upsert\":false,\"comment\":\"update customers subscription status by age\"},\"planSummary\":\"IXSCAN { age: -1 }\",\"keysExamined\":495,\"docsExamined\":495,\"nMatched\":495,\"nModified\":495,\"nUpserted\":0,\"keysInserted\":495,\"keysDeleted\":495,\"numYields\":2,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":3}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"w\":3}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":3}},\"Global\":{\"acquireCount\":{\"w\":3}},\"Database\":{\"acquireCount\":{\"w\":3}},\"Collection\":{\"acquireCount\":{\"w\":3}}},\"flowControl\":{\"acquireCount\":3},\"storage\":{},\"cpuNanos\":27416375,\"remote\":\"192.168.65.1:58133\",\"durationMillis\":27}}\n", + "{\"t\":{\"$date\":\"2999-04-01T18:45:45.007+00:00\"},\"s\":\"I\", \"c\":\"WRITE\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"update\",\"ns\":\"test.customers\",\"command\":{\"q\":{\"age\":{\"$gt\":35}},\"u\":{\"$set\":{\"subscribed\":true}},\"multi\":true,\"upsert\":false,\"comment\":\"update customers subscription status by age\"},\"planSummary\":\"IXSCAN { age: -1 }\",\"keysExamined\":495,\"docsExamined\":495,\"nMatched\":495,\"nModified\":495,\"nUpserted\":0,\"keysInserted\":495,\"keysDeleted\":495,\"numYields\":2,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":3}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"w\":3}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":3}},\"Global\":{\"acquireCount\":{\"w\":3}},\"Database\":{\"acquireCount\":{\"w\":3}},\"Collection\":{\"acquireCount\":{\"w\":3}}},\"flowControl\":{\"acquireCount\":3},\"storage\":{},\"cpuNanos\":27416375,\"remote\":\"192.168.65.1:58133\",\"durationMillis\":27,\"workingMillis\":20,\"queues\":{\"ingress\":{\"admissions\":7,\"totalTimeQueuedMicros\":0},\"execution\":{\"admissions\":328,\"totalTimeQueuedMicros\":2109}}}}\n", "{\"t\":{\"$date\":\"2999-04-01T18:45:45.008+00:00\"},\"s\":\"I\", \"c\":\"COMMAND\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"command\",\"ns\":\"test.$cmd\",\"command\":{\"update\":\"customers\",\"ordered\":true,\"comment\":\"update customers subscription status by age\",\"$db\":\"test\"},\"numYields\":2,\"reslen\":60,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":4}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"r\":1,\"w\":4}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":3}},\"Global\":{\"acquireCount\":{\"r\":1,\"w\":4}},\"Database\":{\"acquireCount\":{\"w\":4}},\"Collection\":{\"acquireCount\":{\"w\":4}}},\"flowControl\":{\"acquireCount\":3},\"storage\":{},\"cpuNanos\":27721625,\"remote\":\"192.168.65.1:58133\",\"protocol\":\"op_msg\",\"durationMillis\":27}}\n", + "{\"t\":{\"$date\":\"2999-04-01T18:45:45.009+00:00\"},\"s\":\"I\", \"c\":\"COMMAND\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"command\",\"ns\":\"test.myview\",\"command\":{\"update\":\"customers\",\"ordered\":true,\"comment\":\"update customers subscription status by age\",\"$db\":\"test\"},\"numYields\":2,\"reslen\":60,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":4}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"r\":1,\"w\":4}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":3}},\"Global\":{\"acquireCount\":{\"r\":1,\"w\":4}},\"Database\":{\"acquireCount\":{\"w\":4}},\"Collection\":{\"acquireCount\":{\"w\":4}}},\"flowControl\":{\"acquireCount\":3},\"storage\":{},\"cpuNanos\":27721625,\"remote\":\"192.168.65.1:58133\",\"protocol\":\"op_msg\",\"durationMillis\":27,\"resolvedViews\":[{\"viewNamespace\":\"test.myview\",\"dependencyChain\":[\"myView\",\"myCollection\"],\"resolvedPipeline\":[{\"$sort\":{\"firstName\":1}}]}]}}\n", "{\"t\":{\"$date\":\"2999-04-01T18:45:45.040+00:00\"},\"s\":\"I\", \"c\":\"WRITE\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"update\",\"ns\":\"test.customers\",\"command\":{\"q\":{\"age\":{\"$gt\":18}},\"u\":{\"$set\":{\"subscribed\":false}},\"multi\":true,\"upsert\":false,\"comment\":\"update customers subscription status by age\"},\"planSummary\":\"IXSCAN { age: -1 }\",\"keysExamined\":495,\"docsExamined\":495,\"nMatched\":495,\"nModified\":495,\"nUpserted\":0,\"keysInserted\":495,\"keysDeleted\":495,\"numYields\":0,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":1}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"w\":1}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":1}},\"Global\":{\"acquireCount\":{\"w\":1}},\"Database\":{\"acquireCount\":{\"w\":1}},\"Collection\":{\"acquireCount\":{\"w\":1}}},\"flowControl\":{\"acquireCount\":1},\"storage\":{},\"cpuNanos\":14032417,\"remote\":\"192.168.65.1:58133\",\"durationMillis\":14}}\n", "{\"t\":{\"$date\":\"2999-04-01T18:45:45.041+00:00\"},\"s\":\"I\", \"c\":\"COMMAND\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"command\",\"ns\":\"test.$cmd\",\"command\":{\"update\":\"customers\",\"ordered\":true,\"comment\":\"update customers subscription status by age\",\"$db\":\"test\"},\"numYields\":0,\"reslen\":60,\"locks\":{\"ParallelBatchWriterMode\":{\"acquireCount\":{\"r\":2}},\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"r\":1,\"w\":2}},\"ReplicationStateTransition\":{\"acquireCount\":{\"w\":1}},\"Global\":{\"acquireCount\":{\"r\":1,\"w\":2}},\"Database\":{\"acquireCount\":{\"w\":2}},\"Collection\":{\"acquireCount\":{\"w\":2}}},\"flowControl\":{\"acquireCount\":1},\"storage\":{},\"cpuNanos\":15198542,\"remote\":\"192.168.65.1:58133\",\"protocol\":\"op_msg\",\"durationMillis\":15}}\n", "{\"t\":{\"$date\":\"2999-04-01T18:45:45.338+00:00\"},\"s\":\"I\", \"c\":\"COMMAND\", \"id\":51803, \"ctx\":\"conn50\",\"msg\":\"Slow query\",\"attr\":{\"type\":\"command\",\"ns\":\"test.customers\",\"command\":{\"find\":\"customers\",\"filter\":{\"subscribed\":false},\"sort\":{\"name\":1},\"comment\":\"query customers by subscription status\",\"limit\":151,\"$db\":\"test\"},\"planSummary\":\"IXSCAN { name: 1 }\",\"planningTimeMicros\":11891,\"cursorid\":5170666760900931828,\"keysExamined\":540,\"docsExamined\":540,\"fromPlanCache\":true,\"nBatches\":1,\"numYields\":0,\"nreturned\":101,\"queryHash\":\"A9774B9D\",\"planCacheKey\":\"0D12DCDF\",\"queryFramework\":\"classic\",\"reslen\":14089,\"locks\":{\"FeatureCompatibilityVersion\":{\"acquireCount\":{\"r\":1}},\"Global\":{\"acquireCount\":{\"r\":1}}},\"storage\":{},\"cpuNanos\":12071416,\"remote\":\"192.168.65.1:58133\",\"protocol\":\"op_msg\",\"durationMillis\":12}}\n", diff --git a/mongo/tests/results/slow-operations-standalone.json b/mongo/tests/results/slow-operations-standalone.json index 9fb87db7ad7c2..bcd604a916f39 100644 --- a/mongo/tests/results/slow-operations-standalone.json +++ b/mongo/tests/results/slow-operations-standalone.json @@ -265,6 +265,16 @@ }, "flow_control_stats": { "acquire_count": 5 + }, + "queues": { + "ingress": { + "admissions": 7, + "total_time_queued_micros": 0 + }, + "execution": { + "admissions": 328, + "total_time_queued_micros": 2109 + } } }, { @@ -375,6 +385,17 @@ }, "flow_control_stats": { "acquire_count": 3 + }, + "working_millis": 20, + "queues": { + "ingress": { + "admissions": 7, + "total_time_queued_micros": 0 + }, + "execution": { + "admissions": 328, + "total_time_queued_micros": 2109 + } } }, { @@ -430,6 +451,68 @@ "acquire_count": 3 } }, + { + "timestamp": 32479987545009.0, + "dbname": "test", + "op": "command", + "ns": "test.myview", + "query_signature": "c1df6c33f6b6c258", + "statement": "{\"update\": \"customers\", \"ordered\": true, \"$db\": \"test\"}", + "comment": "update customers subscription status by age", + "mills": 27, + "num_yields": 2, + "response_length": 60, + "cpu_nanos": 27721625, + "client": { + "hostname": "192.168.65.1:58133" + }, + "lock_stats": { + "parallel_batch_writer_mode": { + "acquire_count": { + "r": 4 + } + }, + "feature_compatibility_version": { + "acquire_count": { + "r": 1, + "w": 4 + } + }, + "replication_state_transition": { + "acquire_count": { + "w": 3 + } + }, + "global": { + "acquire_count": { + "r": 1, + "w": 4 + } + }, + "database": { + "acquire_count": { + "w": 4 + } + }, + "collection": { + "acquire_count": { + "w": 4 + } + } + }, + "flow_control_stats": { + "acquire_count": 3 + }, + "resolved_views": [ + { + "view_namespace": "test.myview", + "dependency_chain": [ + "myView", + "myCollection" + ] + } + ] + }, { "timestamp": 32479987545040.0, "dbname": "test", diff --git a/mongo/tests/test_dbm_slow_operations.py b/mongo/tests/test_dbm_slow_operations.py index ce747d3d28c86..392a6c336f98b 100644 --- a/mongo/tests/test_dbm_slow_operations.py +++ b/mongo/tests/test_dbm_slow_operations.py @@ -36,6 +36,8 @@ def test_mongo_slow_operations_standalone(aggregator, instance_integration_clust dbm_samples = aggregator.get_event_platform_events("dbm-samples") slow_operation_explain_plans_payload = [event for event in dbm_samples if event['dbm_type'] == 'plan'] + print(json.dumps(slow_operation_payload)) + with open(os.path.join(HERE, "results", "slow-operations-standalone.json"), 'r') as f: expected_slow_operation_payload = json.load(f) assert slow_operation_payload == expected_slow_operation_payload diff --git a/mongo/tests/test_integration.py b/mongo/tests/test_integration.py index 9941eb940c849..88d253cfc7eb8 100644 --- a/mongo/tests/test_integration.py +++ b/mongo/tests/test_integration.py @@ -38,10 +38,6 @@ def _assert_mongodb_instance_event( modules, ): mongodb_instance_event = _get_mongodb_instance_event(aggregator) - if not dbm: - assert mongodb_instance_event is None - return - assert mongodb_instance_event is not None assert mongodb_instance_event['host'] == check._resolved_hostname assert mongodb_instance_event['host'] == check._resolved_hostname diff --git a/mongo/tests/test_unit.py b/mongo/tests/test_unit.py index 4ac766a5ba0cd..a3ae29a2d66ca 100644 --- a/mongo/tests/test_unit.py +++ b/mongo/tests/test_unit.py @@ -612,6 +612,7 @@ def test_when_collections_indexes_stats_to_true_then_index_stats_metrics_reporte def test_when_version_lower_than_3_2_then_no_index_stats_metrics_reported(aggregator, check, instance, dd_run_check): # Given + instance["reported_database_hostname"] = "test-hostname:27017" instance["collections_indexes_stats"] = True instance["collections"] = ['bar', 'foo'] check = check(instance) @@ -625,6 +626,7 @@ def test_when_version_lower_than_3_2_then_no_index_stats_metrics_reported(aggreg def test_when_version_lower_than_3_6_then_no_session_metrics_reported(aggregator, check, instance, dd_run_check): # Given + instance["reported_database_hostname"] = "test-hostname:27017" check = check(instance) # When mocked_client = mock.MagicMock() @@ -738,6 +740,7 @@ def test_refresh_role(instance_shard, aggregator, check, dd_run_check): Ideally we should be asserting that we emit an event for a change of role. That's the behavior users care about. It requires more mocking work though. """ + instance_shard["reported_database_hostname"] = "test-hostname:27018" mongo_check = check(instance_shard) mc = seed_mock_client() mc.replset_get_status.return_value = load_json_fixture('replSetGetStatus-replica-primary-in-shard') diff --git a/mysql/CHANGELOG.md b/mysql/CHANGELOG.md index 3cfa2f2c8dd57..94408ac6cce20 100644 --- a/mysql/CHANGELOG.md +++ b/mysql/CHANGELOG.md @@ -2,6 +2,16 @@ +## 13.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Security***: + +* Bump version of cryptography to 43.0.1 to address vulnerability ([#18656](https://github.com/DataDog/integrations-core/pull/18656)) + ## 12.8.0 / 2024-09-05 ***Added***: diff --git a/mysql/README.md b/mysql/README.md index fec8f4a27e39a..3ad2dfe7e2307 100644 --- a/mysql/README.md +++ b/mysql/README.md @@ -8,6 +8,8 @@ The MySQL integration tracks the performance of your MySQL instances. It collect Enable [Database Monitoring][32] (DBM) for enhanced insights into query performance and database health. In addition to the standard integration, Datadog DBM provides query-level metrics, live and historical query snapshots, wait event analysis, database load, and query explain plans. +MySQL version 5.6, 5.7, 8.0, and MariaDB versions 10.5, 10.6, 10.11 and 11.1 are supported. + ## Setup
This page describes the MySQL Agent standard integration. If you are looking for the Database Monitoring product for MySQL, see Datadog Database Monitoring.
diff --git a/mysql/changelog.d/18656.security b/mysql/changelog.d/18656.security deleted file mode 100644 index ad676917cac26..0000000000000 --- a/mysql/changelog.d/18656.security +++ /dev/null @@ -1 +0,0 @@ -Bump version of cryptography to 43.0.1 to address vulnerability \ No newline at end of file diff --git a/mysql/datadog_checks/mysql/__about__.py b/mysql/datadog_checks/mysql/__about__.py index 88f0af1968d87..ccf684876c143 100644 --- a/mysql/datadog_checks/mysql/__about__.py +++ b/mysql/datadog_checks/mysql/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "12.8.0" +__version__ = "13.0.0" diff --git a/nagios/CHANGELOG.md b/nagios/CHANGELOG.md index ef49ae0722a02..6086ec60aa313 100644 --- a/nagios/CHANGELOG.md +++ b/nagios/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.13.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/nagios/datadog_checks/nagios/__about__.py b/nagios/datadog_checks/nagios/__about__.py index 9277530c51434..0e2ebd5e4631b 100644 --- a/nagios/datadog_checks/nagios/__about__.py +++ b/nagios/datadog_checks/nagios/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.13.0' +__version__ = '2.0.0' diff --git a/network/CHANGELOG.md b/network/CHANGELOG.md index 72662048b82be..337302b4c0645 100644 --- a/network/CHANGELOG.md +++ b/network/CHANGELOG.md @@ -2,6 +2,22 @@ +## 4.1.0 / 2024-10-04 + +***Fixed***: + +* Fix metric type in new network metrics ([#18764](https://github.com/DataDog/integrations-core/pull/18764)) + +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Upgrade psutil to 6.0.0 to fix performance issues addressed ([#18688](https://github.com/DataDog/integrations-core/pull/18688)) + ## 3.4.0 / 2024-09-05 ***Added***: diff --git a/network/changelog.d/18688.added b/network/changelog.d/18688.added deleted file mode 100644 index 30f2555bc26eb..0000000000000 --- a/network/changelog.d/18688.added +++ /dev/null @@ -1 +0,0 @@ -Upgrade psutil to 6.0.0 to fix performance issues addressed \ No newline at end of file diff --git a/network/datadog_checks/network/__about__.py b/network/datadog_checks/network/__about__.py index 378e8c4ee6a6b..d83361248d388 100644 --- a/network/datadog_checks/network/__about__.py +++ b/network/datadog_checks/network/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.4.0' +__version__ = '4.1.0' diff --git a/network/datadog_checks/network/check_linux.py b/network/datadog_checks/network/check_linux.py index 986003b763052..7bd7cfc452256 100644 --- a/network/datadog_checks/network/check_linux.py +++ b/network/datadog_checks/network/check_linux.py @@ -304,9 +304,6 @@ def get_expected_metrics(self): ) return expected_metrics - def _submit_netmetric_gauge(self, metric, value, tags=None): - self.gauge(metric, value, tags=tags) - def _read_int_file(self, file_location): try: with open(file_location, 'r') as f: diff --git a/network/datadog_checks/network/check_windows.py b/network/datadog_checks/network/check_windows.py index fa56342dc77b7..3baa292d04cf3 100644 --- a/network/datadog_checks/network/check_windows.py +++ b/network/datadog_checks/network/check_windows.py @@ -128,6 +128,11 @@ def _tcp_stats(self, tags): 'dwOutRsts': '.out_resets', 'dwNumConns': '.connections', } + # similar to the linux check + nstat_metrics_gauge_names = [ + '.connections', + '.current_established', + ] proto_dict = {} tcp4stats = self._get_tcp_stats(socket.AF_INET) @@ -149,7 +154,10 @@ def _tcp_stats(self, tags): for fieldname in tcpstats_dict: fieldvalue = getattr(stats, fieldname) metric_name = "system.net." + str(proto) + tcpstats_dict[fieldname] - self.submit_netmetric(metric_name, fieldvalue, tags) + if tcpstats_dict[fieldname] in nstat_metrics_gauge_names: + self._submit_netmetric_gauge(metric_name, fieldvalue, tags) + else: + self.submit_netmetric(metric_name, fieldvalue, tags) def _parse_protocol_psutil(self, conn): """ diff --git a/network/datadog_checks/network/network.py b/network/datadog_checks/network/network.py index b9f6d5cf97cac..18761deef2846 100644 --- a/network/datadog_checks/network/network.py +++ b/network/datadog_checks/network/network.py @@ -274,6 +274,9 @@ def submit_netmetric(self, metric, value, tags=None): if self._collect_count_metrics: self.monotonic_count('{}.count'.format(metric), value, tags=tags) + def _submit_netmetric_gauge(self, metric, value, tags=None): + self.gauge(metric, value, tags=tags) + def submit_regexed_values(self, output, regex_list, tags): lines = output.splitlines() for line in lines: diff --git a/network/metadata.csv b/network/metadata.csv index 8d0db8d0ba21c..abb42cc3f11ec 100644 --- a/network/metadata.csv +++ b/network/metadata.csv @@ -105,9 +105,7 @@ system.net.tcp.attempt_fails.count,count,,connection,,The number of times TCP co system.net.tcp.established_resets,gauge,,connection,second,The number of times TCP connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state (Linux or Windows only).,-1,system,tcp established rst, system.net.tcp.established_resets.count,count,,connection,,The number of times TCP connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state (Linux or Windows only).,-1,system,tcp established rst count, system.net.tcp.current_established,gauge,,connection,,The number of TCP connections for which the current state is either ESTABLISHED or CLOSE-WAIT (Linux or Windows only).,0,system,tcp current estab, -system.net.tcp.current_established.count,count,,connection,,The number of TCP connections for which the current state is either ESTABLISHED or CLOSE-WAIT (Linux or Windows only).,0,system,tcp current estab count, system.net.tcp.connections,gauge,,segment,second,The number of TCP connections in all states except listening connections.,0,system,tcp connections, -system.net.tcp.connections.count,count,,segment,,Total count of TCP connections in all states except listening connections.,0,system,tcp connections count, system.net.tcp.in_errors,gauge,,packet,second,The total number of segments received in error (e.g. bad TCP checksums) (Linux or Windows only).,-1,system,tcp in errors, system.net.tcp.in_errors.count,count,,packet,,The total number of segments received in error (e.g. bad TCP checksums) (Linux or Windows only).,-1,system,tcp in errors count, system.net.tcp.out_resets,gauge,,packet,second,The number of TCP segments sent containing the RST flag (Linux or Windows only).,-1,system,tcp out rst, @@ -186,7 +184,6 @@ system.net.tcp4.unconn,gauge,,connection,,The number of TCP IPv4 connections in system.net.tcp4.active_opens,gauge,,connection,second,Number of times TCP IPv4 connections have made a direct transition to the SYN-SENT state from the CLOSED state (Windows only).,0,system,tcp4 active opens, system.net.tcp4.active_opens.count,count,,connection,,Number of times TCP IPv4 connections have made a direct transition to the SYN-SENT state from the CLOSED state (Windows only).,0,system,tcp4 active opens count, system.net.tcp4.connections,gauge,,segment,second,The number of TCP IPv4 connections connections in all states except listening connections (Windows only).,0,system,tcp4 connections, -system.net.tcp4.connections.count,count,,segment,,Total count of TCP IPv4 connections connections in all states except listening connections (Windows only).,0,system,tcp4 connections count, system.net.tcp4.passive_opens,gauge,,connection,second,Number of times TCP IPv4 connections have made a direct transition to the SYN-RCVD state from the LISTEN state (Windows only).,0,system,tcp4 passive opens, system.net.tcp4.passive_opens.count,count,,connection,,Number of times TCP IPv4 connections have made a direct transition to the SYN-RCVD state from the LISTEN state (Windows only).,0,system,tcp4 passive opens count, system.net.tcp4.attempt_fails,gauge,,connection,second,The number of times TCP IPv4 connections have made a direct transition to the CLOSED state from either the SYN-SENT state or the SYN-RCVD state plus the number of times TCP IPv4 connections have made a direct transition to the LISTEN state from the SYN-RCVD state (Windows only).,-1,system,tcp4 attempt fails, @@ -194,7 +191,6 @@ system.net.tcp4.attempt_fails.count,count,,connection,,The number of times TCP I system.net.tcp4.established_resets,gauge,,connection,second,The number of times TCP IPv4 connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state (Windows only).,-1,system,tcp4 established rst, system.net.tcp4.established_resets.count,count,,connection,,The number of times TCP IPv4 connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state (Windows only).,-1,system,tcp4 established rst count, system.net.tcp4.current_established,gauge,,segment,second,The number of currently established TCP IPv4 connections (Windows only).,0,system,tcp4 current established, -system.net.tcp4.current_established.count,count,,segment,,The number of currently established TCP IPv4 connections (Windows only).,0,system,tcp4 current established count, system.net.tcp4.in_errors,gauge,,packet,second,The total number of segments received in error (e.g. bad TCP IPv4 checksums) (Windows only).,-1,system,tcp4 in errors, system.net.tcp4.in_errors.count,count,,packet,,The total number of segments received in error (e.g. bad TCP IPv4 checksums) (Windows only).,-1,system,tcp4 in errors count, system.net.tcp4.out_resets,gauge,,packet,second,The number of TCP IPv4 segments sent containing the RST flag (Windows only).,-1,system,tcp4 out rst, @@ -222,7 +218,6 @@ system.net.tcp6.unconn,gauge,,connection,,The number of TCP IPv6 connections in system.net.tcp6.active_opens,gauge,,connection,second,Number of times TCP IPv6 connections have made a direct transition to the SYN-SENT state from the CLOSED state (Windows only).,0,system,tcp6 active opens, system.net.tcp6.active_opens.count,count,,connection,,Number of times TCP IPv6 connections have made a direct transition to the SYN-SENT state from the CLOSED state (Windows only).,0,system,tcp6 active opens count, system.net.tcp6.connections,gauge,,segment,second,The number of TCP IPv6 connections connections in all states except listening connections (Windows only).,0,system,tcp6 connections, -system.net.tcp6.connections.count,count,,segment,,Total count of TCP IPv6 connections connections in all states except listening connections (Windows only).,0,system,tcp6 connections count, system.net.tcp6.passive_opens,gauge,,connection,second,Number of times TCP IPv6 connections have made a direct transition to the SYN-RCVD state from the LISTEN state (Windows only).,0,system,tcp6 passive opens, system.net.tcp6.passive_opens.count,count,,connection,,Number of times TCP IPv6 connections have made a direct transition to the SYN-RCVD state from the LISTEN state (Windows only).,0,system,tcp6 passive opens count, system.net.tcp6.attempt_fails,gauge,,connection,second,The number of times TCP IPv6 connections have made a direct transition to the CLOSED state from either the SYN-SENT state or the SYN-RCVD state plus the number of times TCP IPv6 connections have made a direct transition to the LISTEN state from the SYN-RCVD state (Windows only).,-1,system,tcp6 attempt fails, @@ -230,7 +225,6 @@ system.net.tcp6.attempt_fails.count,count,,connection,,The number of times TCP I system.net.tcp6.established_resets,gauge,,connection,second,The number of times TCP IPv6 connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state (Windows only).,-1,system,tcp6 established rst, system.net.tcp6.established_resets.count,count,,connection,,The number of times TCP IPv6 connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state (Windows only).,-1,system,tcp6 established rst count, system.net.tcp6.current_established,gauge,,segment,second,The number of currently established TCP IPv6 connections (Windows only).,0,system,tcp6 current established, -system.net.tcp6.current_established.count,count,,segment,,The number of currently established TCP IPv6 connections (Windows only).,0,system,tcp6 current established count, system.net.tcp6.in_errors,gauge,,packet,second,The total number of segments received in error (e.g. bad TCP IPv6 checksums) (Windows only).,-1,system,tcp6 in errors, system.net.tcp6.in_errors.count,count,,packet,,The total number of segments received in error (e.g. bad TCP IPv6 checksums) (Windows only).,-1,system,tcp6 in errors count, system.net.tcp6.out_resets,gauge,,packet,second,The number of TCP IPv6 segments sent containing the RST flag (Windows only).,-1,system,tcp6 out rst, diff --git a/network/tests/test_windows.py b/network/tests/test_windows.py index 88c448c99ab25..02de9e0ba027d 100644 --- a/network/tests/test_windows.py +++ b/network/tests/test_windows.py @@ -45,6 +45,7 @@ def test_get_tcp_stats_failure(): def test_get_tcp_stats(aggregator): instance = copy.deepcopy(common.INSTANCE) + instance["collect_count_metrics"] = True check_instance = WindowsNetwork('network', {}, [instance]) mock_stats = TCPSTATS( @@ -99,12 +100,24 @@ def test_get_tcp_stats(aggregator): 'system.net.tcp.out_resets': 28, 'system.net.tcp.connections': 30, } + gauge_mets = [ + 'system.net.tcp4.connections', + 'system.net.tcp4.current_established', + 'system.net.tcp6.connections', + 'system.net.tcp6.current_established', + 'system.net.tcp.connections', + 'system.net.tcp.current_established', + ] with mock.patch('datadog_checks.network.check_windows.WindowsNetwork._get_tcp_stats') as mock_get_tcp_stats: mock_get_tcp_stats.return_value = mock_stats # Make _get_tcp_stats return my mock object check_instance.check({}) for name, value in expected_mets.items(): - aggregator.assert_metric(name, value=value) + if name in gauge_mets: + aggregator.assert_metric(name, value=value, metric_type=aggregator.GAUGE) + else: + aggregator.assert_metric(name, value=value, metric_type=aggregator.RATE) + aggregator.assert_metric(name + '.count', value=value, metric_type=aggregator.MONOTONIC_COUNT) def test_check_psutil_no_collect_connection_state(aggregator): diff --git a/nfsstat/CHANGELOG.md b/nfsstat/CHANGELOG.md index e192cf4396a2e..06bdab23623be 100644 --- a/nfsstat/CHANGELOG.md +++ b/nfsstat/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.13.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/nfsstat/datadog_checks/nfsstat/__about__.py b/nfsstat/datadog_checks/nfsstat/__about__.py index 9277530c51434..0e2ebd5e4631b 100644 --- a/nfsstat/datadog_checks/nfsstat/__about__.py +++ b/nfsstat/datadog_checks/nfsstat/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.13.0' +__version__ = '2.0.0' diff --git a/nginx/CHANGELOG.md b/nginx/CHANGELOG.md index ae0a14f71c0b3..609c9dedbb18b 100644 --- a/nginx/CHANGELOG.md +++ b/nginx/CHANGELOG.md @@ -2,6 +2,12 @@ +## 7.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 6.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/nginx/datadog_checks/nginx/__about__.py b/nginx/datadog_checks/nginx/__about__.py index 2207a8889bf5e..3134ece129a2d 100644 --- a/nginx/datadog_checks/nginx/__about__.py +++ b/nginx/datadog_checks/nginx/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '6.3.1' +__version__ = '7.0.0' diff --git a/nginx_ingress_controller/CHANGELOG.md b/nginx_ingress_controller/CHANGELOG.md index 0714ec7197410..56e5f05c1245b 100644 --- a/nginx_ingress_controller/CHANGELOG.md +++ b/nginx_ingress_controller/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.6.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/nginx_ingress_controller/datadog_checks/nginx_ingress_controller/__about__.py b/nginx_ingress_controller/datadog_checks/nginx_ingress_controller/__about__.py index 247c628faaa09..beaee23baf7e1 100644 --- a/nginx_ingress_controller/datadog_checks/nginx_ingress_controller/__about__.py +++ b/nginx_ingress_controller/datadog_checks/nginx_ingress_controller/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.6.1' +__version__ = '3.0.0' diff --git a/nvidia_triton/CHANGELOG.md b/nvidia_triton/CHANGELOG.md index 6ae9bc7552b2a..1a56bd0e2b7f4 100644 --- a/nvidia_triton/CHANGELOG.md +++ b/nvidia_triton/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/nvidia_triton/datadog_checks/nvidia_triton/__about__.py b/nvidia_triton/datadog_checks/nvidia_triton/__about__.py index cbacb6e2d1ad9..2ce3bcb822978 100644 --- a/nvidia_triton/datadog_checks/nvidia_triton/__about__.py +++ b/nvidia_triton/datadog_checks/nvidia_triton/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.2.2' +__version__ = '2.0.0' diff --git a/openldap/CHANGELOG.md b/openldap/CHANGELOG.md index 7f7e6306cd501..256f676af882e 100644 --- a/openldap/CHANGELOG.md +++ b/openldap/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.12.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/openldap/datadog_checks/openldap/__about__.py b/openldap/datadog_checks/openldap/__about__.py index 0bcccfd8cfe20..0e2ebd5e4631b 100644 --- a/openldap/datadog_checks/openldap/__about__.py +++ b/openldap/datadog_checks/openldap/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.12.0' +__version__ = '2.0.0' diff --git a/openmetrics/CHANGELOG.md b/openmetrics/CHANGELOG.md index 94b1a240f057d..3d2016891f6de 100644 --- a/openmetrics/CHANGELOG.md +++ b/openmetrics/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/openmetrics/datadog_checks/openmetrics/__about__.py b/openmetrics/datadog_checks/openmetrics/__about__.py index b0555c6ea864f..b033d7b5bb770 100644 --- a/openmetrics/datadog_checks/openmetrics/__about__.py +++ b/openmetrics/datadog_checks/openmetrics/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.2.2" +__version__ = "5.0.0" diff --git a/openstack/CHANGELOG.md b/openstack/CHANGELOG.md index 086f89df9fb8b..c8171421c6f80 100644 --- a/openstack/CHANGELOG.md +++ b/openstack/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.0.0 / 2024-01-05 / Agent 7.51.0 ***Changed***: diff --git a/openstack/datadog_checks/openstack/__about__.py b/openstack/datadog_checks/openstack/__about__.py index e24c45e124d83..5778c5423a6b0 100644 --- a/openstack/datadog_checks/openstack/__about__.py +++ b/openstack/datadog_checks/openstack/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "2.0.0" +__version__ = "3.0.0" diff --git a/openstack_controller/CHANGELOG.md b/openstack_controller/CHANGELOG.md index ca682790cc3b3..5260a2c84b565 100644 --- a/openstack_controller/CHANGELOG.md +++ b/openstack_controller/CHANGELOG.md @@ -2,6 +2,12 @@ +## 7.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 6.9.0 / 2024-08-09 / Agent 7.57.0 ***Added***: diff --git a/openstack_controller/datadog_checks/openstack_controller/__about__.py b/openstack_controller/datadog_checks/openstack_controller/__about__.py index b11c97a1a64af..3134ece129a2d 100644 --- a/openstack_controller/datadog_checks/openstack_controller/__about__.py +++ b/openstack_controller/datadog_checks/openstack_controller/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '6.9.0' +__version__ = '7.0.0' diff --git a/oracle/CHANGELOG.md b/oracle/CHANGELOG.md index 62b38c5d3650e..c0fd3e6838748 100644 --- a/oracle/CHANGELOG.md +++ b/oracle/CHANGELOG.md @@ -2,6 +2,12 @@ +## 6.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 5.2.0 / 2024-03-22 / Agent 7.53.0 ***Deprecated***: diff --git a/oracle/datadog_checks/oracle/__about__.py b/oracle/datadog_checks/oracle/__about__.py index 22e20d167d7e2..91262416e46c9 100644 --- a/oracle/datadog_checks/oracle/__about__.py +++ b/oracle/datadog_checks/oracle/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "5.2.0" +__version__ = "6.0.0" diff --git a/ossec_security/CHANGELOG.md b/ossec_security/CHANGELOG.md index ac1c6e6d5718a..e57e089ded5c3 100644 --- a/ossec_security/CHANGELOG.md +++ b/ossec_security/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.0 / 2024-08-09 / Agent 7.57.0 ***Added***: diff --git a/ossec_security/datadog_checks/ossec_security/__about__.py b/ossec_security/datadog_checks/ossec_security/__about__.py index acbfd1c866b84..cc393c1dad9ce 100644 --- a/ossec_security/datadog_checks/ossec_security/__about__.py +++ b/ossec_security/datadog_checks/ossec_security/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.0' +__version__ = '2.0.0' diff --git a/pan_firewall/CHANGELOG.md b/pan_firewall/CHANGELOG.md index c22852d727c66..e77473fde7c3e 100644 --- a/pan_firewall/CHANGELOG.md +++ b/pan_firewall/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.2.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/pan_firewall/datadog_checks/pan_firewall/__about__.py b/pan_firewall/datadog_checks/pan_firewall/__about__.py index e08d88c887da5..9c6b2fb79e5ac 100644 --- a/pan_firewall/datadog_checks/pan_firewall/__about__.py +++ b/pan_firewall/datadog_checks/pan_firewall/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.2.0' +__version__ = '2.0.0' diff --git a/pdh_check/CHANGELOG.md b/pdh_check/CHANGELOG.md index 0c42717f1aafd..153077c6e45c1 100644 --- a/pdh_check/CHANGELOG.md +++ b/pdh_check/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/pdh_check/datadog_checks/pdh_check/__about__.py b/pdh_check/datadog_checks/pdh_check/__about__.py index 17d27698b7b85..09adcddf171c4 100644 --- a/pdh_check/datadog_checks/pdh_check/__about__.py +++ b/pdh_check/datadog_checks/pdh_check/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.0' +__version__ = '3.0.0' diff --git a/pgbouncer/CHANGELOG.md b/pgbouncer/CHANGELOG.md index c0fe253250731..761cba029a047 100644 --- a/pgbouncer/CHANGELOG.md +++ b/pgbouncer/CHANGELOG.md @@ -2,6 +2,12 @@ +## 7.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 6.2.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/pgbouncer/datadog_checks/pgbouncer/__about__.py b/pgbouncer/datadog_checks/pgbouncer/__about__.py index e87bde4a20b6d..fa5134955f61c 100644 --- a/pgbouncer/datadog_checks/pgbouncer/__about__.py +++ b/pgbouncer/datadog_checks/pgbouncer/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "6.2.0" +__version__ = "7.0.0" diff --git a/php_fpm/CHANGELOG.md b/php_fpm/CHANGELOG.md index 8439b00c7f9ca..104c51762e147 100644 --- a/php_fpm/CHANGELOG.md +++ b/php_fpm/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/php_fpm/datadog_checks/php_fpm/__about__.py b/php_fpm/datadog_checks/php_fpm/__about__.py index a3b938c41252f..c25988b9e6d8b 100644 --- a/php_fpm/datadog_checks/php_fpm/__about__.py +++ b/php_fpm/datadog_checks/php_fpm/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.1' +__version__ = '4.0.0' diff --git a/ping_federate/CHANGELOG.md b/ping_federate/CHANGELOG.md index 39de991edf2ed..7a04adfd22b1b 100644 --- a/ping_federate/CHANGELOG.md +++ b/ping_federate/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.0 / 2024-08-09 / Agent 7.57.0 ***Added***: diff --git a/ping_federate/datadog_checks/ping_federate/__about__.py b/ping_federate/datadog_checks/ping_federate/__about__.py index acbfd1c866b84..cc393c1dad9ce 100644 --- a/ping_federate/datadog_checks/ping_federate/__about__.py +++ b/ping_federate/datadog_checks/ping_federate/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.0' +__version__ = '2.0.0' diff --git a/postfix/CHANGELOG.md b/postfix/CHANGELOG.md index 6594cc1a1a68e..fe8ff8c87829a 100644 --- a/postfix/CHANGELOG.md +++ b/postfix/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.14.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/postfix/datadog_checks/postfix/__about__.py b/postfix/datadog_checks/postfix/__about__.py index 00fd7647e3e9d..0e2ebd5e4631b 100644 --- a/postfix/datadog_checks/postfix/__about__.py +++ b/postfix/datadog_checks/postfix/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.14.0' +__version__ = '2.0.0' diff --git a/postgres/CHANGELOG.md b/postgres/CHANGELOG.md index 28095ae9012cc..49ffd073386c3 100644 --- a/postgres/CHANGELOG.md +++ b/postgres/CHANGELOG.md @@ -2,6 +2,12 @@ +## 21.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 20.0.0 / 2024-09-05 ***Changed***: diff --git a/postgres/README.md b/postgres/README.md index e6c980196eb22..44f57b2a40d3a 100644 --- a/postgres/README.md +++ b/postgres/README.md @@ -8,6 +8,8 @@ The Postgres integration provides health and performance metrics for your Postgr Enable [Database Monitoring][28] (DBM) for enhanced insights into query performance and database health. In addition to the standard integration, Datadog DBM provides query-level metrics, live and historical query snapshots, wait event analysis, database load, query explain plans, and blocking query insights. +Postgres versions 9.6-16 are supported. + ## Setup
This page describes the standard Postgres Agent integration. If you are looking for the Database Monitoring product for Postgres, see Datadog Database Monitoring.
diff --git a/postgres/assets/configuration/spec.yaml b/postgres/assets/configuration/spec.yaml index 2d87d9ff9e4a6..da9d986499e43 100644 --- a/postgres/assets/configuration/spec.yaml +++ b/postgres/assets/configuration/spec.yaml @@ -945,6 +945,13 @@ files: type: boolean example: false display_default: false + - name: keep_json_path + description: | + Set to `true` to keep JSON path expressions (e.g. `data->'key'`) in your normalized SQL statements. + value: + type: boolean + example: false + display_default: false - name: log_unobfuscated_queries hidden: true description: | diff --git a/postgres/changelog.d/18726.added b/postgres/changelog.d/18726.added new file mode 100644 index 0000000000000..b6638865f2c9f --- /dev/null +++ b/postgres/changelog.d/18726.added @@ -0,0 +1 @@ +Add `keep_json_path` to obfuscator_options to allow users to control whether JSON paths following JSON operators in SQL statements should be obfuscated. By default, these paths are treated as literals and are obfuscated to ?. diff --git a/postgres/changelog.d/18754.added b/postgres/changelog.d/18754.added new file mode 100644 index 0000000000000..30a7029f7f2ae --- /dev/null +++ b/postgres/changelog.d/18754.added @@ -0,0 +1 @@ +Adds additional debug logging to help with schema collection investigations diff --git a/postgres/changelog.d/18758.added b/postgres/changelog.d/18758.added new file mode 100644 index 0000000000000..426f18362cb36 --- /dev/null +++ b/postgres/changelog.d/18758.added @@ -0,0 +1 @@ +Added Postgres cross-org telemetry metrics. diff --git a/postgres/changelog.d/18762.fixed b/postgres/changelog.d/18762.fixed new file mode 100644 index 0000000000000..010efda46ccaf --- /dev/null +++ b/postgres/changelog.d/18762.fixed @@ -0,0 +1 @@ +Parse each row of pg_stat_activity separately inside a try/catch to avoid crashing on bad UTF8 data. diff --git a/postgres/datadog_checks/postgres/__about__.py b/postgres/datadog_checks/postgres/__about__.py index 60a7edca29985..3e3a2aea9c149 100644 --- a/postgres/datadog_checks/postgres/__about__.py +++ b/postgres/datadog_checks/postgres/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "20.0.0" +__version__ = "21.0.0" diff --git a/postgres/datadog_checks/postgres/config.py b/postgres/datadog_checks/postgres/config.py index 77a9849fcb123..effc8ecce3b2a 100644 --- a/postgres/datadog_checks/postgres/config.py +++ b/postgres/datadog_checks/postgres/config.py @@ -157,6 +157,7 @@ def __init__(self, instance, init_config, check): 'keep_identifier_quotation': is_affirmative( obfuscator_options_config.get('keep_identifier_quotation', False) ), + 'keep_json_path': is_affirmative(obfuscator_options_config.get('keep_json_path', False)), } self.log_unobfuscated_queries = is_affirmative(instance.get('log_unobfuscated_queries', False)) self.log_unobfuscated_plans = is_affirmative(instance.get('log_unobfuscated_plans', False)) diff --git a/postgres/datadog_checks/postgres/config_models/instance.py b/postgres/datadog_checks/postgres/config_models/instance.py index d2c9858ceb1a5..f78d9d0ae3a23 100644 --- a/postgres/datadog_checks/postgres/config_models/instance.py +++ b/postgres/datadog_checks/postgres/config_models/instance.py @@ -150,6 +150,7 @@ class ObfuscatorOptions(BaseModel): keep_boolean: Optional[bool] = None keep_dollar_quoted_func: Optional[bool] = None keep_identifier_quotation: Optional[bool] = None + keep_json_path: Optional[bool] = None keep_null: Optional[bool] = None keep_positional_parameter: Optional[bool] = None keep_sql_alias: Optional[bool] = None diff --git a/postgres/datadog_checks/postgres/data/conf.yaml.example b/postgres/datadog_checks/postgres/data/conf.yaml.example index c2c4f863f3a5f..dd8462f836bd1 100644 --- a/postgres/datadog_checks/postgres/data/conf.yaml.example +++ b/postgres/datadog_checks/postgres/data/conf.yaml.example @@ -822,6 +822,11 @@ instances: # # keep_identifier_quotation: false + ## @param keep_json_path - boolean - optional - default: false + ## Set to `true` to keep JSON path expressions (e.g. `data->'key'`) in your normalized SQL statements. + # + # keep_json_path: false + ## @param propagate_agent_tags - boolean - optional - default: false ## Set to `true` to propagate the tags from `datadog.yaml` and the agent host tags to the check. ## When set to `true`, the tags from the agent host are added to the check's tags for all instances. diff --git a/postgres/datadog_checks/postgres/metadata.py b/postgres/datadog_checks/postgres/metadata.py index 3c870e86a435d..8c859f8d4b01d 100644 --- a/postgres/datadog_checks/postgres/metadata.py +++ b/postgres/datadog_checks/postgres/metadata.py @@ -297,6 +297,8 @@ def report_postgres_metadata(self): # Tuned from experiments on staging, we may want to make this dynamic based on schema size in the future chunk_size = 50 + total_tables = 0 + start_time = time.time() for database in schema_metadata: dbname = database["name"] @@ -310,6 +312,14 @@ def report_postgres_metadata(self): continue tables = self._query_tables_for_schema(cursor, schema["id"], dbname) + self._log.debug( + "Tables found for schema '{schema}' in database '{database}':" + "{tables}".format( + schema=database["schemas"], + database=dbname, + tables=[table["name"] for table in tables], + ) + ) table_chunks = list(get_list_chunks(tables, chunk_size)) buffer_column_count = 0 @@ -324,11 +334,31 @@ def report_postgres_metadata(self): if buffer_column_count >= 100_000: self._flush_schema(base_event, database, schema, tables_buffer) + total_tables += len(tables_buffer) tables_buffer = [] buffer_column_count = 0 if len(tables_buffer) > 0: self._flush_schema(base_event, database, schema, tables_buffer) + total_tables += len(tables_buffer) + elapsed_ms = (time.time() - start_time) * 1000 + self._check.histogram( + "dd.postgres.schema.time", + elapsed_ms, + tags=self._check.tags, + hostname=self._check.resolved_hostname, + raw=True, + ) + self._check.gauge( + "dd.postgres.schema.tables_count", + total_tables, + tags=self._check.tags, + hostname=self._check.resolved_hostname, + raw=True, + ) + datadog_agent.emit_agent_telemetry("postgres", "schema_tables_elapsed_ms", elapsed_ms, "gauge") + datadog_agent.emit_agent_telemetry("postgres", "schema_tables_count", total_tables, "gauge") + self._is_schemas_collection_in_progress = False def _should_collect_metadata(self, name, metadata_type): @@ -415,6 +445,8 @@ def _query_schema_information(self, cursor: psycopg2.extensions.cursor, dbname: schemas = [] for row in rows: schemas.append({"id": str(row["id"]), "name": row["name"], "owner": row["owner"]}) + + self._log.debug("Schemas found for database '{database}': [{schemas}]".format(database=dbname, schemas=rows)) return schemas def _get_table_info(self, cursor, dbname, schema_id): @@ -437,6 +469,13 @@ def _get_table_info(self, cursor, dbname, schema_id): if len(table_info) <= limit: return table_info + self._log.debug( + "{table_count} tables found but max_tables is set to {max_tables}." + "{missing_count} tables will be missing from this collection".format( + table_count=len(table_info), max_tables=limit, missing_count=len(table_info) - limit + ) + ) + if not self._config.relations: self._check.log.warning( "Number of tables exceeds limit of %d set by max_tables but " diff --git a/postgres/datadog_checks/postgres/postgres.py b/postgres/datadog_checks/postgres/postgres.py index 03d77018b93ee..65aeb4d86fcda 100644 --- a/postgres/datadog_checks/postgres/postgres.py +++ b/postgres/datadog_checks/postgres/postgres.py @@ -646,6 +646,8 @@ def _collect_metric_autodiscovery(self, instance_tags, scopes, scope_type): hostname=self.resolved_hostname, raw=True, ) + telemetry_metric = scope_type.replace("_", "", 1) # remove the first underscore to match telemetry convention + datadog_agent.emit_agent_telemetry("postgres", f"{telemetry_metric}_ms", elapsed_ms, "histogram") if elapsed_ms > self._config.min_collection_interval * 1000: self.record_warning( DatabaseConfigurationError.autodiscovered_metrics_exceeds_collection_interval, diff --git a/postgres/datadog_checks/postgres/statement_samples.py b/postgres/datadog_checks/postgres/statement_samples.py index 0a93cad3b5616..3ec1f07fd64d0 100644 --- a/postgres/datadog_checks/postgres/statement_samples.py +++ b/postgres/datadog_checks/postgres/statement_samples.py @@ -268,7 +268,17 @@ def _get_new_pg_stat_activity(self, available_activity_columns): with conn.cursor(cursor_factory=CommenterDictCursor) as cursor: self._log.debug("Running query [%s] %s", query, params) cursor.execute(query, params) - rows = cursor.fetchall() + rows = [] + while True: + try: + row = cursor.fetchone() + if row is None: + break + rows.append(row) + except UnicodeDecodeError: + self._log.debug("Invalid unicode in row from pg_stat_activity") + except: + self._log.warning("Unknown error fetching row from pg_stat_activity") self._report_check_hist_metrics(start_time, len(rows), "get_new_pg_stat_activity") self._log.debug("Loaded %s rows from %s", len(rows), self._config.pg_stat_activity_view) @@ -424,6 +434,18 @@ def _report_check_hist_metrics(self, start_time, row_len, method_name): hostname=self._check.resolved_hostname, raw=True, ) + datadog_agent.emit_agent_telemetry( + "postgres", + f"{method_name}_ms", + (time.time() - start_time) * 1000, + "histogram", + ) + datadog_agent.emit_agent_telemetry( + "postgres", + f"{method_name}_count", + row_len, + "histogram", + ) def run_job(self): # do not emit any dd.internal metrics for DBM specific check code @@ -468,6 +490,13 @@ def _collect_statement_samples(self): tags=self.tags, raw=True, ) + datadog_agent.emit_agent_telemetry( + "postgres", + "collect_activity_snapshot_ms", + (time.time() - start_time) * 1000, + "histogram", + ) + elapsed_ms = (time.time() - start_time) * 1000 self._check.histogram( "dd.postgres.collect_statement_samples.time", @@ -504,6 +533,18 @@ def _collect_statement_samples(self): hostname=self._check.resolved_hostname, raw=True, ) + datadog_agent.emit_agent_telemetry( + "postgres", + "collect_statement_samples_ms", + elapsed_ms, + "histogram", + ) + datadog_agent.emit_agent_telemetry( + "postgres", + "collect_statement_samples_count", + submitted_count, + "gauge", + ) @staticmethod def _to_active_session(row, track_activity_query_size): diff --git a/powerdns_recursor/CHANGELOG.md b/powerdns_recursor/CHANGELOG.md index 480424bc9ffd5..d18214510d8cb 100644 --- a/powerdns_recursor/CHANGELOG.md +++ b/powerdns_recursor/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/powerdns_recursor/datadog_checks/powerdns_recursor/__about__.py b/powerdns_recursor/datadog_checks/powerdns_recursor/__about__.py index 35536e04fb1a9..5778c5423a6b0 100644 --- a/powerdns_recursor/datadog_checks/powerdns_recursor/__about__.py +++ b/powerdns_recursor/datadog_checks/powerdns_recursor/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "2.5.1" +__version__ = "3.0.0" diff --git a/presto/CHANGELOG.md b/presto/CHANGELOG.md index 496192331f4ea..4e705df3608b8 100644 --- a/presto/CHANGELOG.md +++ b/presto/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.8.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/presto/datadog_checks/presto/__about__.py b/presto/datadog_checks/presto/__about__.py index 3ad7cca18a0ee..f046338059ddf 100644 --- a/presto/datadog_checks/presto/__about__.py +++ b/presto/datadog_checks/presto/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.8.0' +__version__ = '3.0.0' diff --git a/process/CHANGELOG.md b/process/CHANGELOG.md index 82c3ba01e0cbb..a4ae9cd77465d 100644 --- a/process/CHANGELOG.md +++ b/process/CHANGELOG.md @@ -2,6 +2,16 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Upgrade psutil to 6.0.0 to fix performance issues addressed ([#18688](https://github.com/DataDog/integrations-core/pull/18688)) + ## 3.5.0 / 2024-09-05 ***Added***: diff --git a/process/changelog.d/18688.added b/process/changelog.d/18688.added deleted file mode 100644 index 30f2555bc26eb..0000000000000 --- a/process/changelog.d/18688.added +++ /dev/null @@ -1 +0,0 @@ -Upgrade psutil to 6.0.0 to fix performance issues addressed \ No newline at end of file diff --git a/process/datadog_checks/process/__about__.py b/process/datadog_checks/process/__about__.py index 9408b91db984c..c25988b9e6d8b 100644 --- a/process/datadog_checks/process/__about__.py +++ b/process/datadog_checks/process/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.5.0' +__version__ = '4.0.0' diff --git a/prometheus/CHANGELOG.md b/prometheus/CHANGELOG.md index 078ee30f5d3ef..d819e189ce1ae 100644 --- a/prometheus/CHANGELOG.md +++ b/prometheus/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.6.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/prometheus/datadog_checks/prometheus/__about__.py b/prometheus/datadog_checks/prometheus/__about__.py index c5e67972722c8..f81a9a356ff96 100644 --- a/prometheus/datadog_checks/prometheus/__about__.py +++ b/prometheus/datadog_checks/prometheus/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "3.6.0" +__version__ = "4.0.0" diff --git a/proxysql/CHANGELOG.md b/proxysql/CHANGELOG.md index 78aa91647ea05..f5a61072e6cd9 100644 --- a/proxysql/CHANGELOG.md +++ b/proxysql/CHANGELOG.md @@ -2,6 +2,12 @@ +## 6.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 5.1.1 / 2024-06-11 / Agent 7.54.1 ***Fixed***: diff --git a/proxysql/datadog_checks/proxysql/__about__.py b/proxysql/datadog_checks/proxysql/__about__.py index 906f7c0560a28..ebf0b902cce6b 100644 --- a/proxysql/datadog_checks/proxysql/__about__.py +++ b/proxysql/datadog_checks/proxysql/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '5.1.1' +__version__ = '6.0.0' diff --git a/pulsar/CHANGELOG.md b/pulsar/CHANGELOG.md index 66948396dd25a..38a0979561e25 100644 --- a/pulsar/CHANGELOG.md +++ b/pulsar/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/pulsar/datadog_checks/pulsar/__about__.py b/pulsar/datadog_checks/pulsar/__about__.py index faa7c19604967..c1405a3ef0291 100644 --- a/pulsar/datadog_checks/pulsar/__about__.py +++ b/pulsar/datadog_checks/pulsar/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.2' +__version__ = '3.0.0' diff --git a/rabbitmq/CHANGELOG.md b/rabbitmq/CHANGELOG.md index 9fbaa8646e4ed..7c79e8b896e43 100644 --- a/rabbitmq/CHANGELOG.md +++ b/rabbitmq/CHANGELOG.md @@ -2,6 +2,12 @@ +## 6.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 5.3.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/rabbitmq/datadog_checks/rabbitmq/__about__.py b/rabbitmq/datadog_checks/rabbitmq/__about__.py index 27d82e6ca6554..cd0a90de5b070 100644 --- a/rabbitmq/datadog_checks/rabbitmq/__about__.py +++ b/rabbitmq/datadog_checks/rabbitmq/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '5.3.2' +__version__ = '6.0.0' diff --git a/ray/CHANGELOG.md b/ray/CHANGELOG.md index 4b650b6d1d0f5..af8ea9f09f2e1 100644 --- a/ray/CHANGELOG.md +++ b/ray/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/ray/datadog_checks/ray/__about__.py b/ray/datadog_checks/ray/__about__.py index cbacb6e2d1ad9..2ce3bcb822978 100644 --- a/ray/datadog_checks/ray/__about__.py +++ b/ray/datadog_checks/ray/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.2.2' +__version__ = '2.0.0' diff --git a/redisdb/CHANGELOG.md b/redisdb/CHANGELOG.md index f2c1c589c6d79..79a4d84bde092 100644 --- a/redisdb/CHANGELOG.md +++ b/redisdb/CHANGELOG.md @@ -2,6 +2,12 @@ +## 6.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 5.7.0 / 2024-08-09 / Agent 7.57.0 ***Added***: diff --git a/redisdb/datadog_checks/redisdb/__about__.py b/redisdb/datadog_checks/redisdb/__about__.py index 48a2f25b54ca0..91262416e46c9 100644 --- a/redisdb/datadog_checks/redisdb/__about__.py +++ b/redisdb/datadog_checks/redisdb/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "5.7.0" +__version__ = "6.0.0" diff --git a/requirements-agent-release.txt b/requirements-agent-release.txt index e8ebbe8ad06f3..85052975e4984 100644 --- a/requirements-agent-release.txt +++ b/requirements-agent-release.txt @@ -1,201 +1,206 @@ # DO NOT PASS THIS TO PIP DIRECTLY # THIS FILE IS AUTO-GENERATED, DO NOT EDIT BY HAND --no-index -datadog-active-directory==2.1.1; sys_platform == 'win32' -datadog-activemq-xml==3.2.1 -datadog-activemq==3.1.0 -datadog-aerospike==2.2.2; sys_platform == 'linux2' -datadog-airflow==5.0.1 -datadog-amazon-msk==4.11.0 -datadog-ambari==4.2.1; sys_platform != 'win32' -datadog-apache==4.5.1 -datadog-arangodb==2.2.2 -datadog-argo-rollouts==1.0.2 -datadog-argo-workflows==1.0.2 -datadog-argocd==2.4.3 -datadog-aspdotnet==2.1.1; sys_platform == 'win32' -datadog-avi-vantage==4.2.2 -datadog-aws-neuron==1.0.0 -datadog-azure-iot-edge==4.2.1 -datadog-boundary==2.2.3 -datadog-btrfs==2.4.0; sys_platform != 'win32' -datadog-cacti==2.1.1; sys_platform == 'linux2' -datadog-calico==2.2.2 -datadog-cassandra-nodetool==1.13.0 -datadog-cassandra==1.18.0 -datadog-ceph==2.10.0; sys_platform != 'win32' -datadog-cert-manager==4.1.2 +datadog-active-directory==3.0.0; sys_platform == 'win32' +datadog-activemq-xml==4.0.0 +datadog-activemq==4.0.0 +datadog-aerospike==3.0.0; sys_platform == 'linux2' +datadog-airflow==6.0.0 +datadog-amazon-msk==5.0.0 +datadog-ambari==5.0.0; sys_platform != 'win32' +datadog-apache==5.0.0 +datadog-appgate-sdp==1.0.0; sys_platform != 'win32' +datadog-arangodb==3.0.0 +datadog-argo-rollouts==2.0.0 +datadog-argo-workflows==2.0.0 +datadog-argocd==3.0.0 +datadog-aspdotnet==3.0.0; sys_platform == 'win32' +datadog-avi-vantage==5.0.0 +datadog-aws-neuron==2.0.0 +datadog-azure-iot-edge==5.0.0 +datadog-boundary==3.0.0 +datadog-btrfs==3.0.0; sys_platform != 'win32' +datadog-cacti==3.0.0; sys_platform == 'linux2' +datadog-calico==3.0.0 +datadog-cassandra-nodetool==2.0.0 +datadog-cassandra==2.0.0 +datadog-ceph==3.0.0; sys_platform != 'win32' +datadog-cert-manager==5.0.0 datadog-checkpoint-quantum-firewall==1.0.0 datadog-checks-base==37.0.0 -datadog-checks-dependency-provider==1.4.0 -datadog-checks-downloader==4.7.0 -datadog-cilium==3.6.0 -datadog-cisco-aci==2.12.0 +datadog-checks-dependency-provider==2.0.0 +datadog-checks-downloader==5.0.0 +datadog-cilium==4.0.0 +datadog-cisco-aci==3.0.0 datadog-cisco-secure-firewall==1.0.0 -datadog-citrix-hypervisor==3.2.1 -datadog-clickhouse==3.7.0 -datadog-cloud-foundry-api==3.3.1 -datadog-cloudera==2.2.0 -datadog-cockroachdb==3.3.2 -datadog-confluent-platform==1.10.2 -datadog-consul==2.6.1 -datadog-coredns==3.2.3; sys_platform == 'linux2' -datadog-couch==6.2.1 -datadog-couchbase==3.2.1 -datadog-crio==2.6.1 -datadog-datadog-cluster-agent==3.2.0 -datadog-dcgm==2.3.2 -datadog-directory==2.1.1 -datadog-disk==5.4.0 -datadog-dns-check==3.3.0 -datadog-dotnetclr==2.1.1; sys_platform == 'win32' -datadog-druid==2.5.1 -datadog-ecs-fargate==4.3.1 -datadog-eks-fargate==4.2.1 -datadog-elastic==6.3.1 -datadog-envoy==3.6.0 -datadog-esxi==1.2.0 -datadog-etcd==6.2.2 -datadog-exchange-server==2.1.1; sys_platform == 'win32' -datadog-external-dns==3.2.1 -datadog-flink==1.5.0 -datadog-fluentd==3.2.1 -datadog-fluxcd==1.2.2 -datadog-fly-io==1.0.1 -datadog-foundationdb==1.4.0 -datadog-gearmand==3.1.0; sys_platform != 'win32' -datadog-gitlab-runner==4.2.1 -datadog-gitlab==7.3.2 -datadog-glusterfs==1.8.0; sys_platform == 'linux2' -datadog-go-expvar==2.5.1 -datadog-gunicorn==2.8.0; sys_platform != 'win32' -datadog-haproxy==5.2.2 -datadog-harbor==3.2.2 -datadog-hazelcast==4.1.0 -datadog-hdfs-datanode==4.2.1; sys_platform != 'win32' -datadog-hdfs-namenode==4.2.1; sys_platform != 'win32' -datadog-hive==1.10.0 -datadog-hivemq==1.8.0 -datadog-http-check==9.9.0 -datadog-hudi==2.3.0 -datadog-hyperv==1.11.1; sys_platform == 'win32' -datadog-ibm-ace==2.2.2 -datadog-ibm-db2==2.2.0 -datadog-ibm-i==2.2.0; sys_platform != 'win32' -datadog-ibm-mq==6.4.0 -datadog-ibm-was==3.3.2 -datadog-ignite==2.4.0 -datadog-iis==3.1.1; sys_platform == 'win32' -datadog-impala==2.2.2 -datadog-istio==6.1.2 -datadog-jboss-wildfly==2.2.0 -datadog-journald==1.2.0 -datadog-kafka-consumer==4.6.1 -datadog-kafka==2.16.0 -datadog-karpenter==1.6.0 -datadog-kong==3.2.2 -datadog-kube-apiserver-metrics==4.3.1 -datadog-kube-controller-manager==5.1.1 -datadog-kube-dns==4.4.1 -datadog-kube-metrics-server==3.3.1 -datadog-kube-proxy==6.3.1 -datadog-kube-scheduler==4.10.1 -datadog-kubelet==7.13.2 -datadog-kubernetes-cluster-autoscaler==1.0.1 -datadog-kubernetes-state==8.1.1 -datadog-kyototycoon==2.5.1 -datadog-kyverno==1.0.2 -datadog-lighttpd==3.5.1 -datadog-linkerd==4.2.2 -datadog-linux-proc-extras==2.5.0; sys_platform == 'linux2' -datadog-mapr==1.11.0; sys_platform == 'linux2' -datadog-mapreduce==4.2.1 -datadog-marathon==2.3.1; sys_platform != 'win32' -datadog-marklogic==4.2.1 -datadog-mcache==4.1.0; sys_platform != 'win32' -datadog-mesos-master==3.3.1; sys_platform != 'win32' -datadog-mesos-slave==3.3.1; sys_platform != 'win32' -datadog-mongo==6.11.0 -datadog-mysql==12.8.0 -datadog-nagios==1.13.0 -datadog-network==3.4.0 -datadog-nfsstat==1.13.0; sys_platform == 'linux2' -datadog-nginx-ingress-controller==2.6.1 -datadog-nginx==6.3.1 -datadog-nvidia-triton==1.2.2 -datadog-openldap==1.12.0 -datadog-openmetrics==4.2.2 -datadog-openstack-controller==6.9.0 -datadog-openstack==2.0.0 -datadog-oracle==5.2.0 -datadog-ossec-security==1.0.0 +datadog-citrix-hypervisor==4.0.0 +datadog-clickhouse==4.0.0 +datadog-cloud-foundry-api==4.0.0 +datadog-cloudera==3.0.0 +datadog-cockroachdb==4.0.0 +datadog-confluent-platform==2.0.0 +datadog-consul==3.0.0 +datadog-coredns==4.0.0; sys_platform == 'linux2' +datadog-couch==7.0.0 +datadog-couchbase==4.0.0 +datadog-crio==3.0.0 +datadog-datadog-cluster-agent==4.0.0 +datadog-dcgm==3.0.0 +datadog-directory==3.0.0 +datadog-disk==6.0.0 +datadog-dns-check==4.0.0 +datadog-dotnetclr==3.0.0; sys_platform == 'win32' +datadog-druid==3.0.0 +datadog-ecs-fargate==5.0.0 +datadog-eks-fargate==5.0.0 +datadog-elastic==7.0.0 +datadog-envoy==4.0.0 +datadog-esxi==2.0.0 +datadog-etcd==7.0.0 +datadog-exchange-server==3.0.0; sys_platform == 'win32' +datadog-external-dns==4.0.0 +datadog-flink==2.0.0 +datadog-fluentd==4.0.0 +datadog-fluxcd==2.0.0 +datadog-fly-io==2.0.0 +datadog-foundationdb==2.0.0 +datadog-gearmand==4.0.0; sys_platform != 'win32' +datadog-gitlab-runner==5.0.0 +datadog-gitlab==8.0.0 +datadog-glusterfs==2.0.0; sys_platform == 'linux2' +datadog-go-expvar==3.0.0 +datadog-gunicorn==3.0.0; sys_platform != 'win32' +datadog-haproxy==6.0.0 +datadog-harbor==4.0.0 +datadog-hazelcast==5.0.0 +datadog-hdfs-datanode==5.0.0; sys_platform != 'win32' +datadog-hdfs-namenode==5.0.0; sys_platform != 'win32' +datadog-hive==2.0.0 +datadog-hivemq==2.0.0 +datadog-http-check==10.0.0 +datadog-hudi==3.0.0 +datadog-hyperv==2.0.0; sys_platform == 'win32' +datadog-ibm-ace==3.0.0 +datadog-ibm-db2==3.0.0 +datadog-ibm-i==3.0.0; sys_platform != 'win32' +datadog-ibm-mq==7.0.0 +datadog-ibm-was==4.0.0 +datadog-ignite==3.0.0 +datadog-iis==4.0.0; sys_platform == 'win32' +datadog-impala==3.0.0 +datadog-istio==7.0.0 +datadog-jboss-wildfly==3.0.0 +datadog-journald==2.0.0 +datadog-kafka-consumer==5.0.0 +datadog-kafka==3.0.0 +datadog-karpenter==2.0.0 +datadog-kong==4.0.0 +datadog-kube-apiserver-metrics==5.0.0 +datadog-kube-controller-manager==6.0.0 +datadog-kube-dns==5.0.0 +datadog-kube-metrics-server==4.0.0 +datadog-kube-proxy==7.0.0 +datadog-kube-scheduler==5.0.0 +datadog-kubeflow==1.0.0 +datadog-kubelet==8.0.0 +datadog-kubernetes-cluster-autoscaler==2.0.0 +datadog-kubernetes-state==9.0.0 +datadog-kubevirt-api==1.0.0 +datadog-kubevirt-controller==1.0.0 +datadog-kubevirt-handler==1.0.0 +datadog-kyototycoon==3.0.0 +datadog-kyverno==2.0.0 +datadog-lighttpd==4.0.0 +datadog-linkerd==5.0.0 +datadog-linux-proc-extras==3.0.0; sys_platform == 'linux2' +datadog-mapr==2.0.0; sys_platform == 'linux2' +datadog-mapreduce==5.0.0 +datadog-marathon==3.0.0; sys_platform != 'win32' +datadog-marklogic==5.0.0 +datadog-mcache==5.0.0; sys_platform != 'win32' +datadog-mesos-master==4.0.0; sys_platform != 'win32' +datadog-mesos-slave==4.0.0; sys_platform != 'win32' +datadog-mongo==7.0.0 +datadog-mysql==13.0.0 +datadog-nagios==2.0.0 +datadog-network==4.1.0 +datadog-nfsstat==2.0.0; sys_platform == 'linux2' +datadog-nginx-ingress-controller==3.0.0 +datadog-nginx==7.0.0 +datadog-nvidia-triton==2.0.0 +datadog-openldap==2.0.0 +datadog-openmetrics==5.0.0 +datadog-openstack-controller==7.0.0 +datadog-openstack==3.0.0 +datadog-oracle==6.0.0 +datadog-ossec-security==2.0.0 datadog-palo-alto-panorama==1.0.0 -datadog-pan-firewall==1.2.0 -datadog-pdh-check==2.1.0; sys_platform == 'win32' -datadog-pgbouncer==6.2.0; sys_platform != 'win32' -datadog-php-fpm==3.3.1 -datadog-ping-federate==1.0.0 -datadog-postfix==1.14.0; sys_platform != 'win32' -datadog-postgres==20.0.0 -datadog-powerdns-recursor==2.5.1 -datadog-presto==2.8.0 -datadog-process==3.5.0 -datadog-prometheus==3.6.0 -datadog-proxysql==5.1.1 -datadog-pulsar==2.2.2 -datadog-rabbitmq==5.3.2 -datadog-ray==1.2.2 -datadog-redisdb==5.7.0 -datadog-rethinkdb==3.1.0 -datadog-riak==3.5.1 -datadog-riakcs==2.12.0 -datadog-sap-hana==3.3.0 -datadog-scylla==2.7.2 -datadog-sidekiq==1.4.0 -datadog-silk==2.2.1 -datadog-singlestore==2.2.1 -datadog-snmp==7.5.0 -datadog-snowflake==5.9.0 -datadog-solr==1.13.0 -datadog-sonarqube==3.2.2 -datadog-spark==4.3.1 -datadog-sqlserver==17.5.3 -datadog-squid==2.5.1 -datadog-ssh-check==2.10.0 -datadog-statsd==1.12.0 -datadog-strimzi==2.2.2 -datadog-supervisord==2.6.0 -datadog-suricata==1.0.0 -datadog-system-core==2.5.0 -datadog-system-swap==1.19.0 -datadog-tcp-check==4.9.0 -datadog-teamcity==4.3.1 -datadog-tekton==1.0.2 -datadog-teleport==1.1.0 -datadog-temporal==2.3.0 -datadog-tenable==1.5.0 -datadog-teradata==2.2.1; sys_platform != 'darwin' -datadog-tibco-ems==1.0.0 -datadog-tls==2.20.0 +datadog-pan-firewall==2.0.0 +datadog-pdh-check==3.0.0; sys_platform == 'win32' +datadog-pgbouncer==7.0.0; sys_platform != 'win32' +datadog-php-fpm==4.0.0 +datadog-ping-federate==2.0.0 +datadog-postfix==2.0.0; sys_platform != 'win32' +datadog-postgres==21.0.0 +datadog-powerdns-recursor==3.0.0 +datadog-presto==3.0.0 +datadog-process==4.0.0 +datadog-prometheus==4.0.0 +datadog-proxysql==6.0.0 +datadog-pulsar==3.0.0 +datadog-rabbitmq==6.0.0 +datadog-ray==2.0.0 +datadog-redisdb==6.0.0 +datadog-rethinkdb==4.0.0 +datadog-riak==4.0.0 +datadog-riakcs==3.0.0 +datadog-sap-hana==4.0.0 +datadog-scylla==3.0.0 +datadog-sidekiq==2.0.0 +datadog-silk==3.0.0 +datadog-singlestore==3.0.0 +datadog-snmp==8.0.0 +datadog-snowflake==6.0.0 +datadog-solr==2.0.0 +datadog-sonarqube==4.0.0 +datadog-spark==5.0.0 +datadog-sqlserver==18.0.0 +datadog-squid==3.0.0 +datadog-ssh-check==3.0.0 +datadog-statsd==2.0.0 +datadog-strimzi==3.0.0 +datadog-supervisord==3.0.0 +datadog-suricata==2.0.0 +datadog-system-core==3.0.0 +datadog-system-swap==2.0.0 +datadog-tcp-check==5.0.0 +datadog-teamcity==5.0.0 +datadog-tekton==2.0.0 +datadog-teleport==2.0.0 +datadog-temporal==3.0.0 +datadog-tenable==2.0.0 +datadog-teradata==3.0.0; sys_platform != 'darwin' +datadog-tibco-ems==2.0.0 +datadog-tls==3.0.0 datadog-tokumx==3.2.0 -datadog-tomcat==2.0.0 -datadog-torchserve==2.2.2 -datadog-traefik-mesh==1.0.1 -datadog-traffic-server==2.2.1 -datadog-twemproxy==1.15.0 -datadog-twistlock==3.6.1 -datadog-varnish==2.1.0 -datadog-vault==4.2.1 -datadog-vertica==4.6.0 -datadog-vllm==1.0.0 -datadog-voltdb==3.2.1 +datadog-tomcat==3.0.0 +datadog-torchserve==3.0.0 +datadog-traefik-mesh==2.0.0 +datadog-traffic-server==3.0.0 +datadog-twemproxy==2.0.0 +datadog-twistlock==4.0.0 +datadog-varnish==3.0.0 +datadog-vault==5.0.0 +datadog-vertica==5.0.0 +datadog-vllm==2.0.0 +datadog-voltdb==4.0.0 datadog-vsphere==8.0.0 -datadog-weaviate==2.3.3 -datadog-weblogic==1.3.0 -datadog-win32-event-log==3.3.0; sys_platform == 'win32' -datadog-windows-performance-counters==2.1.1; sys_platform == 'win32' -datadog-windows-service==4.9.1; sys_platform == 'win32' -datadog-wmi-check==1.18.0; sys_platform == 'win32' -datadog-yarn==5.3.1 +datadog-weaviate==3.0.0 +datadog-weblogic==2.0.0 +datadog-win32-event-log==4.0.0; sys_platform == 'win32' +datadog-windows-performance-counters==3.0.0; sys_platform == 'win32' +datadog-windows-service==5.0.0; sys_platform == 'win32' +datadog-wmi-check==2.0.0; sys_platform == 'win32' +datadog-yarn==6.0.0 datadog-zeek==1.0.0; sys_platform != 'win32' -datadog-zk==4.5.0; sys_platform != 'win32' +datadog-zk==5.0.0; sys_platform != 'win32' diff --git a/rethinkdb/CHANGELOG.md b/rethinkdb/CHANGELOG.md index 2aa54e46a10b6..cef9e6a1f3525 100644 --- a/rethinkdb/CHANGELOG.md +++ b/rethinkdb/CHANGELOG.md @@ -2,6 +2,16 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Bump RethinkDB version for py3.12 E2E tests ([#18636](https://github.com/DataDog/integrations-core/pull/18636)) + ## 3.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/rethinkdb/changelog.d/18636.added b/rethinkdb/changelog.d/18636.added deleted file mode 100644 index 3499902d53938..0000000000000 --- a/rethinkdb/changelog.d/18636.added +++ /dev/null @@ -1 +0,0 @@ -Bump RethinkDB version for py3.12 E2E tests \ No newline at end of file diff --git a/rethinkdb/datadog_checks/rethinkdb/__about__.py b/rethinkdb/datadog_checks/rethinkdb/__about__.py index 083108faeecf1..bcf02753eab69 100644 --- a/rethinkdb/datadog_checks/rethinkdb/__about__.py +++ b/rethinkdb/datadog_checks/rethinkdb/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.1.0' +__version__ = '4.0.0' diff --git a/riak/CHANGELOG.md b/riak/CHANGELOG.md index fd386528723f1..d764208c5bc24 100644 --- a/riak/CHANGELOG.md +++ b/riak/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/riak/datadog_checks/riak/__about__.py b/riak/datadog_checks/riak/__about__.py index 5502f359afa10..f81a9a356ff96 100644 --- a/riak/datadog_checks/riak/__about__.py +++ b/riak/datadog_checks/riak/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "3.5.1" +__version__ = "4.0.0" diff --git a/riakcs/CHANGELOG.md b/riakcs/CHANGELOG.md index 300abfd44baf6..22fc2429d134d 100644 --- a/riakcs/CHANGELOG.md +++ b/riakcs/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.12.0 / 2024-09-05 ***Added***: diff --git a/riakcs/datadog_checks/riakcs/__about__.py b/riakcs/datadog_checks/riakcs/__about__.py index d212bc6c961db..09adcddf171c4 100644 --- a/riakcs/datadog_checks/riakcs/__about__.py +++ b/riakcs/datadog_checks/riakcs/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.12.0' +__version__ = '3.0.0' diff --git a/sap_hana/CHANGELOG.md b/sap_hana/CHANGELOG.md index 1c2851f610339..551587c8027c8 100644 --- a/sap_hana/CHANGELOG.md +++ b/sap_hana/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.3.0 / 2024-08-09 / Agent 7.57.0 ***Added***: diff --git a/sap_hana/datadog_checks/sap_hana/__about__.py b/sap_hana/datadog_checks/sap_hana/__about__.py index bfa215d238feb..78967d676d1af 100644 --- a/sap_hana/datadog_checks/sap_hana/__about__.py +++ b/sap_hana/datadog_checks/sap_hana/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.0' +__version__ = '4.0.0' diff --git a/scylla/CHANGELOG.md b/scylla/CHANGELOG.md index 8dd77f2ac4b39..4812215dbe90a 100644 --- a/scylla/CHANGELOG.md +++ b/scylla/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.7.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/scylla/datadog_checks/scylla/__about__.py b/scylla/datadog_checks/scylla/__about__.py index 21cf55e8337bb..32b388c31505f 100644 --- a/scylla/datadog_checks/scylla/__about__.py +++ b/scylla/datadog_checks/scylla/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.7.2' +__version__ = '3.0.0' diff --git a/sidekiq/CHANGELOG.md b/sidekiq/CHANGELOG.md index 89fe792f55bc3..4e51bf27d94cb 100644 --- a/sidekiq/CHANGELOG.md +++ b/sidekiq/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.4.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/sidekiq/datadog_checks/sidekiq/__about__.py b/sidekiq/datadog_checks/sidekiq/__about__.py index c0bf4eb0af9da..9c6b2fb79e5ac 100644 --- a/sidekiq/datadog_checks/sidekiq/__about__.py +++ b/sidekiq/datadog_checks/sidekiq/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.4.0' +__version__ = '2.0.0' diff --git a/silk/CHANGELOG.md b/silk/CHANGELOG.md index 4a87d743b5103..9e5962769225c 100644 --- a/silk/CHANGELOG.md +++ b/silk/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/silk/datadog_checks/silk/__about__.py b/silk/datadog_checks/silk/__about__.py index 8a1662f86cd77..0791a0b0a54f2 100644 --- a/silk/datadog_checks/silk/__about__.py +++ b/silk/datadog_checks/silk/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '3.0.0' diff --git a/singlestore/CHANGELOG.md b/singlestore/CHANGELOG.md index f15532c21d3aa..25e5198b2f99e 100644 --- a/singlestore/CHANGELOG.md +++ b/singlestore/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.1 / 2024-06-11 / Agent 7.54.1 ***Fixed***: diff --git a/singlestore/datadog_checks/singlestore/__about__.py b/singlestore/datadog_checks/singlestore/__about__.py index 8a1662f86cd77..0791a0b0a54f2 100644 --- a/singlestore/datadog_checks/singlestore/__about__.py +++ b/singlestore/datadog_checks/singlestore/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '3.0.0' diff --git a/snmp/CHANGELOG.md b/snmp/CHANGELOG.md index fbf19417e6824..68ceaf2c3bbf5 100644 --- a/snmp/CHANGELOG.md +++ b/snmp/CHANGELOG.md @@ -2,6 +2,12 @@ +## 8.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 7.5.0 / 2024-09-05 ***Added***: diff --git a/snmp/datadog_checks/snmp/__about__.py b/snmp/datadog_checks/snmp/__about__.py index b2fc24b1d9d33..9025559f4a9cf 100644 --- a/snmp/datadog_checks/snmp/__about__.py +++ b/snmp/datadog_checks/snmp/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '7.5.0' +__version__ = '8.0.0' diff --git a/snowflake/CHANGELOG.md b/snowflake/CHANGELOG.md index 71aa06f978e6e..c9ab549691f28 100644 --- a/snowflake/CHANGELOG.md +++ b/snowflake/CHANGELOG.md @@ -2,6 +2,12 @@ +## 6.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 5.9.0 / 2024-09-05 ***Added***: diff --git a/snowflake/datadog_checks/snowflake/__about__.py b/snowflake/datadog_checks/snowflake/__about__.py index 2bae8e50158e7..ebf0b902cce6b 100644 --- a/snowflake/datadog_checks/snowflake/__about__.py +++ b/snowflake/datadog_checks/snowflake/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '5.9.0' +__version__ = '6.0.0' diff --git a/solr/CHANGELOG.md b/solr/CHANGELOG.md index 057a63f25512d..0a0b2616eb764 100644 --- a/solr/CHANGELOG.md +++ b/solr/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.13.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/solr/datadog_checks/solr/__about__.py b/solr/datadog_checks/solr/__about__.py index 9277530c51434..0e2ebd5e4631b 100644 --- a/solr/datadog_checks/solr/__about__.py +++ b/solr/datadog_checks/solr/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.13.0' +__version__ = '2.0.0' diff --git a/sonarqube/CHANGELOG.md b/sonarqube/CHANGELOG.md index 2fc91bf9d2da2..449131b08fdbc 100644 --- a/sonarqube/CHANGELOG.md +++ b/sonarqube/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.2.2 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/sonarqube/datadog_checks/sonarqube/__about__.py b/sonarqube/datadog_checks/sonarqube/__about__.py index 1716c81d4fcba..bcf02753eab69 100644 --- a/sonarqube/datadog_checks/sonarqube/__about__.py +++ b/sonarqube/datadog_checks/sonarqube/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.2.2' +__version__ = '4.0.0' diff --git a/spark/CHANGELOG.md b/spark/CHANGELOG.md index 21b72babd766e..3d16287a547fc 100644 --- a/spark/CHANGELOG.md +++ b/spark/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/spark/datadog_checks/spark/__about__.py b/spark/datadog_checks/spark/__about__.py index 47897f7ba8b0a..d2601db5d5cc0 100644 --- a/spark/datadog_checks/spark/__about__.py +++ b/spark/datadog_checks/spark/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.3.1' +__version__ = '5.0.0' diff --git a/sqlserver/CHANGELOG.md b/sqlserver/CHANGELOG.md index f47c2f59107a9..d7f4963d6d1e7 100644 --- a/sqlserver/CHANGELOG.md +++ b/sqlserver/CHANGELOG.md @@ -2,6 +2,20 @@ +## 18.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Bump lxml version for py3.12 E2E tests ([#18637](https://github.com/DataDog/integrations-core/pull/18637)) + +***Fixed***: + +* Fix ODBC config handling for Linux ([#18586](https://github.com/DataDog/integrations-core/pull/18586)) + ## 17.5.3 / 2024-09-17 ***Fixed***: diff --git a/sqlserver/README.md b/sqlserver/README.md index c7eab98b12a99..c487b052d4e3f 100644 --- a/sqlserver/README.md +++ b/sqlserver/README.md @@ -8,7 +8,7 @@ The SQL Server integration tracks the performance of your SQL Server instances. Enable [Database Monitoring](https://docs.datadoghq.com/database_monitoring/) (DBM) for enhanced insight into query performance and database health. In addition to the standard integration, Datadog DBM provides query-level metrics, live and historical query snapshots, wait event analysis, database load, query explain plans, and blocking query insights. -All editions of SQL Server 2012 and above are supported. +SQL Server 2012, 2014, 2016, 2017, 2019, and 2022 are supported. ## Setup diff --git a/sqlserver/assets/configuration/spec.yaml b/sqlserver/assets/configuration/spec.yaml index a78b914ccbfc4..83817e6c1f253 100644 --- a/sqlserver/assets/configuration/spec.yaml +++ b/sqlserver/assets/configuration/spec.yaml @@ -17,6 +17,13 @@ files: example: - name: sqlserver.clr.execution counter_name: CLR Execution + - name: propagate_agent_tags + description: | + Set to `true` to propagate the tags from `datadog.yaml` and the agent host tags to the check. + When set to `true`, the tags from the agent host are added to the check's tags for all instances. + value: + example: false + type: boolean - template: init_config/db - template: init_config/default - template: instances @@ -760,8 +767,15 @@ files: value: type: number example: 10 + - name: propagate_agent_tags + description: | + Set to `true` to propagate the tags from `datadog.yaml` and the agent host tags to the check. + When set to `true`, the tags from the agent host are added to the check's tags for all instances. + This option takes precedence over the `propagate_agent_tags` option in `init_config`. + value: + example: false + type: boolean - name: deadlocks_collection - hidden: True description: | Configure the collection of deadlock data. The feature is supported for odbc connector only. options: diff --git a/sqlserver/changelog.d/18557.added b/sqlserver/changelog.d/18557.added new file mode 100644 index 0000000000000..83bf70581d592 --- /dev/null +++ b/sqlserver/changelog.d/18557.added @@ -0,0 +1 @@ +Add the propagate_agent_tags setting. When set to `true`, the tags from the agent host are added to the check's tag for all instances. diff --git a/sqlserver/changelog.d/18637.added b/sqlserver/changelog.d/18637.added deleted file mode 100644 index 03c3e7d117eb1..0000000000000 --- a/sqlserver/changelog.d/18637.added +++ /dev/null @@ -1 +0,0 @@ -Bump lxml version for py3.12 E2E tests \ No newline at end of file diff --git a/sqlserver/changelog.d/18760.fixed b/sqlserver/changelog.d/18760.fixed new file mode 100644 index 0000000000000..a295600258290 --- /dev/null +++ b/sqlserver/changelog.d/18760.fixed @@ -0,0 +1 @@ +Updated SQL Server Agent job query for completed jobs, significantly reducing query times for large job history logs \ No newline at end of file diff --git a/sqlserver/datadog_checks/sqlserver/__about__.py b/sqlserver/datadog_checks/sqlserver/__about__.py index 76ae2e29005a6..9d0e9dd3780f5 100644 --- a/sqlserver/datadog_checks/sqlserver/__about__.py +++ b/sqlserver/datadog_checks/sqlserver/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '17.5.3' +__version__ = '18.0.0' diff --git a/sqlserver/datadog_checks/sqlserver/agent_history.py b/sqlserver/datadog_checks/sqlserver/agent_history.py index f78d126fdabca..7492dac5ae8ad 100644 --- a/sqlserver/datadog_checks/sqlserver/agent_history.py +++ b/sqlserver/datadog_checks/sqlserver/agent_history.py @@ -18,37 +18,26 @@ DEFAULT_ROW_LIMIT = 10000 AGENT_HISTORY_QUERY = """\ -WITH HISTORY_ENTRIES AS ( +WITH BASE AS ( SELECT {history_row_limit_filter} j.name AS job_name, - CAST(sjh1.job_id AS char(36)) AS job_id, - sjh1.step_name, - sjh1.step_id, - sjh1.instance_id AS step_instance_id, - ( - SELECT MIN(sjh2.instance_id) - FROM msdb.dbo.sysjobhistory AS sjh2 - WHERE sjh2.job_id = sjh1.job_id - AND sjh2.step_id = 0 - AND sjh2.instance_id >= sjh1.instance_id - ) AS completion_instance_id, - ( - SELECT DATEDIFF(SECOND, '19700101', - DATEADD(HOUR, sjh1.run_time / 10000, - DATEADD(MINUTE, (sjh1.run_time / 100) % 100, - DATEADD(SECOND, sjh1.run_time % 100, - CAST(CAST(sjh1.run_date AS CHAR(8)) AS DATETIME) - ) + CAST(sjh.job_id AS CHAR(36)) AS job_id, + sjh.step_name, + sjh.step_id, + sjh.instance_id AS step_instance_id, + DATEDIFF(SECOND, '19700101', + DATEADD(HOUR, sjh.run_time / 10000, + DATEADD(MINUTE, (sjh.run_time / 100) % 100, + DATEADD(SECOND, sjh.run_time % 100, + CAST(CAST(sjh.run_date AS CHAR(8)) AS DATETIME) ) ) - ) - DATEPART(tzoffset, SYSDATETIMEOFFSET()) * 60 - ) AS run_epoch_time, - ( - (sjh1.run_duration / 10000) * 3600 - + ((sjh1.run_duration % 10000) / 100) * 60 - + (sjh1.run_duration % 100) - ) AS run_duration_seconds, - CASE sjh1.run_status + ) + ) - DATEPART(TZOFFSET, SYSDATETIMEOFFSET()) * 60 AS run_epoch_time, + (sjh.run_duration / 10000) * 3600 + + ((sjh.run_duration % 10000) / 100) * 60 + + (sjh.run_duration % 100) AS run_duration_seconds, + CASE sjh.run_status WHEN 0 THEN 'Failed' WHEN 1 THEN 'Succeeded' WHEN 2 THEN 'Retry' @@ -56,32 +45,55 @@ WHEN 4 THEN 'In Progress' ELSE 'Unknown' END AS step_run_status, - sjh1.message - FROM - msdb.dbo.sysjobhistory AS sjh1 - INNER JOIN msdb.dbo.sysjobs AS j - ON j.job_id = sjh1.job_id - ORDER BY completion_instance_id DESC -) -SELECT * FROM HISTORY_ENTRIES -WHERE - EXISTS ( - SELECT 1 - FROM msdb.dbo.sysjobhistory AS sjh2 - WHERE sjh2.instance_id = HISTORY_ENTRIES.completion_instance_id - AND (DATEDIFF(SECOND, '19700101', - DATEADD(HOUR, sjh2.run_time / 10000, - DATEADD(MINUTE, (sjh2.run_time / 100) % 100, - DATEADD(SECOND, sjh2.run_time % 100, - CAST(CAST(sjh2.run_date AS CHAR(8)) AS DATETIME) - ) + sjh.message + FROM msdb.dbo.sysjobhistory AS sjh + INNER JOIN msdb.dbo.sysjobs AS j ON j.job_id = sjh.job_id + ORDER BY step_instance_id DESC +), +COMPLETION_CTE AS ( + SELECT + BASE.*, + MIN(CASE WHEN BASE.step_id = 0 THEN BASE.step_instance_id END) OVER ( + PARTITION BY BASE.job_id + ORDER BY BASE.step_instance_id + ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING + ) AS completion_instance_id + FROM BASE +), +HISTORY_ENTRIES AS ( + SELECT + C.*, + DATEDIFF(SECOND, '19700101', + DATEADD(HOUR, c_sjh.run_time / 10000, + DATEADD(MINUTE, (c_sjh.run_time / 100) % 100, + DATEADD(SECOND, c_sjh.run_time % 100, + CAST(CAST(c_sjh.run_date AS CHAR(8)) AS DATETIME) ) ) - ) - DATEPART(tzoffset, SYSDATETIMEOFFSET()) * 60 - + (sjh2.run_duration / 10000) * 3600 - + ((sjh2.run_duration % 10000) / 100) * 60 - + (sjh2.run_duration % 100)) > 0 + {last_collection_time_filter} - ) + ) + ) - DATEPART(TZOFFSET, SYSDATETIMEOFFSET()) * 60 + + (c_sjh.run_duration / 10000) * 3600 + + ((c_sjh.run_duration % 10000) / 100) * 60 + + (c_sjh.run_duration % 100) AS completion_epoch_time + FROM COMPLETION_CTE AS C + LEFT JOIN msdb.dbo.sysjobhistory AS c_sjh + ON c_sjh.instance_id = C.completion_instance_id + WHERE C.completion_instance_id IS NOT NULL +) +SELECT + job_name, + job_id, + step_name, + step_id, + step_instance_id, + completion_instance_id, + run_epoch_time, + run_duration_seconds, + step_run_status, + message +FROM HISTORY_ENTRIES +WHERE + completion_epoch_time > {last_collection_time_filter}; """ diff --git a/sqlserver/datadog_checks/sqlserver/config.py b/sqlserver/datadog_checks/sqlserver/config.py index 166299b3c2bb6..a0f16576b8aa1 100644 --- a/sqlserver/datadog_checks/sqlserver/config.py +++ b/sqlserver/datadog_checks/sqlserver/config.py @@ -5,8 +5,9 @@ import json import re -from datadog_checks.base.config import is_affirmative +from datadog_checks.base import ConfigurationError, is_affirmative from datadog_checks.base.utils.common import to_native_string +from datadog_checks.base.utils.db.utils import get_agent_host_tags from datadog_checks.sqlserver.const import ( DEFAULT_AUTODISCOVERY_INTERVAL, PROC_CHAR_LIMIT, @@ -16,7 +17,10 @@ class SQLServerConfig: def __init__(self, init_config, instance, log): self.log = log - self.tags: list[str] = instance.get("tags", []) + self.tags: list[str] = self._build_tags( + custom_tags=instance.get('tags', []), + propagate_agent_tags=self._should_propagate_agent_tags(instance, init_config), + ) self.reported_hostname: str = instance.get('reported_hostname') self.autodiscovery: bool = is_affirmative(instance.get('database_autodiscovery')) self.autodiscovery_include: list[str] = instance.get('autodiscovery_include', ['.*']) or ['.*'] @@ -128,3 +132,38 @@ def _compile_valid_patterns(self, patterns: list[str]) -> re.Pattern: else: # create unmatchable regex - https://stackoverflow.com/a/1845097/2157429 return re.compile(r'(?!x)x') + + def _build_tags(self, custom_tags, propagate_agent_tags): + # Clean up tags in case there was a None entry in the instance + # e.g. if the yaml contains tags: but no actual tags + if custom_tags is None: + tags = [] + else: + tags = list(set(custom_tags)) + + if propagate_agent_tags: + try: + agent_tags = get_agent_host_tags() + tags.extend(agent_tags) + except Exception as e: + raise ConfigurationError( + 'propagate_agent_tags enabled but there was an error fetching agent tags {}'.format(e) + ) + return tags + + @staticmethod + def _should_propagate_agent_tags(instance, init_config) -> bool: + ''' + return True if the agent tags should be propagated to the check + ''' + instance_propagate_agent_tags = instance.get('propagate_agent_tags') + init_config_propagate_agent_tags = init_config.get('propagate_agent_tags') + + if instance_propagate_agent_tags is not None: + # if the instance has explicitly set the value, return the boolean + return instance_propagate_agent_tags + if init_config_propagate_agent_tags is not None: + # if the init_config has explicitly set the value, return the boolean + return init_config_propagate_agent_tags + # if neither the instance nor the init_config has set the value, return False + return False diff --git a/sqlserver/datadog_checks/sqlserver/config_models/defaults.py b/sqlserver/datadog_checks/sqlserver/config_models/defaults.py index b3a3aced950b0..0c2d8acae56af 100644 --- a/sqlserver/datadog_checks/sqlserver/config_models/defaults.py +++ b/sqlserver/datadog_checks/sqlserver/config_models/defaults.py @@ -8,6 +8,10 @@ # ddev -x validate models -s +def shared_propagate_agent_tags(): + return False + + def instance_adoprovider(): return 'SQLOLEDB' @@ -136,6 +140,10 @@ def instance_proc_only_if_database(): return 'master' +def instance_propagate_agent_tags(): + return False + + def instance_server_version(): return '2014' diff --git a/sqlserver/datadog_checks/sqlserver/config_models/instance.py b/sqlserver/datadog_checks/sqlserver/config_models/instance.py index ef0200cb763a7..100a87ab5020d 100644 --- a/sqlserver/datadog_checks/sqlserver/config_models/instance.py +++ b/sqlserver/datadog_checks/sqlserver/config_models/instance.py @@ -228,6 +228,7 @@ class InstanceConfig(BaseModel): proc_only_if: Optional[str] = None proc_only_if_database: Optional[str] = None procedure_metrics: Optional[ProcedureMetrics] = None + propagate_agent_tags: Optional[bool] = None query_activity: Optional[QueryActivity] = None query_metrics: Optional[QueryMetrics] = None reported_hostname: Optional[str] = None diff --git a/sqlserver/datadog_checks/sqlserver/config_models/shared.py b/sqlserver/datadog_checks/sqlserver/config_models/shared.py index ea7963bad6e26..820d2fbefe25e 100644 --- a/sqlserver/datadog_checks/sqlserver/config_models/shared.py +++ b/sqlserver/datadog_checks/sqlserver/config_models/shared.py @@ -17,7 +17,7 @@ from datadog_checks.base.utils.functions import identity from datadog_checks.base.utils.models import validation -from . import validators +from . import defaults, validators class SharedConfig(BaseModel): @@ -28,6 +28,7 @@ class SharedConfig(BaseModel): ) custom_metrics: Optional[tuple[MappingProxyType[str, Any], ...]] = None global_custom_queries: Optional[tuple[MappingProxyType[str, Any], ...]] = None + propagate_agent_tags: Optional[bool] = None service: Optional[str] = None @model_validator(mode='before') @@ -40,6 +41,8 @@ def _validate(cls, value, info): field_name = field.alias or info.field_name if field_name in info.context['configured_fields']: value = getattr(validators, f'shared_{info.field_name}', identity)(value, field=field) + else: + value = getattr(defaults, f'shared_{info.field_name}', lambda: value)() return validation.utils.make_immutable(value) diff --git a/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example b/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example index 71683273aba99..0aa748b5b3841 100644 --- a/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example +++ b/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example @@ -12,6 +12,12 @@ init_config: # - name: sqlserver.clr.execution # counter_name: CLR Execution + ## @param propagate_agent_tags - boolean - optional - default: false + ## Set to `true` to propagate the tags from `datadog.yaml` and the agent host tags to the check. + ## When set to `true`, the tags from the agent host are added to the check's tags for all instances. + # + # propagate_agent_tags: false + ## @param global_custom_queries - list of mappings - optional ## See `custom_queries` defined below. ## @@ -679,6 +685,32 @@ instances: # # ignore_missing_database: false + ## @param propagate_agent_tags - boolean - optional - default: false + ## Set to `true` to propagate the tags from `datadog.yaml` and the agent host tags to the check. + ## When set to `true`, the tags from the agent host are added to the check's tags for all instances. + ## This option takes precedence over the `propagate_agent_tags` option in `init_config`. + # + # propagate_agent_tags: false + + ## Configure the collection of deadlock data. The feature is supported for odbc connector only. + # + # deadlocks_collection: + + ## @param enabled - boolean - optional - default: false + ## Enable the collection of deadlock data. Requires `dbm: true`. Disabled by default. + # + # enabled: false + + ## @param collection_interval - number - optional - default: 600 + ## Set the interval for collecting deadlock data, in seconds. Defaults to 600 seconds. + # + # collection_interval: 600 + + ## @param max_deadlocks - number - optional - default: 100 + ## Set the maximum number of deadlocks to retrieve per collection. + # + # max_deadlocks: 100 + ## @param tags - list of strings - optional ## A list of tags to attach to every metric and service check emitted by this instance. ## diff --git a/sqlserver/datadog_checks/sqlserver/deadlocks.py b/sqlserver/datadog_checks/sqlserver/deadlocks.py index b623760188330..f8405bd3b9996 100644 --- a/sqlserver/datadog_checks/sqlserver/deadlocks.py +++ b/sqlserver/datadog_checks/sqlserver/deadlocks.py @@ -11,7 +11,7 @@ from datadog_checks.base.utils.tracking import tracked_method from datadog_checks.sqlserver.config import SQLServerConfig from datadog_checks.sqlserver.const import STATIC_INFO_ENGINE_EDITION, STATIC_INFO_VERSION -from datadog_checks.sqlserver.queries import DEADLOCK_QUERY, DEADLOCK_TIMESTAMP_ALIAS, DEADLOCK_XML_ALIAS +from datadog_checks.sqlserver.queries import DEADLOCK_TIMESTAMP_ALIAS, DEADLOCK_XML_ALIAS, get_deadlocks_query try: import datadog_agent @@ -41,6 +41,7 @@ def __init__(self, check, config: SQLServerConfig): self._max_deadlocks = config.deadlocks_config.get("max_deadlocks", MAX_DEADLOCKS) self._deadlock_payload_max_bytes = MAX_PAYLOAD_BYTES self.collection_interval = config.deadlocks_config.get("collection_interval", DEFAULT_COLLECTION_INTERVAL) + self._force_convert_xml_to_str = False super(Deadlocks, self).__init__( check, run_sync=True, @@ -100,21 +101,27 @@ def _obfuscate_xml(self, root): def _get_lookback_seconds(self): return min(-60, self._last_deadlock_timestamp - time()) + def _get_connector(self): + return self._check.connection.connector + def _query_deadlocks(self): with self._check.connection.open_managed_default_connection(key_prefix=self._conn_key_prefix): with self._check.connection.get_managed_cursor(key_prefix=self._conn_key_prefix) as cursor: - self._log.debug("collecting sql server deadlocks") + convert_xml_to_str = False + if self._force_convert_xml_to_str or self._get_connector() == "adodbapi": + convert_xml_to_str = True + query = get_deadlocks_query(convert_xml_to_str) self._log.debug( "Running query [%s] with max deadlocks %s and timestamp %s", - DEADLOCK_QUERY, + query, self._max_deadlocks, self._last_deadlock_timestamp, ) try: - cursor.execute(DEADLOCK_QUERY, (self._max_deadlocks, self._get_lookback_seconds())) + cursor.execute(query, (self._max_deadlocks, self._get_lookback_seconds())) except Exception as e: if "Data column of Unknown ADO type" in str(e): - raise Exception(f"{str(e)} | cursor.description: {cursor.description}") + raise Exception(f"{str(e)} | cursor.description: {cursor.description} | query: {query}") raise e columns = [column[0] for column in cursor.description] diff --git a/sqlserver/datadog_checks/sqlserver/queries.py b/sqlserver/datadog_checks/sqlserver/queries.py index 48b27d812e87f..ab6cf12a49af6 100644 --- a/sqlserver/datadog_checks/sqlserver/queries.py +++ b/sqlserver/datadog_checks/sqlserver/queries.py @@ -216,20 +216,31 @@ DEADLOCK_TIMESTAMP_ALIAS = "timestamp" DEADLOCK_XML_ALIAS = "event_xml" -DEADLOCK_QUERY = """ -SELECT TOP(?) xdr.value('@timestamp', 'datetime') AS [{timestamp}], - xdr.query('.') AS [{xml}] -FROM (SELECT CAST([target_data] AS XML) AS Target_Data - FROM sys.dm_xe_session_targets AS xt - INNER JOIN sys.dm_xe_sessions AS xs ON xs.address = xt.event_session_address - WHERE xs.name = N'system_health' - AND xt.target_name = N'ring_buffer' - ) AS XML_Data -CROSS APPLY Target_Data.nodes('RingBufferTarget/event[@name="xml_deadlock_report"]') AS XEventData(xdr) -WHERE xdr.value('@timestamp', 'datetime') >= DATEADD(SECOND, ?, GETDATE()) -;""".format( - **{"timestamp": DEADLOCK_TIMESTAMP_ALIAS, "xml": DEADLOCK_XML_ALIAS} -) + + +def get_deadlocks_query(convert_xml_to_str=False): + """ + Construct the query to fetch deadlocks from the system_health extended event session + :param convert_xml_to_str: Whether to convert the XML to a string. This option is for MSOLEDB drivers + that can't convert XML to str + :return: The query to fetch deadlocks + """ + xml_expression = "xdr.query('.')" + if convert_xml_to_str: + xml_expression = "CAST(xdr.query('.') AS NVARCHAR(MAX))" + + return f""" + SELECT TOP(?) xdr.value('@timestamp', 'datetime') AS [{DEADLOCK_TIMESTAMP_ALIAS}], + {xml_expression} AS [{DEADLOCK_XML_ALIAS}] + FROM (SELECT CAST([target_data] AS XML) AS Target_Data + FROM sys.dm_xe_session_targets AS xt + INNER JOIN sys.dm_xe_sessions AS xs ON xs.address = xt.event_session_address + WHERE xs.name = N'system_health' + AND xt.target_name = N'ring_buffer' + ) AS XML_Data + CROSS APPLY Target_Data.nodes('RingBufferTarget/event[@name="xml_deadlock_report"]') AS XEventData(xdr) + WHERE xdr.value('@timestamp', 'datetime') >= DATEADD(SECOND, ?, GETDATE()) + ;""" def get_query_ao_availability_groups(sqlserver_major_version): diff --git a/sqlserver/datadog_checks/sqlserver/sqlserver.py b/sqlserver/datadog_checks/sqlserver/sqlserver.py index 427aab153a4e5..a254f987fa651 100644 --- a/sqlserver/datadog_checks/sqlserver/sqlserver.py +++ b/sqlserver/datadog_checks/sqlserver/sqlserver.py @@ -383,7 +383,6 @@ def make_metric_list_to_collect(self): self.log.exception("Initialization exception %s", e) def handle_service_check(self, status, connection_host, database, message=None, is_default=True): - custom_tags = self.instance.get("tags", []) disable_generic_tags = self.instance.get("disable_generic_tags", False) service_check_tags = [ "sqlserver_host:{}".format(self.resolved_hostname), @@ -392,8 +391,8 @@ def handle_service_check(self, status, connection_host, database, message=None, ] if not disable_generic_tags: service_check_tags.append("host:{}".format(self.resolved_hostname)) - if custom_tags is not None: - service_check_tags.extend(custom_tags) + if self.tags is not None: + service_check_tags.extend(self.tags) service_check_tags = list(set(service_check_tags)) if status is AgentCheck.OK: @@ -461,7 +460,6 @@ def _make_metric_list_to_collect(self, custom_metrics): major_version = self.static_info_cache.get(STATIC_INFO_MAJOR_VERSION) metrics_to_collect = [] - tags = self.instance.get("tags", []) # Load instance-level (previously Performance metrics) # If several check instances are querying the same server host, it can be wise to turn these off @@ -476,7 +474,7 @@ def _make_metric_list_to_collect(self, custom_metrics): # if autodiscovery is enabled, we report metrics from the # INSTANCE_METRICS_DATABASE struct below, so do not double report here common_metrics.extend(INSTANCE_METRICS_DATABASE) - self._add_performance_counters(common_metrics, metrics_to_collect, tags, db=None) + self._add_performance_counters(common_metrics, metrics_to_collect, self.tags, db=None) # populated through autodiscovery if self.databases: @@ -484,7 +482,7 @@ def _make_metric_list_to_collect(self, custom_metrics): self._add_performance_counters( INSTANCE_METRICS_DATABASE, metrics_to_collect, - tags, + self.tags, db=db.name, physical_database_name=db.physical_db_name, ) @@ -499,7 +497,13 @@ def _make_metric_list_to_collect(self, custom_metrics): self.instance.get("database", self.connection.DEFAULT_DATABASE) ] for db_name in db_names: - cfg = {"name": name, "table": table, "column": column, "instance_name": db_name, "tags": tags} + cfg = { + "name": name, + "table": table, + "column": column, + "instance_name": db_name, + "tags": self.tags, + } metrics_to_collect.append(self.typed_metric(cfg_inst=cfg, table=table, column=column)) # Load AlwaysOn metrics @@ -511,7 +515,7 @@ def _make_metric_list_to_collect(self, custom_metrics): "table": table, "column": column, "instance_name": db_name, - "tags": tags, + "tags": self.tags, "ao_database": self.instance.get("ao_database", None), "availability_group": self.instance.get("availability_group", None), "only_emit_local": is_affirmative(self.instance.get("only_emit_local", False)), @@ -521,13 +525,13 @@ def _make_metric_list_to_collect(self, custom_metrics): # Load metrics from scheduler and task tables, if enabled if is_affirmative(self.instance.get("include_task_scheduler_metrics", False)): for name, table, column in TASK_SCHEDULER_METRICS: - cfg = {"name": name, "table": table, "column": column, "tags": tags} + cfg = {"name": name, "table": table, "column": column, "tags": self.tags} metrics_to_collect.append(self.typed_metric(cfg_inst=cfg, table=table, column=column)) # Load sys.master_files metrics if is_affirmative(self.instance.get("include_master_files_metrics", False)): for name, table, column in DATABASE_MASTER_FILES: - cfg = {"name": name, "table": table, "column": column, "tags": tags} + cfg = {"name": name, "table": table, "column": column, "tags": self.tags} metrics_to_collect.append(self.typed_metric(cfg_inst=cfg, table=table, column=column)) # Load DB File Space Usage metrics @@ -535,7 +539,13 @@ def _make_metric_list_to_collect(self, custom_metrics): self.instance.get("include_tempdb_file_space_usage_metrics", True) ) and not is_azure_sql_database(engine_edition): for name, table, column in TEMPDB_FILE_SPACE_USAGE_METRICS: - cfg = {"name": name, "table": table, "column": column, "instance_name": "tempdb", "tags": tags} + cfg = { + "name": name, + "table": table, + "column": column, + "instance_name": "tempdb", + "tags": self.tags, + } metrics_to_collect.append(self.typed_metric(cfg_inst=cfg, table=table, column=column)) # Load any custom metrics from conf.d/sqlserver.yaml @@ -543,7 +553,7 @@ def _make_metric_list_to_collect(self, custom_metrics): sql_counter_type = None base_name = None - custom_tags = tags + cfg.get("tags", []) + custom_tags = self.tags + cfg.get("tags", []) cfg["tags"] = custom_tags db_table = cfg.get("table", DEFAULT_PERFORMANCE_TABLE) @@ -994,7 +1004,6 @@ def do_stored_procedure_check(self): proc = self._config.proc guardSql = self.instance.get("proc_only_if") - custom_tags = self.instance.get("tags", []) if (guardSql and self.proc_check_guard(guardSql)) or not guardSql: self.connection.open_db_connections(self.connection.DEFAULT_DB_KEY) @@ -1015,7 +1024,7 @@ def do_stored_procedure_check(self): for row in rows: tags = [] if row.tags is None or row.tags == "" else row.tags.split(",") - tags.extend(custom_tags) + tags.extend(self.tags) if row.type.lower() in self.proc_type_mapping: self.proc_type_mapping[row.type](row.metric, row.value, tags, raw=True) diff --git a/sqlserver/tests/test_activity.py b/sqlserver/tests/test_activity.py index 7e8d73375afde..8e8084771c7c1 100644 --- a/sqlserver/tests/test_activity.py +++ b/sqlserver/tests/test_activity.py @@ -203,8 +203,7 @@ def run_test_query(c, q): # internal debug metrics aggregator.assert_metric( OPERATION_TIME_METRIC_NAME, - tags=['agent_hostname:stubbed.hostname', 'operation:collect_activity'] - + _expected_dbm_instance_tags(dbm_instance), + tags=['agent_hostname:stubbed.hostname', 'operation:collect_activity'] + _expected_dbm_instance_tags(check), ) @@ -755,8 +754,8 @@ def _get_conn_for_user(instance_docker, user, _autocommit=False): return conn -def _expected_dbm_instance_tags(dbm_instance): - return dbm_instance['tags'] +def _expected_dbm_instance_tags(check): + return check._config.tags @pytest.mark.parametrize("activity_enabled", [True, False]) @@ -794,7 +793,7 @@ def test_async_job_inactive_stop(aggregator, dd_run_check, dbm_instance): check.activity._job_loop_future.result() aggregator.assert_metric( "dd.sqlserver.async_job.inactive_stop", - tags=['job:query-activity'] + _expected_dbm_instance_tags(dbm_instance), + tags=['job:query-activity'] + _expected_dbm_instance_tags(check), hostname='', ) @@ -813,7 +812,7 @@ def test_async_job_cancel_cancel(aggregator, dd_run_check, dbm_instance): # be created in the first place aggregator.assert_metric( "dd.sqlserver.async_job.cancel", - tags=_expected_dbm_instance_tags(dbm_instance) + ['job:query-activity'], + tags=_expected_dbm_instance_tags(check) + ['job:query-activity'], ) diff --git a/sqlserver/tests/test_agent_jobs.py b/sqlserver/tests/test_agent_jobs.py index f2b1ff7d83efa..e265e892b03cb 100644 --- a/sqlserver/tests/test_agent_jobs.py +++ b/sqlserver/tests/test_agent_jobs.py @@ -21,37 +21,26 @@ AGENT_HISTORY_QUERY = """\ -WITH HISTORY_ENTRIES AS ( +WITH BASE AS ( SELECT {history_row_limit_filter} j.name AS job_name, - CAST(sjh1.job_id AS char(36)) AS job_id, - sjh1.step_name, - sjh1.step_id, - sjh1.instance_id AS step_instance_id, - ( - SELECT MIN(sjh2.instance_id) - FROM msdb.dbo.sysjobhistory AS sjh2 - WHERE sjh2.job_id = sjh1.job_id - AND sjh2.step_id = 0 - AND sjh2.instance_id >= sjh1.instance_id - ) AS completion_instance_id, - ( - SELECT DATEDIFF(SECOND, '19700101', - DATEADD(HOUR, sjh1.run_time / 10000, - DATEADD(MINUTE, (sjh1.run_time / 100) % 100, - DATEADD(SECOND, sjh1.run_time % 100, - CAST(CAST(sjh1.run_date AS CHAR(8)) AS DATETIME) - ) + CAST(sjh.job_id AS CHAR(36)) AS job_id, + sjh.step_name, + sjh.step_id, + sjh.instance_id AS step_instance_id, + DATEDIFF(SECOND, '19700101', + DATEADD(HOUR, sjh.run_time / 10000, + DATEADD(MINUTE, (sjh.run_time / 100) % 100, + DATEADD(SECOND, sjh.run_time % 100, + CAST(CAST(sjh.run_date AS CHAR(8)) AS DATETIME) ) ) - ) - DATEPART(tzoffset, SYSDATETIMEOFFSET()) * 60 - ) AS run_epoch_time, - ( - (sjh1.run_duration / 10000) * 3600 - + ((sjh1.run_duration % 10000) / 100) * 60 - + (sjh1.run_duration % 100) - ) AS run_duration_seconds, - CASE sjh1.run_status + ) + ) - DATEPART(TZOFFSET, SYSDATETIMEOFFSET()) * 60 AS run_epoch_time, + (sjh.run_duration / 10000) * 3600 + + ((sjh.run_duration % 10000) / 100) * 60 + + (sjh.run_duration % 100) AS run_duration_seconds, + CASE sjh.run_status WHEN 0 THEN 'Failed' WHEN 1 THEN 'Succeeded' WHEN 2 THEN 'Retry' @@ -59,66 +48,79 @@ WHEN 4 THEN 'In Progress' ELSE 'Unknown' END AS step_run_status, - sjh1.message - FROM - msdb.dbo.sysjobhistory AS sjh1 - INNER JOIN msdb.dbo.sysjobs AS j - ON j.job_id = sjh1.job_id - ORDER BY completion_instance_id DESC -) -SELECT * FROM HISTORY_ENTRIES -WHERE - EXISTS ( - SELECT 1 - FROM msdb.dbo.sysjobhistory AS sjh2 - WHERE sjh2.instance_id = HISTORY_ENTRIES.completion_instance_id - AND (DATEDIFF(SECOND, '19700101', - DATEADD(HOUR, sjh2.run_time / 10000, - DATEADD(MINUTE, (sjh2.run_time / 100) % 100, - DATEADD(SECOND, sjh2.run_time % 100, - CAST(CAST(sjh2.run_date AS CHAR(8)) AS DATETIME) - ) + sjh.message + FROM msdb.dbo.sysjobhistory AS sjh + INNER JOIN msdb.dbo.sysjobs AS j ON j.job_id = sjh.job_id + ORDER BY step_instance_id DESC +), +COMPLETION_CTE AS ( + SELECT + BASE.*, + MIN(CASE WHEN BASE.step_id = 0 THEN BASE.step_instance_id END) OVER ( + PARTITION BY BASE.job_id + ORDER BY BASE.step_instance_id + ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING + ) AS completion_instance_id + FROM BASE +), +HISTORY_ENTRIES AS ( + SELECT + C.*, + DATEDIFF(SECOND, '19700101', + DATEADD(HOUR, c_sjh.run_time / 10000, + DATEADD(MINUTE, (c_sjh.run_time / 100) % 100, + DATEADD(SECOND, c_sjh.run_time % 100, + CAST(CAST(c_sjh.run_date AS CHAR(8)) AS DATETIME) ) ) - ) - DATEPART(tzoffset, SYSDATETIMEOFFSET()) * 60 - + (sjh2.run_duration / 10000) * 3600 - + ((sjh2.run_duration % 10000) / 100) * 60 - + (sjh2.run_duration % 100)) > 0 + {last_collection_time_filter} - ) + ) + ) - DATEPART(TZOFFSET, SYSDATETIMEOFFSET()) * 60 + + (c_sjh.run_duration / 10000) * 3600 + + ((c_sjh.run_duration % 10000) / 100) * 60 + + (c_sjh.run_duration % 100) AS completion_epoch_time + FROM COMPLETION_CTE AS C + LEFT JOIN msdb.dbo.sysjobhistory AS c_sjh + ON c_sjh.instance_id = C.completion_instance_id + WHERE C.completion_instance_id IS NOT NULL +) +SELECT + job_name, + job_id, + step_name, + step_id, + step_instance_id, + completion_instance_id, + run_epoch_time, + run_duration_seconds, + step_run_status, + message +FROM HISTORY_ENTRIES +WHERE + completion_epoch_time > {last_collection_time_filter}; """ + FORMATTED_HISTORY_QUERY = """\ -WITH HISTORY_ENTRIES AS ( +WITH BASE AS ( SELECT TOP 10000 j.name AS job_name, - CAST(sjh1.job_id AS char(36)) AS job_id, - sjh1.step_name, - sjh1.step_id, - sjh1.instance_id AS step_instance_id, - ( - SELECT MIN(sjh2.instance_id) - FROM msdb.dbo.sysjobhistory AS sjh2 - WHERE sjh2.job_id = sjh1.job_id - AND sjh2.step_id = 0 - AND sjh2.instance_id >= sjh1.instance_id - ) AS completion_instance_id, - ( - SELECT DATEDIFF(SECOND, '19700101', - DATEADD(HOUR, sjh1.run_time / 10000, - DATEADD(MINUTE, (sjh1.run_time / 100) % 100, - DATEADD(SECOND, sjh1.run_time % 100, - CAST(CAST(sjh1.run_date AS CHAR(8)) AS DATETIME) - ) + CAST(sjh.job_id AS CHAR(36)) AS job_id, + sjh.step_name, + sjh.step_id, + sjh.instance_id AS step_instance_id, + DATEDIFF(SECOND, '19700101', + DATEADD(HOUR, sjh.run_time / 10000, + DATEADD(MINUTE, (sjh.run_time / 100) % 100, + DATEADD(SECOND, sjh.run_time % 100, + CAST(CAST(sjh.run_date AS CHAR(8)) AS DATETIME) ) ) - ) - DATEPART(tzoffset, SYSDATETIMEOFFSET()) * 60 - ) AS run_epoch_time, - ( - (sjh1.run_duration / 10000) * 3600 - + ((sjh1.run_duration % 10000) / 100) * 60 - + (sjh1.run_duration % 100) - ) AS run_duration_seconds, - CASE sjh1.run_status + ) + ) - DATEPART(TZOFFSET, SYSDATETIMEOFFSET()) * 60 AS run_epoch_time, + (sjh.run_duration / 10000) * 3600 + + ((sjh.run_duration % 10000) / 100) * 60 + + (sjh.run_duration % 100) AS run_duration_seconds, + CASE sjh.run_status WHEN 0 THEN 'Failed' WHEN 1 THEN 'Succeeded' WHEN 2 THEN 'Retry' @@ -126,32 +128,55 @@ WHEN 4 THEN 'In Progress' ELSE 'Unknown' END AS step_run_status, - sjh1.message - FROM - msdb.dbo.sysjobhistory AS sjh1 - INNER JOIN msdb.dbo.sysjobs AS j - ON j.job_id = sjh1.job_id - ORDER BY completion_instance_id DESC -) -SELECT * FROM HISTORY_ENTRIES -WHERE - EXISTS ( - SELECT 1 - FROM msdb.dbo.sysjobhistory AS sjh2 - WHERE sjh2.instance_id = HISTORY_ENTRIES.completion_instance_id - AND (DATEDIFF(SECOND, '19700101', - DATEADD(HOUR, sjh2.run_time / 10000, - DATEADD(MINUTE, (sjh2.run_time / 100) % 100, - DATEADD(SECOND, sjh2.run_time % 100, - CAST(CAST(sjh2.run_date AS CHAR(8)) AS DATETIME) - ) + sjh.message + FROM msdb.dbo.sysjobhistory AS sjh + INNER JOIN msdb.dbo.sysjobs AS j ON j.job_id = sjh.job_id + ORDER BY step_instance_id DESC +), +COMPLETION_CTE AS ( + SELECT + BASE.*, + MIN(CASE WHEN BASE.step_id = 0 THEN BASE.step_instance_id END) OVER ( + PARTITION BY BASE.job_id + ORDER BY BASE.step_instance_id + ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING + ) AS completion_instance_id + FROM BASE +), +HISTORY_ENTRIES AS ( + SELECT + C.*, + DATEDIFF(SECOND, '19700101', + DATEADD(HOUR, c_sjh.run_time / 10000, + DATEADD(MINUTE, (c_sjh.run_time / 100) % 100, + DATEADD(SECOND, c_sjh.run_time % 100, + CAST(CAST(c_sjh.run_date AS CHAR(8)) AS DATETIME) ) ) - ) - DATEPART(tzoffset, SYSDATETIMEOFFSET()) * 60 - + (sjh2.run_duration / 10000) * 3600 - + ((sjh2.run_duration % 10000) / 100) * 60 - + (sjh2.run_duration % 100)) > 0 + 10000 - ) + ) + ) - DATEPART(TZOFFSET, SYSDATETIMEOFFSET()) * 60 + + (c_sjh.run_duration / 10000) * 3600 + + ((c_sjh.run_duration % 10000) / 100) * 60 + + (c_sjh.run_duration % 100) AS completion_epoch_time + FROM COMPLETION_CTE AS C + LEFT JOIN msdb.dbo.sysjobhistory AS c_sjh + ON c_sjh.instance_id = C.completion_instance_id + WHERE C.completion_instance_id IS NOT NULL +) +SELECT + job_name, + job_id, + step_name, + step_id, + step_instance_id, + completion_instance_id, + run_epoch_time, + run_duration_seconds, + step_run_status, + message +FROM HISTORY_ENTRIES +WHERE + completion_epoch_time > 10000; """ AGENT_ACTIVITY_DURATION_QUERY = """\ diff --git a/sqlserver/tests/test_database_metrics.py b/sqlserver/tests/test_database_metrics.py index 7ab389e50c594..ece9a87aa16e8 100644 --- a/sqlserver/tests/test_database_metrics.py +++ b/sqlserver/tests/test_database_metrics.py @@ -95,7 +95,7 @@ def test_sqlserver_index_usage_metrics( if not include_index_usage_metrics: assert index_usage_metrics.enabled is False else: - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags for result in mocked_results: for row in result: db, index_name, table, *metric_values = row @@ -203,7 +203,7 @@ def test_sqlserver_db_fragmentation_metrics( if not include_db_fragmentation_metrics: assert db_fragmentation_metrics.enabled is False else: - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags for result in mocked_results: for row in result: database_name, object_name, index_id, index_name, *metric_values = row @@ -273,7 +273,7 @@ def execute_query_handler_mocked(query, db=None): sqlserver_check._database_metrics = [database_backup_metrics] dd_run_check(sqlserver_check) - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags for result in mocked_results: db, database, *metric_values = result metrics = zip(database_backup_metrics.metric_names()[0], metric_values) diff --git a/sqlserver/tests/test_deadlocks.py b/sqlserver/tests/test_deadlocks.py index 1099a0dfcd1f6..34f2e76d1575c 100644 --- a/sqlserver/tests/test_deadlocks.py +++ b/sqlserver/tests/test_deadlocks.py @@ -24,7 +24,6 @@ from datadog_checks.sqlserver.queries import DEADLOCK_TIMESTAMP_ALIAS, DEADLOCK_XML_ALIAS from .common import CHECK_NAME -from .utils import not_windows_ado try: import pyodbc @@ -32,8 +31,9 @@ pyodbc = None -@pytest.fixture -def dbm_instance(instance_docker): +@pytest.fixture(scope="session") +def dbm_instance(instance_session_default): + instance_docker = deepcopy(instance_session_default) instance_docker['dbm'] = True # set a very small collection interval so the tests go fast instance_docker['query_activity'] = { @@ -44,12 +44,21 @@ def dbm_instance(instance_docker): instance_docker['procedure_metrics'] = {'enabled': False} instance_docker['collect_settings'] = {'enabled': False} instance_docker['deadlocks_collection'] = {'enabled': True, 'collection_interval': 0.1} - return copy(instance_docker) + return instance_docker + +def _run_check_and_get_deadlock_payloads(dd_run_check, check, aggregator): + dbm_activity = _run_check_and_get_activity_samples(dd_run_check, check, aggregator) + return _get_deadlocks_payload(dbm_activity) -def run_check_and_return_deadlock_payloads(dd_run_check, check, aggregator): + +def _run_check_and_get_activity_samples(dd_run_check, check, aggregator): dd_run_check(check) dbm_activity = aggregator.get_event_platform_events("dbm-activity") + return dbm_activity + + +def _get_deadlocks_payload(dbm_activity): matched = [] for event in dbm_activity: if "sqlserver_deadlocks" in event: @@ -57,13 +66,16 @@ def run_check_and_return_deadlock_payloads(dd_run_check, check, aggregator): return matched -def _get_conn_for_user(instance_docker, user, timeout=1, _autocommit=False): - # Make DB connection - conn_str = 'DRIVER={};Server={};Database=master;UID={};PWD={};TrustServerCertificate=yes;'.format( - instance_docker['driver'], instance_docker['host'], user, "Password12!" +def _get_conn_for_user(instance_docker, user): + conn_str = ( + f"DRIVER={instance_docker['driver']};" + f"Server={instance_docker['host']};" + "Database=master;" + f"UID={user};" + "PWD=Password12!;" + "TrustServerCertificate=yes;" ) - conn = pyodbc.connect(conn_str, timeout=timeout, autocommit=_autocommit) - conn.timeout = timeout + conn = pyodbc.connect(conn_str, autocommit=False) return conn @@ -99,56 +111,41 @@ def _run_second_deadlock_query(conn, event1, event2): return exception_text -def _create_deadlock(bob_conn, fred_conn): +@pytest.fixture(scope="session") +def _create_deadlock(dd_environment, dbm_instance): + bob_conn = _get_conn_for_user(dbm_instance, 'bob') + fred_conn = _get_conn_for_user(dbm_instance, 'fred') executor = concurrent.futures.thread.ThreadPoolExecutor(2) event1 = Event() event2 = Event() - futures_first_query = executor.submit(_run_first_deadlock_query, bob_conn, event1, event2) futures_second_query = executor.submit(_run_second_deadlock_query, fred_conn, event1, event2) exception_1_text = futures_first_query.result() exception_2_text = futures_second_query.result() executor.shutdown() - return "deadlock" in exception_1_text or "deadlock" in exception_2_text + bob_conn.close() + fred_conn.close() + if "deadlock" in exception_1_text or "deadlock" in exception_2_text: + return + raise Exception( + f"Couldn't create a deadlock | batch output 1: {exception_1_text} | batch output 2: {exception_2_text}" + ) -# TODO: remove @not_windows_ado when the functionality is supported for MSOLEDBSQL -@not_windows_ado @pytest.mark.integration @pytest.mark.usefixtures('dd_environment') -def test_deadlocks(aggregator, dd_run_check, init_config, dbm_instance): - sqlserver_check = SQLServer(CHECK_NAME, {}, [dbm_instance]) - - deadlock_payloads = run_check_and_return_deadlock_payloads(dd_run_check, sqlserver_check, aggregator) - assert not deadlock_payloads, "shouldn't have sent an empty payload" - - created_deadlock = False - # Rarely instead of creating a deadlock one of the transactions time outs - for _ in range(0, 3): - bob_conn = _get_conn_for_user(dbm_instance, 'bob', 3) - fred_conn = _get_conn_for_user(dbm_instance, 'fred', 3) - created_deadlock = _create_deadlock(bob_conn, fred_conn) - bob_conn.close() - fred_conn.close() - if created_deadlock: - break - try: - assert created_deadlock, "Couldn't create a deadlock, exiting" - except AssertionError as e: - raise e - - dbm_instance_no_dbm = deepcopy(dbm_instance) - dbm_instance_no_dbm['dbm'] = False - sqlserver_check_no_dbm = SQLServer(CHECK_NAME, init_config, [dbm_instance_no_dbm]) - deadlock_payloads = run_check_and_return_deadlock_payloads(dd_run_check, sqlserver_check_no_dbm, aggregator) - assert len(deadlock_payloads) == 0, "deadlock should be behind dbm" +@pytest.mark.usefixtures('_create_deadlock') +@pytest.mark.parametrize("convert_xml_to_str", [False, True]) +def test_deadlocks(aggregator, dd_run_check, dbm_instance, convert_xml_to_str): + check = SQLServer(CHECK_NAME, {}, [dbm_instance]) + check.deadlocks._force_convert_xml_to_str = convert_xml_to_str dbm_instance['dbm_enabled'] = True - deadlock_payloads = run_check_and_return_deadlock_payloads(dd_run_check, sqlserver_check, aggregator) + deadlock_payloads = _run_check_and_get_deadlock_payloads(dd_run_check, check, aggregator) try: - assert len(deadlock_payloads) == 1, "Should have collected one deadlock payload, but collected: {}.".format( - len(deadlock_payloads) - ) + assert ( + len(deadlock_payloads) == 1 + ), f"Should have collected one deadlock payload, but collected: {len(deadlock_payloads)}" except AssertionError as e: raise e deadlocks = deadlock_payloads[0]['sqlserver_deadlocks'] @@ -174,6 +171,34 @@ def test_deadlocks(aggregator, dd_run_check, init_config, dbm_instance): raise e +@pytest.mark.usefixtures('dd_environment') +def test_no_empty_deadlocks_payloads(dd_run_check, init_config, dbm_instance, aggregator): + check = SQLServer(CHECK_NAME, init_config, [dbm_instance]) + with patch.object( + Deadlocks, + '_query_deadlocks', + return_value=[], + ): + assert not _run_check_and_get_deadlock_payloads( + dd_run_check, check, aggregator + ), "shouldn't have sent an empty payload" + + +@pytest.mark.usefixtures('dd_environment') +def test_deadlocks_behind_dbm(dd_run_check, init_config, dbm_instance): + dbm_instance_no_dbm = deepcopy(dbm_instance) + dbm_instance_no_dbm['dbm'] = False + check = SQLServer(CHECK_NAME, init_config, [dbm_instance_no_dbm]) + xml = _load_test_deadlocks_xml("sqlserver_deadlock_event.xml") + with patch.object( + Deadlocks, + '_query_deadlocks', + return_value=[{DEADLOCK_TIMESTAMP_ALIAS: "2024-09-20T12:07:16.647000", DEADLOCK_XML_ALIAS: xml}], + ) as mocked_function: + dd_run_check(check) + mocked_function.assert_not_called() + + DEADLOCKS_PLAN_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "deadlocks") @@ -198,13 +223,13 @@ def deadlocks_collection_instance(instance_docker): return copy(instance_docker) -def get_deadlock_obj(deadlocks_collection_instance): +def _get_deadlock_obj(deadlocks_collection_instance): check = SQLServer(CHECK_NAME, {}, [deadlocks_collection_instance]) return check.deadlocks def test__create_deadlock_rows(deadlocks_collection_instance): - deadlocks_obj = get_deadlock_obj(deadlocks_collection_instance) + deadlocks_obj = _get_deadlock_obj(deadlocks_collection_instance) xml = _load_test_deadlocks_xml("sqlserver_deadlock_event.xml") with patch.object( Deadlocks, @@ -237,7 +262,7 @@ def test_deadlock_xml_bad_format(deadlocks_collection_instance): """ - deadlocks_obj = get_deadlock_obj(deadlocks_collection_instance) + deadlocks_obj = _get_deadlock_obj(deadlocks_collection_instance) root = ET.fromstring(test_xml) try: deadlocks_obj._obfuscate_xml(root) @@ -312,17 +337,10 @@ def test_deadlock_calls_obfuscator(deadlocks_collection_instance): ) with patch('datadog_checks.sqlserver.deadlocks.Deadlocks.obfuscate_no_except_wrapper', return_value="obfuscated"): - deadlocks_obj = get_deadlock_obj(deadlocks_collection_instance) + deadlocks_obj = _get_deadlock_obj(deadlocks_collection_instance) root = ET.fromstring(test_xml) deadlocks_obj._obfuscate_xml(root) result_string = ET.tostring(root, encoding='unicode') result_string = result_string.replace('\t', '').replace('\n', '') result_string = re.sub(r'\s{2,}', ' ', result_string) assert expected_xml_string == result_string - - -def test__get_lookback_seconds(deadlocks_collection_instance): - deadlocks_obj = get_deadlock_obj(deadlocks_collection_instance) - deadlocks_obj._last_deadlock_timestamp = 100 - lookback_seconds = deadlocks_obj._get_lookback_seconds() - assert isinstance(lookback_seconds, float), "Should return a float" diff --git a/sqlserver/tests/test_integration.py b/sqlserver/tests/test_integration.py index 152344a5dd997..2ad9129c52b02 100644 --- a/sqlserver/tests/test_integration.py +++ b/sqlserver/tests/test_integration.py @@ -4,6 +4,7 @@ import logging from copy import copy, deepcopy +import mock import pytest from datadog_checks.sqlserver import SQLServer @@ -42,7 +43,6 @@ def test_check_invalid_password(aggregator, dd_run_check, init_config, instance_docker): instance_docker['password'] = 'FOO' sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker]) - instance_tags = instance_docker.get('tags', []) with pytest.raises(SQLConnectionError) as excinfo: sqlserver_check.initialize_connection() @@ -55,7 +55,7 @@ def test_check_invalid_password(aggregator, dd_run_check, init_config, instance_ 'db:master', 'connection_host:{}'.format(instance_docker.get('host')), ] - + instance_tags, + + sqlserver_check._config.tags, message=str(excinfo.value), ) @@ -92,7 +92,7 @@ def test_check_docker(aggregator, dd_run_check, init_config, instance_docker, da instance_docker['autodiscovery_include'] = autodiscovery_dbs sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker]) dd_run_check(sqlserver_check) - expected_tags = instance_docker.get('tags', []) + [ + expected_tags = sqlserver_check._config.tags + [ 'connection_host:{}'.format(instance_docker.get('host')), 'sqlserver_host:{}'.format(sqlserver_check.resolved_hostname), 'db:master', @@ -100,7 +100,7 @@ def test_check_docker(aggregator, dd_run_check, init_config, instance_docker, da assert_metrics( instance_docker, aggregator, - check_tags=instance_docker.get('tags', []), + check_tags=sqlserver_check._config.tags, service_tags=expected_tags, dbm_enabled=dbm_enabled, hostname=sqlserver_check.resolved_hostname, @@ -119,7 +119,7 @@ def test_check_stored_procedure(aggregator, dd_run_check, init_config, instance_ sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker]) dd_run_check(sqlserver_check) - expected_tags = instance_docker.get('tags', []) + sp_tags.split(',') + expected_tags = sqlserver_check._config.tags + sp_tags.split(',') aggregator.assert_metric('sql.sp.testa', value=100, tags=expected_tags, count=1) aggregator.assert_metric('sql.sp.testb', tags=expected_tags, count=2) @@ -145,7 +145,7 @@ def test_check_stored_procedure_proc_if(aggregator, dd_run_check, init_config, i def test_custom_metrics_object_name(aggregator, dd_run_check, init_config_object_name, instance_docker): sqlserver_check = SQLServer(CHECK_NAME, init_config_object_name, [instance_docker]) dd_run_check(sqlserver_check) - instance_tags = instance_docker.get('tags', []) + ['optional_tag:tag1'] + instance_tags = sqlserver_check._config.tags + ['optional_tag:tag1'] aggregator.assert_metric('sqlserver.cache.hit_ratio', tags=instance_tags, count=1) aggregator.assert_metric('sqlserver.broker_activation.tasks_running', tags=instance_tags, count=1) @@ -158,7 +158,7 @@ def test_custom_metrics_alt_tables(aggregator, dd_run_check, init_config_alt_tab sqlserver_check = SQLServer(CHECK_NAME, init_config_alt_tables, [instance_docker]) dd_run_check(sqlserver_check) - instance_tags = instance_docker.get('tags', []) + instance_tags = sqlserver_check._config.tags aggregator.assert_metric('sqlserver.LCK_M_S.max_wait_time_ms', tags=instance_tags, count=1) aggregator.assert_metric('sqlserver.LCK_M_S.signal_wait_time_ms', tags=instance_tags, count=1) @@ -187,7 +187,7 @@ def test_autodiscovery_database_metrics(aggregator, dd_run_check, instance_autod instance_autodiscovery['autodiscovery_include'] = ['master', 'msdb'] check = SQLServer(CHECK_NAME, {}, [instance_autodiscovery]) dd_run_check(check) - instance_tags = instance_autodiscovery.get('tags', []) + instance_tags = check._config.tags master_tags = [ 'database:master', @@ -228,7 +228,7 @@ def test_autodiscovery_db_service_checks( instance_autodiscovery['autodiscovery_db_service_check'] = service_check_enabled check = SQLServer(CHECK_NAME, {}, [instance_autodiscovery]) dd_run_check(check) - instance_tags = instance_autodiscovery.get('tags', []) + instance_tags = check._config.tags # verify that the old status check returns OK aggregator.assert_service_check( @@ -279,7 +279,7 @@ def test_autodiscovery_exclude_db_service_checks(aggregator, dd_run_check, insta instance_autodiscovery['autodiscovery_include'] = ['master'] instance_autodiscovery['autodiscovery_exclude'] = ['msdb'] check = SQLServer(CHECK_NAME, {}, [instance_autodiscovery]) - instance_tags = instance_autodiscovery.get('tags', []) + instance_tags = check._config.tags dd_run_check(check) @@ -323,7 +323,7 @@ def test_autodiscovery_perf_counters(aggregator, dd_run_check, instance_autodisc instance_autodiscovery['autodiscovery_include'] = ['master', 'msdb'] check = SQLServer(CHECK_NAME, {}, [instance_autodiscovery]) dd_run_check(check) - instance_tags = instance_autodiscovery.get('tags', []) + instance_tags = check._config.tags expected_metrics = [m[0] for m in INSTANCE_METRICS_DATABASE_SINGLE] master_tags = ['database:master'] + instance_tags @@ -340,7 +340,7 @@ def test_autodiscovery_perf_counters_ao(aggregator, dd_run_check, instance_autod instance_autodiscovery['autodiscovery_include'] = ['datadog_test-1'] check = SQLServer(CHECK_NAME, {}, [instance_autodiscovery]) dd_run_check(check) - instance_tags = instance_autodiscovery.get('tags', []) + instance_tags = check._config.tags expected_metrics = [m[0] for m in INSTANCE_METRICS_DATABASE] tags = ['database:datadog_test-1'] + instance_tags @@ -428,7 +428,7 @@ def test_custom_queries(aggregator, dd_run_check, instance_docker, custom_query, for metric_name, kwargs in assert_metrics: kwargs = copy(kwargs) - kwargs['tags'] = instance['tags'] + kwargs.get('tags', []) + kwargs['tags'] = check._config.tags + kwargs.get('tags', []) aggregator.assert_metric(metric_name, **kwargs) @@ -804,10 +804,59 @@ def execute_query(query, params): check = SQLServer(CHECK_NAME, {}, [instance_docker]) dd_run_check(check) - expected_tags = instance_docker.get('tags', []) + [ + expected_tags = check._config.tags + [ 'db:datadog_test-1', 'table:ϑings', 'index_name:thingsindex', ] for m in DATABASE_INDEX_METRICS: aggregator.assert_metric(m, tags=expected_tags, count=1) + + +@pytest.mark.parametrize( + 'instance_propagate_agent_tags,init_config_propagate_agent_tags,should_propagate_agent_tags', + [ + pytest.param(True, True, True, id="both true"), + pytest.param(True, False, True, id="instance config true prevails"), + pytest.param(False, True, False, id="instance config false prevails"), + pytest.param(False, False, False, id="both false"), + pytest.param(None, True, True, id="init_config true applies to all instances"), + pytest.param(None, False, False, id="init_config false applies to all instances"), + pytest.param(None, None, False, id="default to false"), + pytest.param(True, None, True, id="instance config true prevails, init_config is None"), + pytest.param(False, None, False, id="instance config false prevails, init_config is None"), + ], +) +@pytest.mark.integration +def test_propagate_agent_tags( + aggregator, + dd_run_check, + instance_docker, + instance_propagate_agent_tags, + init_config_propagate_agent_tags, + should_propagate_agent_tags, +): + init_config = {} + if instance_propagate_agent_tags is not None: + instance_docker['propagate_agent_tags'] = instance_propagate_agent_tags + if init_config_propagate_agent_tags is not None: + init_config['propagate_agent_tags'] = init_config_propagate_agent_tags + + agent_tags = ['my-env:test-env', 'random:tag', 'bar:foo'] + + with mock.patch('datadog_checks.sqlserver.config.get_agent_host_tags', return_value=agent_tags): + check = SQLServer(CHECK_NAME, init_config, [instance_docker]) + assert check._config._should_propagate_agent_tags(instance_docker, init_config) == should_propagate_agent_tags + if should_propagate_agent_tags: + assert all(tag in check.tags for tag in agent_tags) + dd_run_check(check) + expected_tags = check._config.tags + [ + 'connection_host:{}'.format(instance_docker.get('host')), + 'sqlserver_host:{}'.format(check.resolved_hostname), + 'db:master', + ] + aggregator.assert_service_check( + 'sqlserver.can_connect', + status=SQLServer.OK, + tags=expected_tags, + ) diff --git a/sqlserver/tests/test_metrics.py b/sqlserver/tests/test_metrics.py index 9cd60b1aa92bf..c6e655eff51e8 100644 --- a/sqlserver/tests/test_metrics.py +++ b/sqlserver/tests/test_metrics.py @@ -57,7 +57,7 @@ def test_check_server_metrics( sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker_metrics]) dd_run_check(sqlserver_check) - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags check_sqlserver_can_connect(aggregator, instance_docker_metrics['host'], sqlserver_check.resolved_hostname, tags) @@ -83,7 +83,7 @@ def test_check_instance_metrics( sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker_metrics]) dd_run_check(sqlserver_check) - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags check_sqlserver_can_connect( aggregator, instance_docker_metrics['host'], sqlserver_check.resolved_hostname, tags, False @@ -119,7 +119,7 @@ def test_check_instance_metrics_autodiscovery( sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker_metrics]) dd_run_check(sqlserver_check) - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags check_sqlserver_can_connect( aggregator, instance_docker_metrics['host'], sqlserver_check.resolved_hostname, tags, True @@ -167,7 +167,7 @@ def test_check_database_metrics( sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker_metrics]) dd_run_check(sqlserver_check) - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags check_sqlserver_can_connect( aggregator, instance_docker_metrics['host'], sqlserver_check.resolved_hostname, tags, database_autodiscovery @@ -246,7 +246,7 @@ def test_check_index_usage_metrics( sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker_metrics]) dd_run_check(sqlserver_check) - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags check_sqlserver_can_connect(aggregator, instance_docker_metrics['host'], sqlserver_check.resolved_hostname, tags) @@ -272,7 +272,7 @@ def test_check_task_scheduler_metrics( sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker_metrics]) dd_run_check(sqlserver_check) - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags check_sqlserver_can_connect(aggregator, instance_docker_metrics['host'], sqlserver_check.resolved_hostname, tags) @@ -300,7 +300,7 @@ def test_check_master_files_metrics( sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker_metrics]) dd_run_check(sqlserver_check) - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags check_sqlserver_can_connect(aggregator, instance_docker_metrics['host'], sqlserver_check.resolved_hostname, tags) @@ -339,7 +339,7 @@ def test_check_db_fragmentation_metrics( sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker_metrics]) dd_run_check(sqlserver_check) - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags check_sqlserver_can_connect( aggregator, instance_docker_metrics['host'], sqlserver_check.resolved_hostname, tags, database_autodiscovery @@ -369,7 +369,7 @@ def test_check_tempdb_file_space_usage_metrics( sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker_metrics]) dd_run_check(sqlserver_check) - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags check_sqlserver_can_connect(aggregator, instance_docker_metrics['host'], sqlserver_check.resolved_hostname, tags) @@ -423,7 +423,7 @@ def test_check_incr_fraction_metrics( sqlserver_check.run() cursor.close() - tags = instance_docker_metrics.get('tags', []) + tags = sqlserver_check._config.tags check_sqlserver_can_connect(aggregator, instance_docker_metrics['host'], sqlserver_check.resolved_hostname, tags) diff --git a/sqlserver/tests/test_statements.py b/sqlserver/tests/test_statements.py index ee8f3a7599b2f..f2d41ab1aae61 100644 --- a/sqlserver/tests/test_statements.py +++ b/sqlserver/tests/test_statements.py @@ -439,7 +439,7 @@ def test_statement_metrics_and_plans( aggregator.assert_metric( OPERATION_TIME_METRIC_NAME, tags=['agent_hostname:stubbed.hostname', 'operation:collect_statement_metrics_and_plans'] - + _expected_dbm_instance_tags(dbm_instance), + + _expected_dbm_instance_tags(check), ) @@ -768,7 +768,7 @@ def _mock_slow_load_plan(*_): mock_obj.side_effect = _mock_slow_load_plan dd_run_check(check) - expected_debug_tags = ['agent_hostname:stubbed.hostname'] + _expected_dbm_instance_tags(dbm_instance) + expected_debug_tags = ['agent_hostname:stubbed.hostname'] + _expected_dbm_instance_tags(check) if slow_plans: aggregator.assert_metric("dd.sqlserver.statements.deadline_exceeded", tags=expected_debug_tags) @@ -817,8 +817,8 @@ def test_obfuscate_xml_plan(test_file, obfuscated_file, datadog_agent): PORT = 1432 -def _expected_dbm_instance_tags(dbm_instance): - return dbm_instance['tags'] +def _expected_dbm_instance_tags(check): + return check._config.tags @pytest.mark.parametrize("statement_metrics_enabled", [True, False]) @@ -843,7 +843,7 @@ def test_async_job_inactive_stop(aggregator, dd_run_check, dbm_instance): check.statement_metrics._job_loop_future.result() aggregator.assert_metric( "dd.sqlserver.async_job.inactive_stop", - tags=['job:query-metrics'] + _expected_dbm_instance_tags(dbm_instance), + tags=['job:query-metrics'] + _expected_dbm_instance_tags(check), hostname='', ) @@ -862,7 +862,7 @@ def test_async_job_cancel_cancel(aggregator, dd_run_check, dbm_instance): # be created in the first place aggregator.assert_metric( "dd.sqlserver.async_job.cancel", - tags=_expected_dbm_instance_tags(dbm_instance) + ['job:query-metrics'], + tags=_expected_dbm_instance_tags(check) + ['job:query-metrics'], ) diff --git a/sqlserver/tests/test_stored_procedures.py b/sqlserver/tests/test_stored_procedures.py index ebc1588e8c3e7..ce310e8c52030 100644 --- a/sqlserver/tests/test_stored_procedures.py +++ b/sqlserver/tests/test_stored_procedures.py @@ -38,8 +38,8 @@ logger = logging.getLogger(__name__) -def _expected_dbm_instance_tags(dbm_instance): - return dbm_instance['tags'] +def _expected_dbm_instance_tags(check): + return check._config.tags @pytest.fixture(autouse=True) @@ -285,7 +285,7 @@ def test_procedure_metrics( aggregator.assert_metric( OPERATION_TIME_METRIC_NAME, tags=['agent_hostname:stubbed.hostname', 'operation:collect_procedure_metrics'] - + _expected_dbm_instance_tags(dbm_instance), + + _expected_dbm_instance_tags(check), ) @@ -344,9 +344,12 @@ def test_async_job_inactive_stop(aggregator, dd_run_check, dbm_instance): check = SQLServer(CHECK_NAME, {}, [dbm_instance]) dd_run_check(check) check.procedure_metrics._job_loop_future.result() + print("natasha heree") + print(['job:procedure-metrics'] + _expected_dbm_instance_tags(check)) + print(['job:procedure-metrics'] + check._config.tags) aggregator.assert_metric( "dd.sqlserver.async_job.inactive_stop", - tags=['job:procedure-metrics'] + _expected_dbm_instance_tags(dbm_instance), + tags=['job:procedure-metrics'] + check._config.tags, hostname='', ) @@ -365,5 +368,5 @@ def test_async_job_cancel_cancel(aggregator, dd_run_check, dbm_instance): # be created in the first place aggregator.assert_metric( "dd.sqlserver.async_job.cancel", - tags=_expected_dbm_instance_tags(dbm_instance) + ['job:procedure-metrics'], + tags=_expected_dbm_instance_tags(check) + ['job:procedure-metrics'], ) diff --git a/sqlserver/tests/test_unit.py b/sqlserver/tests/test_unit.py index 4aadfa462af2f..071c59c9db504 100644 --- a/sqlserver/tests/test_unit.py +++ b/sqlserver/tests/test_unit.py @@ -479,7 +479,7 @@ def test_set_default_driver_conf_linux(): def test_check_local(aggregator, dd_run_check, init_config, instance_docker): sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker]) dd_run_check(sqlserver_check) - check_tags = instance_docker.get('tags', []) + check_tags = sqlserver_check._config.tags expected_tags = check_tags + [ 'sqlserver_host:{}'.format(sqlserver_check.resolved_hostname), 'connection_host:{}'.format(DOCKER_SERVER), @@ -528,7 +528,7 @@ def test_database_state(aggregator, dd_run_check, init_config, instance_docker): instance_docker['database'] = 'mAsTeR' sqlserver_check = SQLServer(CHECK_NAME, init_config, [instance_docker]) dd_run_check(sqlserver_check) - expected_tags = instance_docker.get('tags', []) + [ + expected_tags = sqlserver_check._config.tags + [ 'database_recovery_model_desc:SIMPLE', 'database_state_desc:ONLINE', 'database:{}'.format(instance_docker['database']), diff --git a/squid/CHANGELOG.md b/squid/CHANGELOG.md index 58787027a933b..bb5c5e0f7be38 100644 --- a/squid/CHANGELOG.md +++ b/squid/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.5.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/squid/datadog_checks/squid/__about__.py b/squid/datadog_checks/squid/__about__.py index 35536e04fb1a9..5778c5423a6b0 100644 --- a/squid/datadog_checks/squid/__about__.py +++ b/squid/datadog_checks/squid/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "2.5.1" +__version__ = "3.0.0" diff --git a/ssh_check/CHANGELOG.md b/ssh_check/CHANGELOG.md index de46becb38377..c8cb2f35b21c5 100644 --- a/ssh_check/CHANGELOG.md +++ b/ssh_check/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.10.0 / 2024-09-05 ***Added***: diff --git a/ssh_check/datadog_checks/ssh_check/__about__.py b/ssh_check/datadog_checks/ssh_check/__about__.py index ea704491b659b..09adcddf171c4 100644 --- a/ssh_check/datadog_checks/ssh_check/__about__.py +++ b/ssh_check/datadog_checks/ssh_check/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.10.0' +__version__ = '3.0.0' diff --git a/statsd/CHANGELOG.md b/statsd/CHANGELOG.md index 7d84bf5256f72..4954489342b85 100644 --- a/statsd/CHANGELOG.md +++ b/statsd/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.12.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/statsd/datadog_checks/statsd/__about__.py b/statsd/datadog_checks/statsd/__about__.py index 0bcccfd8cfe20..0e2ebd5e4631b 100644 --- a/statsd/datadog_checks/statsd/__about__.py +++ b/statsd/datadog_checks/statsd/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.12.0' +__version__ = '2.0.0' diff --git a/strimzi/CHANGELOG.md b/strimzi/CHANGELOG.md index b59c5e81623fc..e13de5a62174e 100644 --- a/strimzi/CHANGELOG.md +++ b/strimzi/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/strimzi/datadog_checks/strimzi/__about__.py b/strimzi/datadog_checks/strimzi/__about__.py index d952686b44b52..9d7317788718b 100644 --- a/strimzi/datadog_checks/strimzi/__about__.py +++ b/strimzi/datadog_checks/strimzi/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.2' +__version__ = '3.0.0' diff --git a/supervisord/CHANGELOG.md b/supervisord/CHANGELOG.md index e660d59ec4629..630815c3b0b0c 100644 --- a/supervisord/CHANGELOG.md +++ b/supervisord/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.6.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/supervisord/datadog_checks/supervisord/__about__.py b/supervisord/datadog_checks/supervisord/__about__.py index c67fa5db0dff4..09adcddf171c4 100644 --- a/supervisord/datadog_checks/supervisord/__about__.py +++ b/supervisord/datadog_checks/supervisord/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.6.0' +__version__ = '3.0.0' diff --git a/suricata/CHANGELOG.md b/suricata/CHANGELOG.md index 90e1f8cd7e3bf..f0d97588867bd 100644 --- a/suricata/CHANGELOG.md +++ b/suricata/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.0 / 2024-08-09 / Agent 7.57.0 ***Added***: diff --git a/suricata/datadog_checks/suricata/__about__.py b/suricata/datadog_checks/suricata/__about__.py index acbfd1c866b84..cc393c1dad9ce 100644 --- a/suricata/datadog_checks/suricata/__about__.py +++ b/suricata/datadog_checks/suricata/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.0' +__version__ = '2.0.0' diff --git a/system_core/CHANGELOG.md b/system_core/CHANGELOG.md index e89b094a4c550..62f33e7b67049 100644 --- a/system_core/CHANGELOG.md +++ b/system_core/CHANGELOG.md @@ -2,6 +2,16 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Upgrade psutil to 6.0.0 to fix performance issues addressed ([#18688](https://github.com/DataDog/integrations-core/pull/18688)) + ## 2.5.0 / 2024-09-05 ***Added***: diff --git a/system_core/changelog.d/18688.added b/system_core/changelog.d/18688.added deleted file mode 100644 index 30f2555bc26eb..0000000000000 --- a/system_core/changelog.d/18688.added +++ /dev/null @@ -1 +0,0 @@ -Upgrade psutil to 6.0.0 to fix performance issues addressed \ No newline at end of file diff --git a/system_core/datadog_checks/system_core/__about__.py b/system_core/datadog_checks/system_core/__about__.py index 72639401021d6..09adcddf171c4 100644 --- a/system_core/datadog_checks/system_core/__about__.py +++ b/system_core/datadog_checks/system_core/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.5.0' +__version__ = '3.0.0' diff --git a/system_swap/CHANGELOG.md b/system_swap/CHANGELOG.md index aa1cbda62acad..9a5b7417436e0 100644 --- a/system_swap/CHANGELOG.md +++ b/system_swap/CHANGELOG.md @@ -2,6 +2,16 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Added***: + +* Upgrade psutil to 6.0.0 to fix performance issues addressed ([#18688](https://github.com/DataDog/integrations-core/pull/18688)) + ## 1.19.0 / 2024-09-05 ***Added***: diff --git a/system_swap/changelog.d/18688.added b/system_swap/changelog.d/18688.added deleted file mode 100644 index 30f2555bc26eb..0000000000000 --- a/system_swap/changelog.d/18688.added +++ /dev/null @@ -1 +0,0 @@ -Upgrade psutil to 6.0.0 to fix performance issues addressed \ No newline at end of file diff --git a/system_swap/datadog_checks/system_swap/__about__.py b/system_swap/datadog_checks/system_swap/__about__.py index 020465cf74402..0e2ebd5e4631b 100644 --- a/system_swap/datadog_checks/system_swap/__about__.py +++ b/system_swap/datadog_checks/system_swap/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.19.0' +__version__ = '2.0.0' diff --git a/tcp_check/CHANGELOG.md b/tcp_check/CHANGELOG.md index cc48bc655f151..743ce2fdc010a 100644 --- a/tcp_check/CHANGELOG.md +++ b/tcp_check/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.9.0 / 2024-07-05 / Agent 7.56.0 ***Added***: diff --git a/tcp_check/datadog_checks/tcp_check/__about__.py b/tcp_check/datadog_checks/tcp_check/__about__.py index f829dc1b86763..d2601db5d5cc0 100644 --- a/tcp_check/datadog_checks/tcp_check/__about__.py +++ b/tcp_check/datadog_checks/tcp_check/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.9.0' +__version__ = '5.0.0' diff --git a/teamcity/CHANGELOG.md b/teamcity/CHANGELOG.md index d3ea52bf356e1..c0db9039959d1 100644 --- a/teamcity/CHANGELOG.md +++ b/teamcity/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.3.1 / 2024-08-09 / Agent 7.57.0 ***Fixed***: diff --git a/teamcity/datadog_checks/teamcity/__about__.py b/teamcity/datadog_checks/teamcity/__about__.py index 7439f0ab6e555..b033d7b5bb770 100644 --- a/teamcity/datadog_checks/teamcity/__about__.py +++ b/teamcity/datadog_checks/teamcity/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "4.3.1" +__version__ = "5.0.0" diff --git a/tekton/CHANGELOG.md b/tekton/CHANGELOG.md index 0a4bf7722a6b3..05753438b226a 100644 --- a/tekton/CHANGELOG.md +++ b/tekton/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/tekton/datadog_checks/tekton/__about__.py b/tekton/datadog_checks/tekton/__about__.py index 1436e0ab91c45..cc393c1dad9ce 100644 --- a/tekton/datadog_checks/tekton/__about__.py +++ b/tekton/datadog_checks/tekton/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.2' +__version__ = '2.0.0' diff --git a/teleport/CHANGELOG.md b/teleport/CHANGELOG.md index 7147435656fd8..b1545140369a3 100644 --- a/teleport/CHANGELOG.md +++ b/teleport/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.1.0 / 2024-09-05 ***Added***: diff --git a/teleport/datadog_checks/teleport/__about__.py b/teleport/datadog_checks/teleport/__about__.py index 3107e4c7e8bc8..cc393c1dad9ce 100644 --- a/teleport/datadog_checks/teleport/__about__.py +++ b/teleport/datadog_checks/teleport/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.1.0' +__version__ = '2.0.0' diff --git a/temporal/CHANGELOG.md b/temporal/CHANGELOG.md index a6c513067e1ca..be46bf6ad22fb 100644 --- a/temporal/CHANGELOG.md +++ b/temporal/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.3.0 / 2024-08-09 / Agent 7.57.0 ***Added***: diff --git a/temporal/datadog_checks/temporal/__about__.py b/temporal/datadog_checks/temporal/__about__.py index 9d6d3767f6982..9d7317788718b 100644 --- a/temporal/datadog_checks/temporal/__about__.py +++ b/temporal/datadog_checks/temporal/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.3.0' +__version__ = '3.0.0' diff --git a/tenable/CHANGELOG.md b/tenable/CHANGELOG.md index 17e0b690f48b8..bbaeb12bdbef8 100644 --- a/tenable/CHANGELOG.md +++ b/tenable/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.5.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/tenable/datadog_checks/tenable/__about__.py b/tenable/datadog_checks/tenable/__about__.py index c91765ea0dd55..9c6b2fb79e5ac 100644 --- a/tenable/datadog_checks/tenable/__about__.py +++ b/tenable/datadog_checks/tenable/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.5.0' +__version__ = '2.0.0' diff --git a/teradata/CHANGELOG.md b/teradata/CHANGELOG.md index de8c8fa9c2dc6..c8dfa0195ce94 100644 --- a/teradata/CHANGELOG.md +++ b/teradata/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/teradata/datadog_checks/teradata/__about__.py b/teradata/datadog_checks/teradata/__about__.py index ba014f7154f24..c1405a3ef0291 100644 --- a/teradata/datadog_checks/teradata/__about__.py +++ b/teradata/datadog_checks/teradata/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '3.0.0' diff --git a/terraform/README.md b/terraform/README.md index 4e1c3057a3e24..fb5abfc506b3a 100644 --- a/terraform/README.md +++ b/terraform/README.md @@ -33,9 +33,12 @@ The Datadog Terraform provider is available through the [Terraform Registry][1]. **Note**: If you are not using the Datadog US1 site, you must set the `api_url` [optional parameter][7] with your [Datadog site][6]. Ensure the documentation site selector on the right of the page is set to your correct Datadog site, then use the following URL as the value of the `api_url` parameter: + + 4. Run `terraform init`. This initializes the directory for use with Terraform and pulls the Datadog provider. 5. Create any `.tf` file in the `terraform_config/` directory and start creating Datadog resources. diff --git a/tibco_ems/CHANGELOG.md b/tibco_ems/CHANGELOG.md index ceb88502d3d17..7fe45fbb57425 100644 --- a/tibco_ems/CHANGELOG.md +++ b/tibco_ems/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.0 / 2024-08-09 / Agent 7.57.0 ***Added***: diff --git a/tibco_ems/README.md b/tibco_ems/README.md index 1cbb731862c48..f6fd38fa81118 100644 --- a/tibco_ems/README.md +++ b/tibco_ems/README.md @@ -27,12 +27,13 @@ The Tibco EMS integration utilizes the `tibemsadmin` CLI tool provided by Tibco *Note*: The `dd-agent` user needs execute permissions on the `tibemsadmin` binary. 1. Create a file named `show_commands` with the following contents: ```text - show server + show connections full + show durables show queues - show topics + show server show stat consumers show stat producers - show connections full + show topics ``` diff --git a/tibco_ems/datadog_checks/tibco_ems/__about__.py b/tibco_ems/datadog_checks/tibco_ems/__about__.py index acbfd1c866b84..cc393c1dad9ce 100644 --- a/tibco_ems/datadog_checks/tibco_ems/__about__.py +++ b/tibco_ems/datadog_checks/tibco_ems/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.0' +__version__ = '2.0.0' diff --git a/tls/CHANGELOG.md b/tls/CHANGELOG.md index e793d9fa2efe1..3c79348d30b7e 100644 --- a/tls/CHANGELOG.md +++ b/tls/CHANGELOG.md @@ -2,6 +2,16 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + +***Security***: + +* Bump version of cryptography to 43.0.1 to address vulnerability ([#18656](https://github.com/DataDog/integrations-core/pull/18656)) + ## 2.20.0 / 2024-09-05 ***Added***: diff --git a/tls/changelog.d/18656.security b/tls/changelog.d/18656.security deleted file mode 100644 index ad676917cac26..0000000000000 --- a/tls/changelog.d/18656.security +++ /dev/null @@ -1 +0,0 @@ -Bump version of cryptography to 43.0.1 to address vulnerability \ No newline at end of file diff --git a/tls/datadog_checks/tls/__about__.py b/tls/datadog_checks/tls/__about__.py index ace0ed01166ed..f046338059ddf 100644 --- a/tls/datadog_checks/tls/__about__.py +++ b/tls/datadog_checks/tls/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.20.0' +__version__ = '3.0.0' diff --git a/tomcat/CHANGELOG.md b/tomcat/CHANGELOG.md index ed7fa3d458a0e..0460b6f48c539 100644 --- a/tomcat/CHANGELOG.md +++ b/tomcat/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.0.0 / 2024-02-16 / Agent 7.52.0 ***Removed***: diff --git a/tomcat/datadog_checks/tomcat/__about__.py b/tomcat/datadog_checks/tomcat/__about__.py index 0e2ebd5e4631b..09adcddf171c4 100644 --- a/tomcat/datadog_checks/tomcat/__about__.py +++ b/tomcat/datadog_checks/tomcat/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.0.0' +__version__ = '3.0.0' diff --git a/torchserve/CHANGELOG.md b/torchserve/CHANGELOG.md index f474da5017093..9740cab40950f 100644 --- a/torchserve/CHANGELOG.md +++ b/torchserve/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.2 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/torchserve/datadog_checks/torchserve/__about__.py b/torchserve/datadog_checks/torchserve/__about__.py index d952686b44b52..9d7317788718b 100644 --- a/torchserve/datadog_checks/torchserve/__about__.py +++ b/torchserve/datadog_checks/torchserve/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.2' +__version__ = '3.0.0' diff --git a/traefik_mesh/CHANGELOG.md b/traefik_mesh/CHANGELOG.md index 89f9e1e5118b7..3d7149505cf56 100644 --- a/traefik_mesh/CHANGELOG.md +++ b/traefik_mesh/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/traefik_mesh/datadog_checks/traefik_mesh/__about__.py b/traefik_mesh/datadog_checks/traefik_mesh/__about__.py index e0db4e56d553f..cc393c1dad9ce 100644 --- a/traefik_mesh/datadog_checks/traefik_mesh/__about__.py +++ b/traefik_mesh/datadog_checks/traefik_mesh/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.1' +__version__ = '2.0.0' diff --git a/traffic_server/CHANGELOG.md b/traffic_server/CHANGELOG.md index 06e8f188cf62e..e1e4f370caced 100644 --- a/traffic_server/CHANGELOG.md +++ b/traffic_server/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/traffic_server/datadog_checks/traffic_server/__about__.py b/traffic_server/datadog_checks/traffic_server/__about__.py index ba014f7154f24..c1405a3ef0291 100644 --- a/traffic_server/datadog_checks/traffic_server/__about__.py +++ b/traffic_server/datadog_checks/traffic_server/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2022-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.2.1' +__version__ = '3.0.0' diff --git a/twemproxy/CHANGELOG.md b/twemproxy/CHANGELOG.md index 6b7aa824c74e0..179918687fd63 100644 --- a/twemproxy/CHANGELOG.md +++ b/twemproxy/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.15.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/twemproxy/datadog_checks/twemproxy/__about__.py b/twemproxy/datadog_checks/twemproxy/__about__.py index 0e2bc200de9ce..0e2ebd5e4631b 100644 --- a/twemproxy/datadog_checks/twemproxy/__about__.py +++ b/twemproxy/datadog_checks/twemproxy/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.15.0' +__version__ = '2.0.0' diff --git a/twistlock/CHANGELOG.md b/twistlock/CHANGELOG.md index 74a8dcfc00523..1d6da2d747709 100644 --- a/twistlock/CHANGELOG.md +++ b/twistlock/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.6.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/twistlock/datadog_checks/twistlock/__about__.py b/twistlock/datadog_checks/twistlock/__about__.py index b5219bf68380c..78967d676d1af 100644 --- a/twistlock/datadog_checks/twistlock/__about__.py +++ b/twistlock/datadog_checks/twistlock/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.6.1' +__version__ = '4.0.0' diff --git a/varnish/CHANGELOG.md b/varnish/CHANGELOG.md index 19110722af534..9a93bc5ed8ecf 100644 --- a/varnish/CHANGELOG.md +++ b/varnish/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.1.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/varnish/datadog_checks/varnish/__about__.py b/varnish/datadog_checks/varnish/__about__.py index e32e4bc3b0a3a..5778c5423a6b0 100644 --- a/varnish/datadog_checks/varnish/__about__.py +++ b/varnish/datadog_checks/varnish/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "2.1.0" +__version__ = "3.0.0" diff --git a/vault/CHANGELOG.md b/vault/CHANGELOG.md index b1cfe64c077f3..227b4101eea6f 100644 --- a/vault/CHANGELOG.md +++ b/vault/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.2.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/vault/datadog_checks/vault/__about__.py b/vault/datadog_checks/vault/__about__.py index 40fe88961bf3c..d2601db5d5cc0 100644 --- a/vault/datadog_checks/vault/__about__.py +++ b/vault/datadog_checks/vault/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.2.1' +__version__ = '5.0.0' diff --git a/vertica/CHANGELOG.md b/vertica/CHANGELOG.md index d679d48eb238e..e7ea09620e005 100644 --- a/vertica/CHANGELOG.md +++ b/vertica/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.6.0 / 2024-08-09 / Agent 7.57.0 ***Added***: diff --git a/vertica/datadog_checks/vertica/__about__.py b/vertica/datadog_checks/vertica/__about__.py index 639bc6d324a1c..59ccab2a77ff8 100644 --- a/vertica/datadog_checks/vertica/__about__.py +++ b/vertica/datadog_checks/vertica/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2019-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.6.0' +__version__ = '5.0.0' diff --git a/vllm/CHANGELOG.md b/vllm/CHANGELOG.md index f8ae7bbb4da19..489b9f782b024 100644 --- a/vllm/CHANGELOG.md +++ b/vllm/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.0.0 / 2024-07-05 / Agent 7.56.0 ***Added***: diff --git a/vllm/datadog_checks/vllm/__about__.py b/vllm/datadog_checks/vllm/__about__.py index acbfd1c866b84..cc393c1dad9ce 100644 --- a/vllm/datadog_checks/vllm/__about__.py +++ b/vllm/datadog_checks/vllm/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2024-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.0.0' +__version__ = '2.0.0' diff --git a/voltdb/CHANGELOG.md b/voltdb/CHANGELOG.md index e167815ca6a0d..13547b5401255 100644 --- a/voltdb/CHANGELOG.md +++ b/voltdb/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.2.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/voltdb/datadog_checks/voltdb/__about__.py b/voltdb/datadog_checks/voltdb/__about__.py index 67f71490f3537..bcf02753eab69 100644 --- a/voltdb/datadog_checks/voltdb/__about__.py +++ b/voltdb/datadog_checks/voltdb/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2020-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.2.1' +__version__ = '4.0.0' diff --git a/vsphere/CHANGELOG.md b/vsphere/CHANGELOG.md index 501e081afdb32..0bbaab575c36d 100644 --- a/vsphere/CHANGELOG.md +++ b/vsphere/CHANGELOG.md @@ -18,6 +18,12 @@ * Fixed excluded host tags for property metrics ([#18601](https://github.com/DataDog/integrations-core/pull/18601)) * Bump the version of datadog-checks-base to 37.0.0 ([#18617](https://github.com/DataDog/integrations-core/pull/18617)) +## 7.7.0 / 2024-10-01 / 7.58.0 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 7.6.0 / 2024-07-05 / Agent 7.56.0 ***Added***: diff --git a/vsphere/changelog.d/18774.fixed b/vsphere/changelog.d/18774.fixed new file mode 100644 index 0000000000000..086ac6f120411 --- /dev/null +++ b/vsphere/changelog.d/18774.fixed @@ -0,0 +1 @@ +Add debug log line for host tags. \ No newline at end of file diff --git a/vsphere/datadog_checks/vsphere/vsphere.py b/vsphere/datadog_checks/vsphere/vsphere.py index 91f46c8a150d7..c5c5d6fd5b74d 100644 --- a/vsphere/datadog_checks/vsphere/vsphere.py +++ b/vsphere/datadog_checks/vsphere/vsphere.py @@ -616,6 +616,7 @@ def submit_external_host_tags(self): mor_tags = mor_props['tags'] + mor_tags tags = [t for t in mor_tags if t.split(':')[0] not in self._config.excluded_host_tags] tags.extend(self._config.base_tags) + self.log.debug("Submitting host tags for %s: %s", hostname, tags) external_host_tags.append((hostname, {self.__NAMESPACE__: tags})) if external_host_tags: diff --git a/weaviate/CHANGELOG.md b/weaviate/CHANGELOG.md index 688a9efc2a317..bed545d56b99e 100644 --- a/weaviate/CHANGELOG.md +++ b/weaviate/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.3.3 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/weaviate/datadog_checks/weaviate/__about__.py b/weaviate/datadog_checks/weaviate/__about__.py index 88193fe79eeab..9d7317788718b 100644 --- a/weaviate/datadog_checks/weaviate/__about__.py +++ b/weaviate/datadog_checks/weaviate/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2023-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.3.3' +__version__ = '3.0.0' diff --git a/weblogic/CHANGELOG.md b/weblogic/CHANGELOG.md index dcd410562e9b5..496ca633dcb51 100644 --- a/weblogic/CHANGELOG.md +++ b/weblogic/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.3.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/weblogic/datadog_checks/weblogic/__about__.py b/weblogic/datadog_checks/weblogic/__about__.py index 49b9c719cebde..a16255352ee20 100644 --- a/weblogic/datadog_checks/weblogic/__about__.py +++ b/weblogic/datadog_checks/weblogic/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.3.0' +__version__ = '2.0.0' diff --git a/win32_event_log/CHANGELOG.md b/win32_event_log/CHANGELOG.md index 37781d53e636c..8d7ea29763cd3 100644 --- a/win32_event_log/CHANGELOG.md +++ b/win32_event_log/CHANGELOG.md @@ -2,6 +2,12 @@ +## 4.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 3.3.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/win32_event_log/datadog_checks/win32_event_log/__about__.py b/win32_event_log/datadog_checks/win32_event_log/__about__.py index ccf4c4835eb69..c25988b9e6d8b 100644 --- a/win32_event_log/datadog_checks/win32_event_log/__about__.py +++ b/win32_event_log/datadog_checks/win32_event_log/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '3.3.0' +__version__ = '4.0.0' diff --git a/windows_performance_counters/CHANGELOG.md b/windows_performance_counters/CHANGELOG.md index 6f24ad891555c..dd522b8c4fa73 100644 --- a/windows_performance_counters/CHANGELOG.md +++ b/windows_performance_counters/CHANGELOG.md @@ -2,6 +2,12 @@ +## 3.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 2.1.1 / 2024-07-05 / Agent 7.55.0 ***Fixed***: diff --git a/windows_performance_counters/datadog_checks/windows_performance_counters/__about__.py b/windows_performance_counters/datadog_checks/windows_performance_counters/__about__.py index 5dd52425bd40b..0791a0b0a54f2 100644 --- a/windows_performance_counters/datadog_checks/windows_performance_counters/__about__.py +++ b/windows_performance_counters/datadog_checks/windows_performance_counters/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2021-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '2.1.1' +__version__ = '3.0.0' diff --git a/windows_service/CHANGELOG.md b/windows_service/CHANGELOG.md index a8c466016af62..58ad9d7b884d5 100644 --- a/windows_service/CHANGELOG.md +++ b/windows_service/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.9.1 / 2024-07-05 / Agent 7.56.0 ***Fixed***: diff --git a/windows_service/datadog_checks/windows_service/__about__.py b/windows_service/datadog_checks/windows_service/__about__.py index c8f067d197b6b..d2601db5d5cc0 100644 --- a/windows_service/datadog_checks/windows_service/__about__.py +++ b/windows_service/datadog_checks/windows_service/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.9.1' +__version__ = '5.0.0' diff --git a/wmi_check/CHANGELOG.md b/wmi_check/CHANGELOG.md index dfd0c6ce1e851..cf9b2fc2af67f 100644 --- a/wmi_check/CHANGELOG.md +++ b/wmi_check/CHANGELOG.md @@ -2,6 +2,12 @@ +## 2.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 1.18.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/wmi_check/datadog_checks/wmi_check/__about__.py b/wmi_check/datadog_checks/wmi_check/__about__.py index ce07658c6ffd9..0e2ebd5e4631b 100644 --- a/wmi_check/datadog_checks/wmi_check/__about__.py +++ b/wmi_check/datadog_checks/wmi_check/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '1.18.0' +__version__ = '2.0.0' diff --git a/yarn/CHANGELOG.md b/yarn/CHANGELOG.md index 0a14da229694c..df985aff4b383 100644 --- a/yarn/CHANGELOG.md +++ b/yarn/CHANGELOG.md @@ -2,6 +2,12 @@ +## 6.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 5.3.1 / 2024-05-31 / Agent 7.55.0 ***Fixed***: diff --git a/yarn/datadog_checks/yarn/__about__.py b/yarn/datadog_checks/yarn/__about__.py index 3cb45a781c7ec..226921537e53d 100644 --- a/yarn/datadog_checks/yarn/__about__.py +++ b/yarn/datadog_checks/yarn/__about__.py @@ -1,4 +1,4 @@ # (C) Datadog, Inc. 2018-present # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = "5.3.1" +__version__ = "6.0.0" diff --git a/zk/CHANGELOG.md b/zk/CHANGELOG.md index 4cfb8bc509120..5aa6b85d2a03f 100644 --- a/zk/CHANGELOG.md +++ b/zk/CHANGELOG.md @@ -2,6 +2,12 @@ +## 5.0.0 / 2024-10-01 + +***Changed***: + +* Bump minimum version of base check ([#18733](https://github.com/DataDog/integrations-core/pull/18733)) + ## 4.5.0 / 2024-01-05 / Agent 7.51.0 ***Added***: diff --git a/zk/datadog_checks/zk/__about__.py b/zk/datadog_checks/zk/__about__.py index 201e8c7c80fd8..d2601db5d5cc0 100644 --- a/zk/datadog_checks/zk/__about__.py +++ b/zk/datadog_checks/zk/__about__.py @@ -2,4 +2,4 @@ # All rights reserved # Licensed under a 3-clause BSD style license (see LICENSE) -__version__ = '4.5.0' +__version__ = '5.0.0'