Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 8 additions & 0 deletions .generator/schemas/v1/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9034,6 +9034,14 @@ components:
type: array
model_type_override:
$ref: "#/components/schemas/MonitorFormulaAndFunctionDataQualityModelTypeOverride"
sensitivity:
description: |-
Sensitivity of the anomaly detection model, expressed as a multiplier on the width
of the predicted bounds. Higher values widen the bounds and produce fewer alerts;
lower values tighten them and produce more alerts. Defaults to `3.0`.
example: 3.0
format: double
type: number
type: object
MonitorFormulaAndFunctionDataQualityQueryDefinition:
description: A formula and functions data quality query.
Expand Down
63 changes: 63 additions & 0 deletions examples/v1/monitors/CreateMonitor_1532893480.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
// Create a Data Quality monitor with sensitivity returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.MonitorsApi;
import com.datadog.api.client.v1.model.Monitor;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionDataQualityDataSource;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionDataQualityMonitorOptions;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionDataQualityQueryDefinition;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionQueryDefinition;
import com.datadog.api.client.v1.model.MonitorOptions;
import com.datadog.api.client.v1.model.MonitorThresholds;
import com.datadog.api.client.v1.model.MonitorType;
import java.util.Arrays;
import java.util.Collections;

public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
MonitorsApi apiInstance = new MonitorsApi(defaultClient);

Monitor body =
new Monitor()
.name("Example-Monitor")
.type(MonitorType.DATA_QUALITY_ALERT)
.query("""
formula("query1").last("5m") > 100
""")
.message("Data quality alert triggered")
.tags(Arrays.asList("test:examplemonitor", "env:ci"))
.priority(3L)
.options(
new MonitorOptions()
.thresholds(new MonitorThresholds().critical(100.0))
.variables(
Collections.singletonList(
new MonitorFormulaAndFunctionQueryDefinition(
new MonitorFormulaAndFunctionDataQualityQueryDefinition()
.name("query1")
.dataSource(
MonitorFormulaAndFunctionDataQualityDataSource
.DATA_QUALITY_METRICS)
.measure("row_count")
.filter(
"search for column where `database:production AND"
+ " table:users`")
.groupBy(Collections.singletonList("entity_id"))
.monitorOptions(
new MonitorFormulaAndFunctionDataQualityMonitorOptions()
.sensitivity(2.5))))));

