Skip to content

Commit 74f82c0

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-specarchana-asokan
authored
Add FormulaAndFunctionEventQueryGroupByFields schema to support flat group_by form (#3542)
* Regenerate client from commit 4bfcbd9 of spec repo * Fix BDD test lookup to handle oneOf wrappers for array indexing When a oneOf schema wraps an array type, the World.lookup method needs to unwrap the getActualInstance() before casting to List. This fixes ClassCastException when BDD steps navigate paths like group_by[0].facet where group_by is now a oneOf wrapper. This matches the spec change in datadog-api-spec PR #5141. * Regenerate client from commit 6846005 of spec repo --------- Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com> Co-authored-by: Archana Asokan <archana.asokan@datadoghq.com>
1 parent d45f29c commit 74f82c0

File tree

44 files changed

+1028
-166
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1028
-166
lines changed

.generator/schemas/v1/openapi.yaml

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2962,10 +2962,7 @@ components:
29622962
data_source:
29632963
$ref: '#/components/schemas/FormulaAndFunctionEventsDataSource'
29642964
group_by:
2965-
description: Group by options.
2966-
items:
2967-
$ref: '#/components/schemas/FormulaAndFunctionEventQueryGroupBy'
2968-
type: array
2965+
$ref: '#/components/schemas/FormulaAndFunctionEventQueryGroupByConfig'
29692966
indexes:
29702967
description: An array of index names to query in the stream. Omit or use
29712968
`[]` to query all indexes at once.
@@ -3037,6 +3034,40 @@ components:
30373034
required:
30383035
- facet
30393036
type: object
3037+
FormulaAndFunctionEventQueryGroupByConfig:
3038+
description: Group by configuration for a formula and functions events query.
3039+
Accepts either a list of facet objects or a flat object that specifies a list
3040+
of facet fields.
3041+
oneOf:
3042+
- $ref: '#/components/schemas/FormulaAndFunctionEventQueryGroupByList'
3043+
- $ref: '#/components/schemas/FormulaAndFunctionEventQueryGroupByFields'
3044+
FormulaAndFunctionEventQueryGroupByFields:
3045+
description: Flat group by configuration using multiple event facet fields.
3046+
properties:
3047+
fields:
3048+
description: List of event facets to group by.
3049+
example:
3050+
- hostname
3051+
- service
3052+
items:
3053+
description: Event facet.
3054+
type: string
3055+
type: array
3056+
limit:
3057+
description: Number of groups to return.
3058+
example: 10
3059+
format: int64
3060+
type: integer
3061+
sort:
3062+
$ref: '#/components/schemas/FormulaAndFunctionEventQueryGroupBySort'
3063+
required:
3064+
- fields
3065+
type: object
3066+
FormulaAndFunctionEventQueryGroupByList:
3067+
description: List of objects used to group by.
3068+
items:
3069+
$ref: '#/components/schemas/FormulaAndFunctionEventQueryGroupBy'
3070+
type: array
30403071
FormulaAndFunctionEventQueryGroupBySort:
30413072
description: Options for sorting group by results.
30423073
properties:

examples/v1/dashboards/CreateDashboard_1617893815.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinitionCompute;
1414
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinitionSearch;
1515
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryGroupBy;
16+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryGroupByConfig;
1617
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryGroupBySort;
1718
import com.datadog.api.client.v1.model.FormulaAndFunctionEventsDataSource;
1819
import com.datadog.api.client.v1.model.FormulaAndFunctionQueryDefinition;
@@ -71,18 +72,19 @@ public static void main(String[] args) {
7172
.AVG)
7273
.metric("@duration"))
7374
.groupBy(
74-
Collections.singletonList(
75-
new FormulaAndFunctionEventQueryGroupBy()
76-
.facet("service")
77-
.limit(1000L)
78-
.sort(
79-
new FormulaAndFunctionEventQueryGroupBySort()
80-
.aggregation(
81-
FormulaAndFunctionEventAggregation
82-
.COUNT)
83-
.order(
84-
QuerySortOrder
85-
.DESC))))
75+
new FormulaAndFunctionEventQueryGroupByConfig(
76+
Collections.singletonList(
77+
new FormulaAndFunctionEventQueryGroupBy()
78+
.facet("service")
79+
.limit(1000L)
80+
.sort(
81+
new FormulaAndFunctionEventQueryGroupBySort()
82+
.aggregation(
83+
FormulaAndFunctionEventAggregation
84+
.COUNT)
85+
.order(
86+
QuerySortOrder
87+
.DESC)))))
8688
.storage("hot"))))))))))
8789
.layoutType(DashboardLayoutType.FREE);
8890

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
// Create a new dashboard with formulas and functions events query using flat group by fields
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v1.api.DashboardsApi;
6+
import com.datadog.api.client.v1.model.Dashboard;
7+
import com.datadog.api.client.v1.model.DashboardLayoutType;
8+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventAggregation;
9+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinition;
10+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinitionCompute;
11+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinitionSearch;
12+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryGroupByConfig;
13+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryGroupByFields;
14+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventsDataSource;
15+
import com.datadog.api.client.v1.model.FormulaAndFunctionQueryDefinition;
16+
import com.datadog.api.client.v1.model.FormulaAndFunctionResponseFormat;
17+
import com.datadog.api.client.v1.model.TimeseriesWidgetDefinition;
18+
import com.datadog.api.client.v1.model.TimeseriesWidgetDefinitionType;
19+
import com.datadog.api.client.v1.model.TimeseriesWidgetRequest;
20+
import com.datadog.api.client.v1.model.Widget;
21+
import com.datadog.api.client.v1.model.WidgetDefinition;
22+
import com.datadog.api.client.v1.model.WidgetLayout;
23+
import java.util.Arrays;
24+
import java.util.Collections;
25+
26+
public class Example {
27+
public static void main(String[] args) {
28+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
29+
DashboardsApi apiInstance = new DashboardsApi(defaultClient);
30+
31+
Dashboard body =
32+
new Dashboard()
33+
.title("Example-Dashboard with events flat group_by fields")
34+
.widgets(
35+
Collections.singletonList(
36+
new Widget()
37+
.definition(
38+
new WidgetDefinition(
39+
new TimeseriesWidgetDefinition()
40+
.type(TimeseriesWidgetDefinitionType.TIMESERIES)
41+
.requests(
42+
Collections.singletonList(
43+
new TimeseriesWidgetRequest()
44+
.responseFormat(
45+
FormulaAndFunctionResponseFormat.TIMESERIES)
46+
.queries(
47+
Collections.singletonList(
48+
new FormulaAndFunctionQueryDefinition(
49+
new FormulaAndFunctionEventQueryDefinition()
50+
.dataSource(
51+
FormulaAndFunctionEventsDataSource
52+
.EVENTS)
53+
.name("query1")
54+
.search(
55+
new FormulaAndFunctionEventQueryDefinitionSearch()
56+
.query(""))
57+
.compute(
58+
new FormulaAndFunctionEventQueryDefinitionCompute()
59+
.aggregation(
60+
FormulaAndFunctionEventAggregation
61+
.COUNT))
62+
.groupBy(
63+
new FormulaAndFunctionEventQueryGroupByConfig(
64+
new FormulaAndFunctionEventQueryGroupByFields()
65+
.fields(
66+
Arrays.asList(
67+
"service",
68+
"host"))
69+
.limit(10L))))))))))
70+
.layout(new WidgetLayout().x(0L).y(0L).width(4L).height(2L))))
71+
.layoutType(DashboardLayoutType.ORDERED);
72+
73+
try {
74+
Dashboard result = apiInstance.createDashboard(body);
75+
System.out.println(result);
76+
} catch (ApiException e) {
77+
System.err.println("Exception when calling DashboardsApi#createDashboard");
78+
System.err.println("Status code: " + e.getCode());
79+
System.err.println("Reason: " + e.getResponseBody());
80+
System.err.println("Response headers: " + e.getResponseHeaders());
81+
e.printStackTrace();
82+
}
83+
}
84+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
// Create a new dashboard with formulas and functions events query using facet group by
2+
3+
import com.datadog.api.client.ApiClient;
4+
import com.datadog.api.client.ApiException;
5+
import com.datadog.api.client.v1.api.DashboardsApi;
6+
import com.datadog.api.client.v1.model.Dashboard;
7+
import com.datadog.api.client.v1.model.DashboardLayoutType;
8+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventAggregation;
9+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinition;
10+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinitionCompute;
11+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinitionSearch;
12+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryGroupBy;
13+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryGroupByConfig;
14+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventsDataSource;
15+
import com.datadog.api.client.v1.model.FormulaAndFunctionQueryDefinition;
16+
import com.datadog.api.client.v1.model.FormulaAndFunctionResponseFormat;
17+
import com.datadog.api.client.v1.model.TimeseriesWidgetDefinition;
18+
import com.datadog.api.client.v1.model.TimeseriesWidgetDefinitionType;
19+
import com.datadog.api.client.v1.model.TimeseriesWidgetRequest;
20+
import com.datadog.api.client.v1.model.Widget;
21+
import com.datadog.api.client.v1.model.WidgetDefinition;
22+
import com.datadog.api.client.v1.model.WidgetLayout;
23+
import java.util.Collections;
24+
25+
public class Example {
26+
public static void main(String[] args) {
27+
ApiClient defaultClient = ApiClient.getDefaultApiClient();
28+
DashboardsApi apiInstance = new DashboardsApi(defaultClient);
29+
30+
Dashboard body =
31+
new Dashboard()
32+
.title("Example-Dashboard with events facet group_by")
33+
.widgets(
34+
Collections.singletonList(
35+
new Widget()
36+
.definition(
37+
new WidgetDefinition(
38+
new TimeseriesWidgetDefinition()
39+
.type(TimeseriesWidgetDefinitionType.TIMESERIES)
40+
.requests(
41+
Collections.singletonList(
42+
new TimeseriesWidgetRequest()
43+
.responseFormat(
44+
FormulaAndFunctionResponseFormat.TIMESERIES)
45+
.queries(
46+
Collections.singletonList(
47+
new FormulaAndFunctionQueryDefinition(
48+
new FormulaAndFunctionEventQueryDefinition()
49+
.dataSource(
50+
FormulaAndFunctionEventsDataSource
51+
.EVENTS)
52+
.name("query1")
53+
.search(
54+
new FormulaAndFunctionEventQueryDefinitionSearch()
55+
.query(""))
56+
.compute(
57+
new FormulaAndFunctionEventQueryDefinitionCompute()
58+
.aggregation(
59+
FormulaAndFunctionEventAggregation
60+
.COUNT))
61+
.groupBy(
62+
new FormulaAndFunctionEventQueryGroupByConfig(
63+
Collections.singletonList(
64+
new FormulaAndFunctionEventQueryGroupBy()
65+
.facet("service")
66+
.limit(
67+
10L)))))))))))
68+
.layout(new WidgetLayout().x(0L).y(0L).width(4L).height(2L))))
69+
.layoutType(DashboardLayoutType.ORDERED);
70+
71+
try {
72+
Dashboard result = apiInstance.createDashboard(body);
73+
System.out.println(result);
74+
} catch (ApiException e) {
75+
System.err.println("Exception when calling DashboardsApi#createDashboard");
76+
System.err.println("Status code: " + e.getCode());
77+
System.err.println("Reason: " + e.getResponseBody());
78+
System.err.println("Response headers: " + e.getResponseHeaders());
79+
e.printStackTrace();
80+
}
81+
}
82+
}

examples/v1/dashboards/CreateDashboard_915214113.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinitionCompute;
1111
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryDefinitionSearch;
1212
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryGroupBy;
13+
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryGroupByConfig;
1314
import com.datadog.api.client.v1.model.FormulaAndFunctionEventQueryGroupBySort;
1415
import com.datadog.api.client.v1.model.FormulaAndFunctionEventsDataSource;
1516
import com.datadog.api.client.v1.model.FormulaAndFunctionQueryDefinition;
@@ -80,19 +81,20 @@ public static void main(String[] args) {
8081
FormulaAndFunctionEventAggregation
8182
.COUNT))
8283
.groupBy(
83-
Collections.singletonList(
84-
new FormulaAndFunctionEventQueryGroupBy()
85-
.facet(
86-
"@geo.country_iso_code")
87-
.limit(250L)
88-
.sort(
89-
new FormulaAndFunctionEventQueryGroupBySort()
90-
.order(
91-
QuerySortOrder
92-
.DESC)
93-
.aggregation(
94-
FormulaAndFunctionEventAggregation
95-
.COUNT)))))))
84+
new FormulaAndFunctionEventQueryGroupByConfig(
85+
Collections.singletonList(
86+
new FormulaAndFunctionEventQueryGroupBy()
87+
.facet(
88+
"@geo.country_iso_code")
89+
.limit(250L)
90+
.sort(
91+
new FormulaAndFunctionEventQueryGroupBySort()
92+
.order(
93+
QuerySortOrder
94+
.DESC)
95+
.aggregation(
96+
FormulaAndFunctionEventAggregation
97+
.COUNT))))))))
9698
.sort(
9799
new WidgetSortBy()
98100
.count(250L)

0 commit comments

Comments
 (0)