Skip to content

Commit f30b9c6

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
feat(product-analytics): add analytics scalar and timeseries endpoints (DataDog#3732)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 579bbc2 commit f30b9c6

44 files changed

Lines changed: 6302 additions & 2 deletions

File tree

Some content is hidden

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

.generator/schemas/v2/openapi.yaml

Lines changed: 562 additions & 0 deletions
Large diffs are not rendered by default.

api/datadogV2/api_product_analytics.go

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,169 @@ import (
1515
// ProductAnalyticsApi service type
1616
type ProductAnalyticsApi datadog.Service
1717

18+
// QueryProductAnalyticsScalar Compute scalar analytics.
19+
// Compute scalar analytics results for Product Analytics data.
20+
// Returns aggregated values (counts, averages, percentiles) optionally grouped by facets.
21+
func (a *ProductAnalyticsApi) QueryProductAnalyticsScalar(ctx _context.Context, body ProductAnalyticsAnalyticsRequest) (ProductAnalyticsScalarResponse, *_nethttp.Response, error) {
22+
var (
23+
localVarHTTPMethod = _nethttp.MethodPost
24+
localVarPostBody interface{}
25+
localVarReturnValue ProductAnalyticsScalarResponse
26+
)
27+
28+
localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.ProductAnalyticsApi.QueryProductAnalyticsScalar")
29+
if err != nil {
30+
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
31+
}
32+
33+
localVarPath := localBasePath + "/api/v2/product-analytics/analytics/scalar"
34+
35+
localVarHeaderParams := make(map[string]string)
36+
localVarQueryParams := _neturl.Values{}
37+
localVarFormParams := _neturl.Values{}
38+
localVarHeaderParams["Content-Type"] = "application/json"
39+
localVarHeaderParams["Accept"] = "application/json"
40+
41+
// body params
42+
localVarPostBody = &body
43+
if a.Client.Cfg.DelegatedTokenConfig != nil {
44+
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
45+
if err != nil {
46+
return localVarReturnValue, nil, err
47+
}
48+
} else {
49+
datadog.SetAuthKeys(
50+
ctx,
51+
&localVarHeaderParams,
52+
[2]string{"apiKeyAuth", "DD-API-KEY"},
53+
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
54+
)
55+
}
56+
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
57+
if err != nil {
58+
return localVarReturnValue, nil, err
59+
}
60+
61+
localVarHTTPResponse, err := a.Client.CallAPI(req)
62+
if err != nil || localVarHTTPResponse == nil {
63+
return localVarReturnValue, localVarHTTPResponse, err
64+
}
65+
66+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
67+
if err != nil {
68+
return localVarReturnValue, localVarHTTPResponse, err
69+
}
70+
71+
if localVarHTTPResponse.StatusCode >= 300 {
72+
newErr := datadog.GenericOpenAPIError{
73+
ErrorBody: localVarBody,
74+
ErrorMessage: localVarHTTPResponse.Status,
75+
}
76+
if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 429 {
77+
var v APIErrorResponse
78+
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
79+
if err != nil {
80+
return localVarReturnValue, localVarHTTPResponse, newErr
81+
}
82+
newErr.ErrorModel = v
83+
}
84+
return localVarReturnValue, localVarHTTPResponse, newErr
85+
}
86+
87+
err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
88+
if err != nil {
89+
newErr := datadog.GenericOpenAPIError{
90+
ErrorBody: localVarBody,
91+
ErrorMessage: err.Error(),
92+
}
93+
return localVarReturnValue, localVarHTTPResponse, newErr
94+
}
95+
96+
return localVarReturnValue, localVarHTTPResponse, nil
97+
}
98+
99+
// QueryProductAnalyticsTimeseries Compute timeseries analytics.
100+
// Compute timeseries analytics results for Product Analytics data.
101+
// Returns time-bucketed values for charts and trend analysis.
102+
// The `compute.interval` field (milliseconds) is required for time bucketing.
103+
func (a *ProductAnalyticsApi) QueryProductAnalyticsTimeseries(ctx _context.Context, body ProductAnalyticsAnalyticsRequest) (ProductAnalyticsTimeseriesResponse, *_nethttp.Response, error) {
104+
var (
105+
localVarHTTPMethod = _nethttp.MethodPost
106+
localVarPostBody interface{}
107+
localVarReturnValue ProductAnalyticsTimeseriesResponse
108+
)
109+
110+
localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.ProductAnalyticsApi.QueryProductAnalyticsTimeseries")
111+
if err != nil {
112+
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
113+
}
114+
115+
localVarPath := localBasePath + "/api/v2/product-analytics/analytics/timeseries"
116+
117+
localVarHeaderParams := make(map[string]string)
118+
localVarQueryParams := _neturl.Values{}
119+
localVarFormParams := _neturl.Values{}
120+
localVarHeaderParams["Content-Type"] = "application/json"
121+
localVarHeaderParams["Accept"] = "application/json"
122+
123+
// body params
124+
localVarPostBody = &body
125+
if a.Client.Cfg.DelegatedTokenConfig != nil {
126+
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
127+
if err != nil {
128+
return localVarReturnValue, nil, err
129+
}
130+
} else {
131+
datadog.SetAuthKeys(
132+
ctx,
133+
&localVarHeaderParams,
134+
[2]string{"apiKeyAuth", "DD-API-KEY"},
135+
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
136+
)
137+
}
138+
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
139+
if err != nil {
140+
return localVarReturnValue, nil, err
141+
}
142+
143+
localVarHTTPResponse, err := a.Client.CallAPI(req)
144+
if err != nil || localVarHTTPResponse == nil {
145+
return localVarReturnValue, localVarHTTPResponse, err
146+
}
147+
148+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
149+
if err != nil {
150+
return localVarReturnValue, localVarHTTPResponse, err
151+
}
152+
153+
if localVarHTTPResponse.StatusCode >= 300 {
154+
newErr := datadog.GenericOpenAPIError{
155+
ErrorBody: localVarBody,
156+
ErrorMessage: localVarHTTPResponse.Status,
157+
}
158+
if localVarHTTPResponse.StatusCode == 400 || localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 429 {
159+
var v APIErrorResponse
160+
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
161+
if err != nil {
162+
return localVarReturnValue, localVarHTTPResponse, newErr
163+
}
164+
newErr.ErrorModel = v
165+
}
166+
return localVarReturnValue, localVarHTTPResponse, newErr
167+
}
168+
169+
err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
170+
if err != nil {
171+
newErr := datadog.GenericOpenAPIError{
172+
ErrorBody: localVarBody,
173+
ErrorMessage: err.Error(),
174+
}
175+
return localVarReturnValue, localVarHTTPResponse, newErr
176+
}
177+
178+
return localVarReturnValue, localVarHTTPResponse, nil
179+
}
180+
18181
// SubmitProductAnalyticsEvent Send server-side events.
19182
// Send server-side events to Product Analytics. Server-side events are retained for 15 months.
20183
//

api/datadogV2/doc.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,8 @@
546546
// - [PowerpackApi.ListPowerpacks]
547547
// - [PowerpackApi.UpdatePowerpack]
548548
// - [ProcessesApi.ListProcesses]
549+
// - [ProductAnalyticsApi.QueryProductAnalyticsScalar]
550+
// - [ProductAnalyticsApi.QueryProductAnalyticsTimeseries]
549551
// - [ProductAnalyticsApi.SubmitProductAnalyticsEvent]
550552
// - [RUMApi.AggregateRUMEvents]
551553
// - [RUMApi.CreateRUMApplication]

0 commit comments

Comments
 (0)