try {
Monitor result = apiInstance.createMonitor(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MonitorsApi#createMonitor");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
MonitorFormulaAndFunctionDataQualityMonitorOptions.JSON_PROPERTY_CUSTOM_SQL,
MonitorFormulaAndFunctionDataQualityMonitorOptions.JSON_PROPERTY_CUSTOM_WHERE,
MonitorFormulaAndFunctionDataQualityMonitorOptions.JSON_PROPERTY_GROUP_BY_COLUMNS,
MonitorFormulaAndFunctionDataQualityMonitorOptions.JSON_PROPERTY_MODEL_TYPE_OVERRIDE
MonitorFormulaAndFunctionDataQualityMonitorOptions.JSON_PROPERTY_MODEL_TYPE_OVERRIDE,
MonitorFormulaAndFunctionDataQualityMonitorOptions.JSON_PROPERTY_SENSITIVITY
})
@jakarta.annotation.Generated(
value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
Expand All @@ -45,6 +46,9 @@ public class MonitorFormulaAndFunctionDataQualityMonitorOptions {
public static final String JSON_PROPERTY_MODEL_TYPE_OVERRIDE = "model_type_override";
private MonitorFormulaAndFunctionDataQualityModelTypeOverride modelTypeOverride;

public static final String JSON_PROPERTY_SENSITIVITY = "sensitivity";
private Double sensitivity;

public MonitorFormulaAndFunctionDataQualityMonitorOptions crontabOverride(
String crontabOverride) {
this.crontabOverride = crontabOverride;
Expand Down Expand Up @@ -167,6 +171,29 @@ public void setModelTypeOverride(
this.modelTypeOverride = modelTypeOverride;
}

public MonitorFormulaAndFunctionDataQualityMonitorOptions sensitivity(Double sensitivity) {
this.sensitivity = sensitivity;
return this;
}

/**
* Sensitivity of the anomaly detection model, expressed as a multiplier on the width of the
* predicted bounds. Higher values widen the bounds and produce fewer alerts; lower values tighten
* them and produce more alerts. Defaults to <code>3.0</code>.
*
* @return sensitivity
*/
@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_SENSITIVITY)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public Double getSensitivity() {
return sensitivity;
}

public void setSensitivity(Double sensitivity) {
this.sensitivity = sensitivity;
}

/**
* A container for additional, undeclared properties. This is a holder for any undeclared
* properties as specified with the 'additionalProperties' keyword in the OAS document.
Expand Down Expand Up @@ -240,6 +267,8 @@ public boolean equals(Object o) {
&& Objects.equals(
this.modelTypeOverride,
monitorFormulaAndFunctionDataQualityMonitorOptions.modelTypeOverride)
&& Objects.equals(
this.sensitivity, monitorFormulaAndFunctionDataQualityMonitorOptions.sensitivity)
&& Objects.equals(
this.additionalProperties,
monitorFormulaAndFunctionDataQualityMonitorOptions.additionalProperties);
Expand All @@ -253,6 +282,7 @@ public int hashCode() {
customWhere,
groupByColumns,
modelTypeOverride,
sensitivity,
additionalProperties);
}

Expand All @@ -265,6 +295,7 @@ public String toString() {
sb.append(" customWhere: ").append(toIndentedString(customWhere)).append("\n");
sb.append(" groupByColumns: ").append(toIndentedString(groupByColumns)).append("\n");
sb.append(" modelTypeOverride: ").append(toIndentedString(modelTypeOverride)).append("\n");
sb.append(" sensitivity: ").append(toIndentedString(sensitivity)).append("\n");
sb.append(" additionalProperties: ")
.append(toIndentedString(additionalProperties))
.append("\n");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2026-07-31T16:36:50.561Z
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
[
{
"httpRequest": {
"body": {
"type": "JSON",
"json": "{\"message\": \"Data quality alert triggered\", \"name\": \"Test-Create_a_Data_Quality_monitor_with_sensitivity_returns_OK_response-1785515810\", \"options\": {\"thresholds\": {\"critical\": 100}, \"variables\": [{\"data_source\": \"data_quality_metrics\", \"filter\": \"search for column where `database:production AND table:users`\", \"group_by\": [\"entity_id\"], \"measure\": \"row_count\", \"monitor_options\": {\"sensitivity\": 2.5}, \"name\": \"query1\"}]}, \"priority\": 3, \"query\": \"formula(\\\"query1\\\").last(\\\"5m\\\") > 100\", \"tags\": [\"test:testcreateadataqualitymonitorwithsensitivityreturnsokresponse1785515810\", \"env:ci\"], \"type\": \"data-quality alert\"}"
},
"headers": {},
"method": "POST",
"path": "/api/v1/monitor",
"keepAlive": false,
"secure": true
},
"httpResponse": {
"body": "{\"id\":310055951,\"org_id\":321813,\"type\":\"data-quality alert\",\"name\":\"Test-Create_a_Data_Quality_monitor_with_sensitivity_returns_OK_response-1785515810\",\"message\":\"Data quality alert triggered\",\"tags\":[\"test:testcreateadataqualitymonitorwithsensitivityreturnsokresponse1785515810\",\"env:ci\"],\"query\":\"formula(\\\"query1\\\").last(\\\"5m\\\") > 100\",\"options\":{\"thresholds\":{\"critical\":100.0},\"variables\":[{\"data_source\":\"data_quality_metrics\",\"filter\":\"search for column where `database:production AND table:users`\",\"group_by\":[\"entity_id\"],\"measure\":\"row_count\",\"monitor_options\":{\"sensitivity\":2.5},\"name\":\"query1\"}],\"notify_no_data\":false,\"notify_audit\":false,\"new_host_delay\":300,\"include_tags\":true,\"silenced\":{}},\"multi\":false,\"created_at\":1785515810000,\"created\":\"2026-07-31T16:36:50.914551+00:00\",\"modified\":\"2026-07-31T16:36:50.914551+00:00\",\"deleted\":null,\"priority\":3,\"restricted_roles\":null,\"restriction_policy\":null,\"draft_status\":\"published\",\"assets\":[],\"overall_state_modified\":null,\"overall_state\":\"No Data\",\"creator\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"id\":2320499}}\n",
"headers": {
"Content-Type": [
"application/json"
]
},
"statusCode": 200,
"reasonPhrase": "OK"
},
"times": {
"remainingTimes": 1
},
"timeToLive": {
"unlimited": true
},
"id": "3d2e27a9-1030-8598-573d-b8f518190d17"
},
{
"httpRequest": {
"headers": {},
"method": "DELETE",
"path": "/api/v1/monitor/310055951",
"keepAlive": false,
"secure": true
},
"httpResponse": {
"body": "{\"deleted_monitor_id\":310055951}\n",
"headers": {
"Content-Type": [
"application/json"
]
},
"statusCode": 200,
"reasonPhrase": "OK"
},
"times": {
"remainingTimes": 1
},
"timeToLive": {
"unlimited": true
},
"id": "71318a7d-99ec-2d28-4417-daae837b42a7"
}
]
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,16 @@ Feature: Monitors
And the response "name" is equal to "{{ unique }}"
And the response "type" is equal to "data-quality alert"

@team:DataDog/monitor-app
Scenario: Create a Data Quality monitor with sensitivity returns "OK" response
Given new "CreateMonitor" request
And body with value {"name": "{{ unique }}", "type": "data-quality alert", "query": "formula(\"query1\").last(\"5m\") > 100", "message": "Data quality alert triggered", "tags": ["test:{{ unique_lower_alnum }}", "env:ci"], "priority": 3, "options": {"thresholds": {"critical": 100}, "variables": [{"name": "query1", "data_source": "data_quality_metrics", "measure": "row_count", "filter": "search for column where `database:production AND table:users`", "group_by": ["entity_id"], "monitor_options": {"sensitivity": 2.5}}]}}
When the request is sent
Then the response status is 200 OK
And the response "name" is equal to "{{ unique }}"
And the response "type" is equal to "data-quality alert"
And the response "options.variables[0].monitor_options.sensitivity" is equal to 2.5

@team:DataDog/monitor-app
Scenario: Create a RUM formula and functions monitor returns "OK" response
Given new "CreateMonitor" request
Expand Down
Loading