Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
65a4a12
Introduction-of-Upstash-QStash-Dashboard-depreciation-of-Upstash-Kafk…
up-ilter Jan 16, 2026
82659fa
Introduction-of-Upstash-QStash-Dashboard-depreciation-of-Upstash-Kafk…
up-ilter Jan 16, 2026
0856ed2
Update upstash/CHANGELOG.md
up-ilter Jan 19, 2026
a688318
Update upstash/assets/dashboards/upstash_qstash_overview.json
up-ilter Jan 19, 2026
d46b237
Update upstash/assets/dashboards/upstash_qstash_overview.json
up-ilter Jan 19, 2026
4734ec0
Introduction-of-Upstash-QStash-Dashboard-depreciation-of-Upstash-Kafk…
up-ilter Jan 19, 2026
99eeccc
Introduction-of-Upstash-QStash-Dashboard-depreciation-of-Upstash-Kafk…
up-ilter Jan 19, 2026
3967085
Introduction-of-Upstash-QStash-Dashboard-depreciation-of-Upstash-Kafk…
up-ilter Jan 19, 2026
fdb8698
Introduction-of-Upstash-QStash-Dashboard-depreciation-of-Upstash-Kafk…
up-ilter Jan 19, 2026
3afa444
IDP-801: Add owner field to agent-integrations integration (#2884)
davidfeng-datadog Jan 20, 2026
113d0f9
Update Contrast Security ADR integration (#2881)
dd-pub-platform[bot] Jan 20, 2026
a5ac657
Apply suggestion from @dd-dominic
up-ilter Jan 21, 2026
20f35c8
Apply suggestion from @dd-dominic
up-ilter Jan 21, 2026
22912c0
Introduction-of-Upstash-QStash-Dashboard-depreciation-of-Upstash-Kafk…
up-ilter Jan 21, 2026
d846214
[LOGSC-2554] Add bypass annotations for new linter checks (#2880)
HugoGomezDD Jan 21, 2026
f59f8be
[AI-6301] Add option to force creation of secure channel (#2883)
sarah-witt Jan 21, 2026
f239ce8
[Release] Update metadata
Jan 21, 2026
f30f402
remove owner
davidfeng-datadog Jan 21, 2026
fbba814
add back owner
davidfeng-datadog Jan 21, 2026
f399f33
Update grpc_check docs (#2886)
sarah-witt Jan 21, 2026
0a6f9d9
Introduction-of-Upstash-QStash-Dashboard-depreciation-of-Upstash-Kafk…
up-ilter Jan 23, 2026
6678e08
Merge branch 'master' into Introduction-of-Upstash-QStash-Dashboard-d…
up-ilter Jan 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .in-toto/tag.4912ca73.link

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# bypass-global-timestamp-format-in-sample-checks
id: "akamai.datastream"
tests:
-
Expand Down
1 change: 1 addition & 0 deletions aqua/assets/logs/aqua_tests.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# bypass-global-timestamp-format-in-sample-checks
id: "aqua"
tests:
-
Expand Down
1 change: 1 addition & 0 deletions celerdata/assets/logs/celerdata_tests.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# bypass-global-timestamp-format-in-sample-checks
id: "celerdata"
tests:
-
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
id: "contrast-security-adr"
# bypass-global-timestamp-format-in-sample-checks
id: contrast-security-adr
tests:
-
sample: |-
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
"queries": [
{
"query": "source:contrast-security-adr tags:attack_event @result:(EXPLOITED OR exploited OR Exploited) AND @rule:(sql-injection OR SQL-INJECTION OR SQL-Injection OR SQL-injection) service:ContrastADR",
"groupByFields": ["@host.hostname"],
"groupByFields": [
"@host.hostname"
],
"hasOptionalGroupByFields": false,
"distinctFields": [],
"aggregation": "count",
Expand All @@ -20,7 +22,9 @@
},
{
"query": "source:dlp_test",
"groupByFields": ["@hostname"],
"groupByFields": [
"@hostname"
],
"hasOptionalGroupByFields": false,
"distinctFields": [],
"aggregation": "count",
Expand Down Expand Up @@ -52,7 +56,10 @@
"blocking": false,
"metadata": {
"entities": [],
"sources": ["contrast-security-adr", "dlp_test"]
"sources": [
"contrast-security-adr",
"dlp_test"
]
},
"creationAuthorId": 26956021,
"updateAuthorId": 64082222,
Expand All @@ -64,4 +71,4 @@
"handle": "harsha.nagendra@contrastsecurity.com",
"name": "Harsha Nagendra"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
"queries": [
{
"query": "source:contrast-security-adr tags:attack_event @result:((EXPLOITED OR exploited) OR (BLOCKED OR blocked)) service:ContrastADR",
"groupByFields": ["@sourceIp"],
"groupByFields": [
"@sourceIp"
],
"hasOptionalGroupByFields": false,
"distinctFields": [],
"aggregation": "count",
Expand All @@ -20,7 +22,9 @@
},
{
"query": "source:waf_test",
"groupByFields": ["@targetip"],
"groupByFields": [
"@targetip"
],
"hasOptionalGroupByFields": false,
"distinctFields": [],
"aggregation": "count",
Expand Down Expand Up @@ -52,7 +56,10 @@
"blocking": false,
"metadata": {
"entities": [],
"sources": ["waf_test", "contrast-security-adr"]
"sources": [
"waf_test",
"contrast-security-adr"
]
},
"creationAuthorId": 22452697,
"updateAuthorId": 64082222,
Expand All @@ -64,4 +71,4 @@
"handle": "harsha.nagendra@contrastsecurity.com",
"name": "Harsha Nagendra"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@
"blocking": false,
"metadata": {
"entities": [],
"sources": ["contrast-security-adr"]
"sources": [
"contrast-security-adr"
]
},
"creationAuthorId": 22452697,
"updateAuthorId": 64082222,
Expand All @@ -55,4 +57,4 @@
"handle": "harsha.nagendra@contrastsecurity.com",
"name": "Harsha Nagendra"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
"queries": [
{
"query": "source:contrast-security-adr tags:attack_event @result:(exploited OR EXPLOITED OR Exploited) AND @environment:(PRODUCTION OR production OR Production) service:ContrastADR",
"groupByFields": ["source"],
"groupByFields": [
"source"
],
"hasOptionalGroupByFields": false,
"distinctFields": [],
"aggregation": "count",
Expand All @@ -34,19 +36,25 @@
"condition": "a > 0"
}
],
"tags": ["source:contrast-security-adr"],
"tags": [
"source:contrast-security-adr"
],
"hasExtendedTitle": true,
"type": "log_detection",
"filters": [],
"defaultTags": ["source:contrast-security-adr"],
"defaultTags": [
"source:contrast-security-adr"
],
"version": 11,
"id": "ext-00s-qxr",
"updatedAt": 1764680591982,
"blocking": false,
"partnerIntegrationId": "contrast-security-adr",
"metadata": {
"entities": [],
"sources": ["contrast-security-adr"]
"sources": [
"contrast-security-adr"
]
},
"updateAuthorId": 63957669,
"creator": {
Expand All @@ -57,4 +65,4 @@
"handle": "deepak.gopal@contrastsecurity.com",
"name": "Deepak Gopal"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@
"queries": [
{
"query": "source:contrast-security-adr tags:incident_event service:ContrastADR",
"groupByFields": ["@incidentId", "@organizationUuid"],
"groupByFields": [
"@incidentId",
"@organizationUuid"
],
"hasOptionalGroupByFields": false,
"distinctFields": [],
"aggregation": "count",
Expand All @@ -20,7 +23,10 @@
},
{
"query": "source:contrast-security-adr tags:attack_event service:ContrastADR",
"groupByFields": ["@incidentId", "@organizationUuid"],
"groupByFields": [
"@incidentId",
"@organizationUuid"
],
"hasOptionalGroupByFields": false,
"distinctFields": [],
"aggregation": "count",
Expand Down Expand Up @@ -52,7 +58,9 @@
"blocking": false,
"metadata": {
"entities": [],
"sources": ["contrast-security-adr"]
"sources": [
"contrast-security-adr"
]
},
"creationAuthorId": 22452697,
"updateAuthorId": 63957669,
Expand All @@ -64,4 +72,4 @@
"handle": "deepak.gopal@contrastsecurity.com",
"name": "Deepak Gopal"
}
}
}
7 changes: 3 additions & 4 deletions contrast_security_adr/manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"app_id": "contrast-security-adr",
"owner": "integrations-developer-platform",
"app_uuid": "01967c4b-c618-7f2d-9af8-db3506afd1b5",
"manifest_version": "2.0.0",
"display_on_public_website": true,
Expand Down Expand Up @@ -32,7 +31,6 @@
"Supported OS::Linux",
"Supported OS::Windows",
"Supported OS::macOS",
"Queried Data Type::Logs",
"Submitted Data Type::Logs"
],
"resources": [
Expand Down Expand Up @@ -71,5 +69,6 @@
"source_type_id": 46698737,
"supports_ddr_coordinated_failover": false
}
}
}
},
"owner": "integrations-developer-platform"
}
2 changes: 1 addition & 1 deletion contrastsecurity/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,4 @@
"Contrast Security Integration Overview": "assets/dashboards/contrast_security_protect.json"
}
}
}
}
1 change: 1 addition & 0 deletions dagster/assets/logs/dagster-plus_tests.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# bypass-global-timestamp-format-in-sample-checks
id: "dagster-plus"
tests:
-
Expand Down
1 change: 1 addition & 0 deletions grafana/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"manifest_version": "2.0.0",
"app_uuid": "6d1aa8b0-8639-4d2c-b3e3-f448546d1755",
"app_id": "grafana",
"owner": "agent-integrations",
"assets": {
"integration": {
"auto_install": true,
Expand Down
7 changes: 7 additions & 0 deletions grpc_check/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# CHANGELOG - gRPC Check


## 1.1.0 / 2026-01-16

***Added***:

* Add option to force creation of secure channel ([#2883](https://github.com/DataDog/integrations-extras/pull/2883))

## 1.0.2 / 2022-11-09

***Fixed***:
Expand Down
2 changes: 1 addition & 1 deletion grpc_check/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Follow the instructions below to install and configure this check for an Agent r
To install the grpc_check check on your host:

```bash
sudo -u dd-agent datadog-agent integration install -t datadog-grpc-check==1.0.2
sudo -u dd-agent datadog-agent integration install -t datadog-grpc-check==1.1.0
```

#### Dockerfile
Expand Down
6 changes: 6 additions & 0 deletions grpc_check/assets/configuration/spec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,10 @@ files:
value:
type: string
example: /path/to/client-key.pem
- name: secure_channel
required: false
description: Set this option to true to use a secure connection when no certificates are provided.
value:
type: boolean
example: true
- template: instances/default
2 changes: 1 addition & 1 deletion grpc_check/datadog_checks/grpc_check/__about__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "1.0.2"
__version__ = "1.1.0"
9 changes: 8 additions & 1 deletion grpc_check/datadog_checks/grpc_check/check.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ def __init__(self, name, init_config, instances):
self.client_cert = self.instance.get("client_cert", "")
self.client_key = self.instance.get("client_key", "")
self.ca_cert = self.instance.get("ca_cert", "")
self.secure_channel = self.instance.get("secure_channel", False)
self._validate_configuration()
self.tags = self.instance.get("tags", [])
self.tags.append("grpc_server_address:{}".format(self.grpc_server_address))
Expand Down Expand Up @@ -117,7 +118,13 @@ def _create_channel(self, instance):
ca,
)
return grpc.secure_channel(self.grpc_server_address, credentials)

if self.secure_channel:
grpc_server = self.grpc_server_address.split(":")[0]
return grpc.secure_channel(
self.grpc_server_address,
grpc.ssl_channel_credentials(),
options=(('grpc.ssl_target_name_override', grpc_server), ('grpc.default_authority', grpc_server)),
)
self.log.debug("creating an insecure channel")
return grpc.insecure_channel(self.grpc_server_address)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,9 @@ def instance_min_collection_interval():
return 15


def instance_secure_channel():
return True


def instance_timeout():
return 1000
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ class InstanceConfig(BaseModel):
metric_patterns: Optional[MetricPatterns] = None
min_collection_interval: Optional[float] = None
rpc_header: Optional[tuple[str, ...]] = None
secure_channel: Optional[bool] = None
service: Optional[str] = None
tags: Optional[tuple[str, ...]] = None
timeout: Optional[int] = None
Expand Down
5 changes: 5 additions & 0 deletions grpc_check/datadog_checks/grpc_check/data/conf.yaml.example
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ instances:
#
# client_key: /path/to/client-key.pem

## @param secure_channel - boolean - optional - default: true
## Set this option to true to use a secure connection when no certificates are provided.
#
# secure_channel: true

## @param tags - list of strings - optional
## A list of tags to attach to every metric and service check emitted by this instance.
##
Expand Down
2 changes: 1 addition & 1 deletion grpc_check/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ classifiers = [
"Private :: Do Not Upload",
]
dependencies = [
"datadog-checks-base>=25.1.0",
"datadog-checks-base>=37.20.0",
]
dynamic = [
"version",
Expand Down
6 changes: 4 additions & 2 deletions grpc_check/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
import pytest

from datadog_checks.dev import docker_run, get_docker_hostname, get_here
from datadog_checks.dev.conditions import CheckDockerLogs

HOST = get_docker_hostname()
INSTANCE = {
"grpc_server_address": "{}:50051".format(get_docker_hostname()),
"grpc_server_address": "{}:50051".format(HOST),
"timeout": 1000,
"rpc_header": ["want-health-check-response: SERVING"],
}
Expand All @@ -14,7 +16,7 @@
@pytest.fixture(scope="session")
def dd_environment():
compose_file = os.path.join(get_here(), "docker", "docker-compose.yml")
with docker_run(compose_file):
with docker_run(compose_file, conditions=[CheckDockerLogs(compose_file, patterns=["gRPC server is serving"])]):
yield INSTANCE


Expand Down
Loading