Skip to content
Open
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
31 changes: 29 additions & 2 deletions .generator/schemas/v1/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9658,13 +9658,11 @@ components:
MonitorFormulaAndFunctionCostDataSource:
description: Data source for cost queries.
enum:
- metrics
- cloud_cost
- datadog_usage
example: "cloud_cost"
type: string
x-enum-varnames:
- METRICS
- CLOUD_COST
- DATADOG_USAGE
MonitorFormulaAndFunctionCostQueryDefinition:
Expand Down Expand Up @@ -10106,6 +10104,34 @@ components:
- DATABASE_QUERIES
- NETWORK
- NETWORK_PATH
MonitorFormulaAndFunctionMetricQueryDataSource:
description: Data source for metrics queries.
enum:
- metrics
example: "metrics"
type: string
x-enum-varnames:
- METRICS
MonitorFormulaAndFunctionMetricQueryDefinition:
description: A formula and functions metrics query. The `aggregator` field is required for `cost alert` monitors and not allowed for metric or query alert monitors.
properties:
aggregator:
$ref: "#/components/schemas/MonitorFormulaAndFunctionCostAggregator"
data_source:
$ref: "#/components/schemas/MonitorFormulaAndFunctionMetricQueryDataSource"
name:
description: Name of the query for use in formulas.
example: "query1"
type: string
query:
description: The metrics query definition.
example: "avg:system.cpu.user{*}"
type: string
required:
- name
- data_source
- query
type: object
MonitorFormulaAndFunctionMetricsAggregator:
description: Aggregator for metrics queries.
enum:
Expand Down Expand Up @@ -10175,6 +10201,7 @@ components:
- $ref: "#/components/schemas/MonitorFormulaAndFunctionDataJobsQueryDefinition"
- $ref: "#/components/schemas/MonitorFormulaAndFunctionAggregateAugmentedQueryDefinition"
- $ref: "#/components/schemas/MonitorFormulaAndFunctionAggregateFilteredQueryDefinition"
- $ref: "#/components/schemas/MonitorFormulaAndFunctionMetricQueryDefinition"
MonitorFormulaAndFunctionReferenceTableColumn:
additionalProperties: false
description: A column definition for reference table queries.
Expand Down
59 changes: 59 additions & 0 deletions examples/v1/monitors/CreateMonitor_2419923374.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
// Create a monitor with a metrics formula variable 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.MonitorFormulaAndFunctionMetricQueryDataSource;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionMetricQueryDefinition;
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();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
MonitorsApi apiInstance = new MonitorsApi(defaultClient);

Monitor body =
new Monitor()
.name("Example-Monitor")
.type(MonitorType.QUERY_ALERT)
.query("""
formula("query1").rollup("avg").last("5m") > threshold
""")
.message("some message Notify: @hipchat-channel")
.tags(Arrays.asList("test:examplemonitor", "env:ci"))
.options(
new MonitorOptions()
.thresholds(
new MonitorThresholds()
.criticalQuery(
"""
formula("query1").rollup("p99").last("1w").multiplier(1.5)
"""))
.variables(
Collections.singletonList(
new MonitorFormulaAndFunctionQueryDefinition(
new MonitorFormulaAndFunctionMetricQueryDefinition()
.name("query1")
.dataSource(
MonitorFormulaAndFunctionMetricQueryDataSource.METRICS)
.query("avg:system.cpu.user{*}")))));

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 @@ -26,10 +26,8 @@
public class MonitorFormulaAndFunctionCostDataSource extends ModelEnum<String> {

private static final Set<String> allowedValues =
new HashSet<String>(Arrays.asList("metrics", "cloud_cost", "datadog_usage"));
new HashSet<String>(Arrays.asList("cloud_cost", "datadog_usage"));

public static final MonitorFormulaAndFunctionCostDataSource METRICS =
new MonitorFormulaAndFunctionCostDataSource("metrics");
public static final MonitorFormulaAndFunctionCostDataSource CLOUD_COST =
new MonitorFormulaAndFunctionCostDataSource("cloud_cost");
public static final MonitorFormulaAndFunctionCostDataSource DATADOG_USAGE =
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
* This product includes software developed at Datadog (https://www.datadoghq.com/).
* Copyright 2019-Present Datadog, Inc.
*/

package com.datadog.api.client.v1.model;

import com.datadog.api.client.ModelEnum;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/** Data source for metrics queries. */
@JsonSerialize(
using =
MonitorFormulaAndFunctionMetricQueryDataSource
.MonitorFormulaAndFunctionMetricQueryDataSourceSerializer.class)
public class MonitorFormulaAndFunctionMetricQueryDataSource extends ModelEnum<String> {

private static final Set<String> allowedValues = new HashSet<String>(Arrays.asList("metrics"));

public static final MonitorFormulaAndFunctionMetricQueryDataSource METRICS =
new MonitorFormulaAndFunctionMetricQueryDataSource("metrics");

MonitorFormulaAndFunctionMetricQueryDataSource(String value) {
super(value, allowedValues);
}

public static class MonitorFormulaAndFunctionMetricQueryDataSourceSerializer
extends StdSerializer<MonitorFormulaAndFunctionMetricQueryDataSource> {
public MonitorFormulaAndFunctionMetricQueryDataSourceSerializer(
Class<MonitorFormulaAndFunctionMetricQueryDataSource> t) {
super(t);
}

public MonitorFormulaAndFunctionMetricQueryDataSourceSerializer() {
this(null);
}

@Override
public void serialize(
MonitorFormulaAndFunctionMetricQueryDataSource value,
JsonGenerator jgen,
SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeObject(value.value);
}
}

@JsonCreator
public static MonitorFormulaAndFunctionMetricQueryDataSource fromValue(String value) {
return new MonitorFormulaAndFunctionMetricQueryDataSource(value);
}
}
Loading
Loading