Create metric SQL model
https://api.datadoghq.com/api/v2/experiments/metric-sql-modelshttps://api.us3.datadoghq.com/api/v2/experiments/metric-sql-modelshttps://api.us5.datadoghq.com/api/v2/experiments/metric-sql-modelshttps://api.datadoghq.eu/api/v2/experiments/metric-sql-modelshttps://api.ap1.datadoghq.com/api/v2/experiments/metric-sql-modelshttps://api.ap2.datadoghq.com/api/v2/experiments/metric-sql-modelshttps://api.uk1.datadoghq.com/api/v2/experiments/metric-sql-modelshttps://api.ddog-gov.com/api/v2/experiments/metric-sql-modelshttps://api.us2.ddog-gov.com/api/v2/experiments/metric-sql-modelsDescripción general
Create a metric SQL model. Requires at least one subject type, whose subject_type_id must already exist for the organization (list them with GET /api/v2/experiments/subject-types). The model is created against the organization's warehouse connection, which is resolved server-side. Only customer-defined measures belong in measures. The response provides unique_subject_count_measure_id for each subject type and event_count_measure_id for use in metric aggregations. column_type is required for every measure and property. Certification is read-only and cannot be changed through this endpoint.
OAuth apps require the product_analytics_warehouse_model_write authorization scope to access this endpoint.
Solicitud
Body Data (required)
data [required]Metric SQL model resource to create.
attributes [required]Complete column mappings and query used to replace the metric SQL model.
date_partition_columnSQL column used to partition the source data by date.
descriptionText that explains the metric SQL model.
measuresMeasures available from the SQL model's result columns.
column_name [required]SQL result column that contains the measure values.
column_type [required]Data type of a column in the SQL model.
STRING, INTEGER, FLOAT, BOOLEAN, DATE, TIMESTAMPdescriptionDescription of the measure.
migration_metadataMetadata associated with migration of this resource.
nameDisplay name of the measure.
migration_metadataMetadata retained for resources imported from another system.
name [required]Display name of the metric SQL model.
propertiesProperty columns exposed by the SQL model.
column_name [required]Name of the SQL result column that supplies this property.
column_type [required]Data type of a column in the SQL model.
STRING, INTEGER, FLOAT, BOOLEAN, DATE, TIMESTAMPdescriptionOptional text that explains what this property represents.
migration_metadataOpaque metadata preserved when this property is migrated.
name [required]Name used to identify the property in the model.
sql [required]SQL query that produces the model's source data.
subject_types [required]Subject types mapped to columns in the SQL model.
column_name [required]SQL result column that contains the subject identifier.
subject_type_id [required]Identifier of the subject type mapped to this column.
timestamp_column [required]SQL column that supplies the event timestamp.
idOptional JSON:API resource identifier field.
type [required]Metric SQL models resource type.
metric-sql-modelsmetric-sql-models{
"data": {
"attributes": {
"date_partition_column": null,
"description": null,
"measures": [
{
"column_name": "revenue",
"column_type": "STRING",
"description": null,
"migration_metadata": "undefined",
"name": null
}
],
"migration_metadata": "undefined",
"name": "Order facts",
"properties": [
{
"column_name": "item_type",
"column_type": "STRING",
"description": null,
"migration_metadata": "undefined",
"name": "item_type"
}
],
"sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "created_at"
},
"id": "string",
"type": "metric-sql-models"
}
}Respuesta
Created
Response containing the metric SQL model.
data [required]JSON:API resource containing the metric SQL model identity and fields.
attributesDetails of the metric SQL model.
certified_atTime when this resource was certified.
created_atTime when this resource was created.
date_partition_columnSQL column used to partition the source data by date.
descriptionText that explains the metric SQL model.
event_count_measure_idRead-only measure ID. Pass it as warehouse_metric_measure.id when the metric operation is count.
experiment_countNumber of experiments that reference this resource.
is_certifiedWhether this resource has been certified.
measuresMeasures available from the SQL model's result columns.
column_nameName of the SQL result column that supplies this measure.
column_typeData type of a column in the SQL model.
STRING, INTEGER, FLOAT, BOOLEAN, DATE, TIMESTAMPdescriptionText that explains the measure.
idID of the measure.
migration_metadataMetadata retained for resources imported from another system.
nameDisplay name of the measure.
metric_countNumber of metrics that use this SQL model.
migration_metadataMetadata retained for resources imported from another system.
nameDisplay name of the metric SQL model.
propertiesProperty columns exposed by the SQL model.
column_nameName of the SQL result column that supplies this measure.
column_typeData type of a column in the SQL model.
STRING, INTEGER, FLOAT, BOOLEAN, DATE, TIMESTAMPdescriptionText that explains the measure.
idID of the measure.
migration_metadataMetadata retained for resources imported from another system.
nameDisplay name of the measure.
sqlSQL query that produces the model's source data.
subject_typesSubject types mapped to columns in the SQL model.
column_nameName of the SQL result column that identifies subjects of this type.
subject_type_idID of the subject type used by this configuration.
unique_subject_count_measure_idRead-only measure ID. Pass it as warehouse_metric_measure.id when the metric operation is uniqueSubjects.
timestamp_columnSQL column that supplies the event timestamp.
updated_atTime when this resource was last updated.
id [required]ID of the metric SQL model.
type [required]Metric SQL models resource type.
metric-sql-modelsmetric-sql-models{
"data": {
"attributes": {
"created_at": "2024-01-01T12:00:00Z",
"event_count_measure_id": "550e8400-e29b-41d4-a716-446655440024",
"is_certified": false,
"measures": [
{
"column_name": "revenue",
"column_type": "FLOAT",
"id": "550e8400-e29b-41d4-a716-446655440021",
"name": "revenue"
}
],
"name": "Order facts",
"properties": [
{
"column_name": "item_type",
"column_type": "STRING",
"id": "550e8400-e29b-41d4-a716-446655440023",
"name": "item_type"
}
],
"sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010",
"unique_subject_count_measure_id": "550e8400-e29b-41d4-a716-446655440022"
}
],
"timestamp_column": "created_at",
"updated_at": "2024-01-01T12:00:00Z"
},
"id": "550e8400-e29b-41d4-a716-446655440020",
"type": "metric-sql-models"
}
}Malformed body, validation failure, the SQL was rejected by the warehouse validator, or the organization has no warehouse connection.
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Missing or invalid authentication.
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Authenticated caller lacks the product_analytics_warehouse_model_write permission.
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Another metric SQL model in this organization already uses one of these values.
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Too many requests
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Ejemplo de código
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/metric-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"description": null,
"measures": [
{
"column_name": "revenue",
"column_type": "FLOAT",
"description": null,
"name": null
}
],
"name": "Order facts",
"sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "created_at"
},
"type": "metric-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/metric-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"description": null,
"measures": [
{
"column_name": "revenue",
"column_type": "FLOAT",
"description": null,
"name": null
}
],
"name": "Order facts",
"sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "created_at"
},
"type": "metric-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/metric-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"description": null,
"measures": [
{
"column_name": "revenue",
"column_type": "FLOAT",
"description": null,
"name": null
}
],
"name": "Order facts",
"sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "created_at"
},
"type": "metric-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/metric-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"description": null,
"measures": [
{
"column_name": "revenue",
"column_type": "FLOAT",
"description": null,
"name": null
}
],
"name": "Order facts",
"sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "created_at"
},
"type": "metric-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/metric-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"description": null,
"measures": [
{
"column_name": "revenue",
"column_type": "FLOAT",
"description": null,
"name": null
}
],
"name": "Order facts",
"sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "created_at"
},
"type": "metric-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/metric-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"description": null,
"measures": [
{
"column_name": "revenue",
"column_type": "FLOAT",
"description": null,
"name": null
}
],
"name": "Order facts",
"sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "created_at"
},
"type": "metric-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/metric-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"description": null,
"measures": [
{
"column_name": "revenue",
"column_type": "FLOAT",
"description": null,
"name": null
}
],
"name": "Order facts",
"sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "created_at"
},
"type": "metric-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/metric-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"description": null,
"measures": [
{
"column_name": "revenue",
"column_type": "FLOAT",
"description": null,
"name": null
}
],
"name": "Order facts",
"sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "created_at"
},
"type": "metric-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/metric-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"description": null,
"measures": [
{
"column_name": "revenue",
"column_type": "FLOAT",
"description": null,
"name": null
}
],
"name": "Order facts",
"sql": "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "created_at"
},
"type": "metric-sql-models"
}
}
EOF// Create metric SQL model returns "Created" response
package main
import (
"context"
"encoding/json"
"fmt"
"os"
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)
func main() {
body := datadogV2.ExperimentsCreateMetricSQLModelV2Request{
Data: datadogV2.ExperimentsCreateMetricSQLModelV2RequestData{
Attributes: datadogV2.ExperimentsUpdateMetricSQLModelV2RequestDataAttributes{
DatePartitionColumn: *datadog.NewNullableString(nil),
Description: *datadog.NewNullableString(nil),
Measures: []datadogV2.ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems{
{
ColumnName: "revenue",
ColumnType: datadogV2.EXPERIMENTSCREATEEXPOSURESQLMODELV2REQUESTDATAATTRIBUTESITEMSCOLUMNTYPE_FLOAT,
Description: *datadog.NewNullableString(nil),
Name: *datadog.NewNullableString(nil),
},
},
Name: "Order facts",
Properties: []datadogV2.ExperimentsMetricSQLModelPropertyInput{
{
ColumnName: "item_type",
ColumnType: datadogV2.EXPERIMENTSCREATEEXPOSURESQLMODELV2REQUESTDATAATTRIBUTESITEMSCOLUMNTYPE_STRING,
Description: *datadog.NewNullableString(nil),
Name: "item_type",
},
},
Sql: "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
SubjectTypes: []datadogV2.ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems{
{
ColumnName: "user_id",
SubjectTypeId: "550e8400-e29b-41d4-a716-446655440010",
},
},
TimestampColumn: "created_at",
},
Type: datadogV2.EXPERIMENTSUPDATEMETRICSQLMODELV2REQUESTDATATYPE_METRIC_SQL_MODELS,
},
}
ctx := datadog.NewDefaultContext(context.Background())
ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewExperimentsApi(apiClient)
resp, r, err := api.CreateMetricSQLModel(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ExperimentsApi.CreateMetricSQLModel`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `ExperimentsApi.CreateMetricSQLModel`:\n%s\n", responseContent)
}
Instructions
First install the library and its dependencies and then save the example to main.go and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"// Create metric SQL model returns "Created" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.ExperimentsApi;
import com.datadog.api.client.v2.model.ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType;
import com.datadog.api.client.v2.model.ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems;
import com.datadog.api.client.v2.model.ExperimentsCreateMetricSQLModelV2Request;
import com.datadog.api.client.v2.model.ExperimentsCreateMetricSQLModelV2RequestData;
import com.datadog.api.client.v2.model.ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems;
import com.datadog.api.client.v2.model.ExperimentsMetricSQLModelPropertyInput;
import com.datadog.api.client.v2.model.ExperimentsMetricSQLModelV2DTO;
import com.datadog.api.client.v2.model.ExperimentsUpdateMetricSQLModelV2RequestDataAttributes;
import com.datadog.api.client.v2.model.ExperimentsUpdateMetricSQLModelV2RequestDataType;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
ExperimentsApi apiInstance = new ExperimentsApi(defaultClient);
ExperimentsCreateMetricSQLModelV2Request body =
new ExperimentsCreateMetricSQLModelV2Request()
.data(
new ExperimentsCreateMetricSQLModelV2RequestData()
.attributes(
new ExperimentsUpdateMetricSQLModelV2RequestDataAttributes()
.datePartitionColumn(null)
.description(null)
.measures(
Collections.singletonList(
new ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems()
.columnName("revenue")
.columnType(
ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType
.FLOAT)
.description(null)
.name(null)))
.name("Order facts")
.properties(
Collections.singletonList(
new ExperimentsMetricSQLModelPropertyInput()
.columnName("item_type")
.columnType(
ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType
.STRING)
.description(null)
.name("item_type")))
.sql(
"SELECT user_id, order_id, item_type, revenue, created_at FROM"
+ " analytics.orders")
.subjectTypes(
Collections.singletonList(
new ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems()
.columnName("user_id")
.subjectTypeId("550e8400-e29b-41d4-a716-446655440010")))
.timestampColumn("created_at"))
.type(ExperimentsUpdateMetricSQLModelV2RequestDataType.METRIC_SQL_MODELS));
try {
ExperimentsMetricSQLModelV2DTO result = apiInstance.createMetricSQLModel(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling ExperimentsApi#createMetricSQLModel");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Instructions
First install the library and its dependencies and then save the example to Example.java and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java""""
Create metric SQL model returns "Created" response
"""
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.experiments_api import ExperimentsApi
from datadog_api_client.v2.model.experiments_create_exposure_sql_model_v2_request_data_attributes_items_column_type import (
ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType,
)
from datadog_api_client.v2.model.experiments_create_exposure_sql_model_v2_request_data_attributes_subject_types_items import (
ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems,
)
from datadog_api_client.v2.model.experiments_create_metric_sql_model_v2_request import (
ExperimentsCreateMetricSQLModelV2Request,
)
from datadog_api_client.v2.model.experiments_create_metric_sql_model_v2_request_data import (
ExperimentsCreateMetricSQLModelV2RequestData,
)
from datadog_api_client.v2.model.experiments_create_metric_sql_model_v2_request_data_attributes_measures_items import (
ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems,
)
from datadog_api_client.v2.model.experiments_metric_sql_model_property_input import (
ExperimentsMetricSQLModelPropertyInput,
)
from datadog_api_client.v2.model.experiments_update_metric_sql_model_v2_request_data_attributes import (
ExperimentsUpdateMetricSQLModelV2RequestDataAttributes,
)
from datadog_api_client.v2.model.experiments_update_metric_sql_model_v2_request_data_type import (
ExperimentsUpdateMetricSQLModelV2RequestDataType,
)
body = ExperimentsCreateMetricSQLModelV2Request(
data=ExperimentsCreateMetricSQLModelV2RequestData(
attributes=ExperimentsUpdateMetricSQLModelV2RequestDataAttributes(
date_partition_column=None,
description=None,
measures=[
ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems(
column_name="revenue",
column_type=ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType.FLOAT,
description=None,
name=None,
),
],
name="Order facts",
properties=[
ExperimentsMetricSQLModelPropertyInput(
column_name="item_type",
column_type=ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType.STRING,
description=None,
name="item_type",
),
],
sql="SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
subject_types=[
ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems(
column_name="user_id",
subject_type_id="550e8400-e29b-41d4-a716-446655440010",
),
],
timestamp_column="created_at",
),
type=ExperimentsUpdateMetricSQLModelV2RequestDataType.METRIC_SQL_MODELS,
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
api_instance = ExperimentsApi(api_client)
response = api_instance.create_metric_sql_model(body=body)
print(response)
Instructions
First install the library and its dependencies and then save the example to example.py and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"# Create metric SQL model returns "Created" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::ExperimentsAPI.new
body = DatadogAPIClient::V2::ExperimentsCreateMetricSQLModelV2Request.new({
data: DatadogAPIClient::V2::ExperimentsCreateMetricSQLModelV2RequestData.new({
attributes: DatadogAPIClient::V2::ExperimentsUpdateMetricSQLModelV2RequestDataAttributes.new({
date_partition_column: nil,
description: nil,
measures: [
DatadogAPIClient::V2::ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems.new({
column_name: "revenue",
column_type: DatadogAPIClient::V2::ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType::FLOAT,
description: nil,
name: nil,
}),
],
name: "Order facts",
properties: [
DatadogAPIClient::V2::ExperimentsMetricSQLModelPropertyInput.new({
column_name: "item_type",
column_type: DatadogAPIClient::V2::ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType::STRING,
description: nil,
name: "item_type",
}),
],
sql: "SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders",
subject_types: [
DatadogAPIClient::V2::ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems.new({
column_name: "user_id",
subject_type_id: "550e8400-e29b-41d4-a716-446655440010",
}),
],
timestamp_column: "created_at",
}),
type: DatadogAPIClient::V2::ExperimentsUpdateMetricSQLModelV2RequestDataType::METRIC_SQL_MODELS,
}),
})
p api_instance.create_metric_sql_model(body)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"// Create metric SQL model returns "Created" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_experiments::ExperimentsAPI;
use datadog_api_client::datadogV2::model::ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType;
use datadog_api_client::datadogV2::model::ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems;
use datadog_api_client::datadogV2::model::ExperimentsCreateMetricSQLModelV2Request;
use datadog_api_client::datadogV2::model::ExperimentsCreateMetricSQLModelV2RequestData;
use datadog_api_client::datadogV2::model::ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems;
use datadog_api_client::datadogV2::model::ExperimentsMetricSQLModelPropertyInput;
use datadog_api_client::datadogV2::model::ExperimentsUpdateMetricSQLModelV2RequestDataAttributes;
use datadog_api_client::datadogV2::model::ExperimentsUpdateMetricSQLModelV2RequestDataType;
#[tokio::main]
async fn main() {
let body = ExperimentsCreateMetricSQLModelV2Request::new(
ExperimentsCreateMetricSQLModelV2RequestData::new(
ExperimentsUpdateMetricSQLModelV2RequestDataAttributes::new(
"Order facts".to_string(),
"SELECT user_id, order_id, item_type, revenue, created_at FROM analytics.orders"
.to_string(),
vec![
ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems::new(
"user_id".to_string(),
"550e8400-e29b-41d4-a716-446655440010".to_string(),
),
],
"created_at".to_string(),
)
.date_partition_column(None)
.description(None)
.measures(vec![
ExperimentsCreateMetricSQLModelV2RequestDataAttributesMeasuresItems::new(
"revenue".to_string(),
ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType::FLOAT,
)
.description(None)
.name(None),
])
.properties(vec![ExperimentsMetricSQLModelPropertyInput::new(
"item_type".to_string(),
ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType::STRING,
"item_type".to_string(),
)
.description(None)]),
ExperimentsUpdateMetricSQLModelV2RequestDataType::METRIC_SQL_MODELS,
),
);
let configuration = datadog::Configuration::new();
let api = ExperimentsAPI::with_config(configuration);
let resp = api.create_metric_sql_model(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}
Instructions
First install the library and its dependencies and then save the example to src/main.rs and run following commands:
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run