Envoyer des métriques
https://api.datadoghq.com/api/v2/serieshttps://api.us3.datadoghq.com/api/v2/serieshttps://api.us5.datadoghq.com/api/v2/serieshttps://api.datadoghq.eu/api/v2/serieshttps://api.ap1.datadoghq.com/api/v2/serieshttps://api.ap2.datadoghq.com/api/v2/serieshttps://api.uk1.datadoghq.com/api/v2/serieshttps://api.ddog-gov.com/api/v2/serieshttps://api.us2.ddog-gov.com/api/v2/seriesPrésentation
L'endpoint de métriques vous permet d'envoyer des données de série temporelle afin de les représenter graphiquement dans les dashboards de Datadog. La limite de taille des charges utiles compressées est de 500 Ko (512 000 octets), tandis que celle des charges utiles non compressées est de 5 Mo (5 242 880 octets).
Si vous envoyez directement des métriques à l'API Datadog sans passer par DogStatsD, vous pouvez compter :
- 64 bits pour le timestamp
- 64 bits pour la valeur
- 20 octets pour les noms de métriques
- 50 octets pour la série temporelle
- La charge utile totale fait environ 100 octets.
Le nom du hast est celui des ressources dans le champ Ressources.
Arguments
Paramètres d'en-tête
Content-EncodingHTTP header used to compress the media-type.
deflatedeflate, zstd1, gzipRequête
Body Data (required)
series [required]La charge utile des métriques.
intervalIf the type of the metric is rate or count, define the corresponding interval in seconds.
metadataMetadata for the metric.
originMetric origin information.
metric_typeThe origin metric type code
0productThe origin product code
0serviceThe origin service code
0metric [required]The name of the timeseries.
points [required]Points relating to a metric. All points must be objects with timestamp and a scalar value (cannot be a string). Timestamps should be in POSIX time in seconds, and cannot be more than ten minutes in the future or more than one hour in the past.
timestampThe timestamp should be in seconds and current. Current is defined as not more than 10 minutes in the future or more than 1 hour in the past.
valueThe numeric value format should be a 64bit float gauge-type value.
resourcesA list of resources to associate with this metric.
nameThe name of the resource.
typeThe type of the resource.
source_type_nameThe source type name.
tagsA list of tags associated with the metric.
typeThe type of metric. The available types are 0 (unspecified), 1 (count), 2 (rate), and 3 (gauge).
0, 1, 2, 3unitThe unit of point value.
Submit metrics returns "Payload accepted" response
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
],
"resources": [
{
"name": "dummyhost",
"type": "host"
}
]
}
]
}Submit metrics with compression returns "Payload accepted" response
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
]
}
]
}Réponse
Payload accepted
The payload accepted for intake.
errorsA list of errors.
{
"errors": []
}Bad Request
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Authentication error
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Request timeout
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Payload too large
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Too many requests
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Exemple de code
Submit metrics returns "Payload accepted" response
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
],
"resources": [
{
"name": "dummyhost",
"type": "host"
}
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
],
"resources": [
{
"name": "dummyhost",
"type": "host"
}
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
],
"resources": [
{
"name": "dummyhost",
"type": "host"
}
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
],
"resources": [
{
"name": "dummyhost",
"type": "host"
}
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
],
"resources": [
{
"name": "dummyhost",
"type": "host"
}
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
],
"resources": [
{
"name": "dummyhost",
"type": "host"
}
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
],
"resources": [
{
"name": "dummyhost",
"type": "host"
}
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
],
"resources": [
{
"name": "dummyhost",
"type": "host"
}
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
],
"resources": [
{
"name": "dummyhost",
"type": "host"
}
]
}
]
}
EOFSubmit metrics with compression returns "Payload accepted" response
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
"timestamp": 1636629071,
"value": 0.7
}
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v2/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-Submit metrics returns "Payload accepted" response
// Submit metrics returns "Payload accepted" response
package main
import (
"context"
"encoding/json"
"fmt"
"os"
"time"
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)
func main() {
body := datadogV2.MetricPayload{
Series: []datadogV2.MetricSeries{
{
Metric: "system.load.1",
Type: datadogV2.METRICINTAKETYPE_UNSPECIFIED.Ptr(),
Points: []datadogV2.MetricPoint{
{
Timestamp: datadog.PtrInt64(time.Now().Unix()),
Value: datadog.PtrFloat64(0.7),
},
},
Resources: []datadogV2.MetricResource{
{
Name: datadog.PtrString("dummyhost"),
Type: datadog.PtrString("host"),
},
},
},
},
}
ctx := datadog.NewDefaultContext(context.Background())
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewMetricsApi(apiClient)
resp, r, err := api.SubmitMetrics(ctx, body, *datadogV2.NewSubmitMetricsOptionalParameters())
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `MetricsApi.SubmitMetrics`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `MetricsApi.SubmitMetrics`:\n%s\n", responseContent)
}
Submit metrics with compression returns "Payload accepted" response
// Submit metrics with compression returns "Payload accepted" response
package main
import (
"context"
"encoding/json"
"fmt"
"os"
"time"
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)
func main() {
body := datadogV2.MetricPayload{
Series: []datadogV2.MetricSeries{
{
Metric: "system.load.1",
Type: datadogV2.METRICINTAKETYPE_UNSPECIFIED.Ptr(),
Points: []datadogV2.MetricPoint{
{
Timestamp: datadog.PtrInt64(time.Now().Unix()),
Value: datadog.PtrFloat64(0.7),
},
},
},
},
}
ctx := datadog.NewDefaultContext(context.Background())
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewMetricsApi(apiClient)
resp, r, err := api.SubmitMetrics(ctx, body, *datadogV2.NewSubmitMetricsOptionalParameters().WithContentEncoding(datadogV2.METRICCONTENTENCODING_ZSTD1))
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `MetricsApi.SubmitMetrics`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `MetricsApi.SubmitMetrics`:\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_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"Submit metrics returns "Payload accepted" response
// Submit metrics returns "Payload accepted" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.MetricsApi;
import com.datadog.api.client.v2.model.IntakePayloadAccepted;
import com.datadog.api.client.v2.model.MetricIntakeType;
import com.datadog.api.client.v2.model.MetricPayload;
import com.datadog.api.client.v2.model.MetricPoint;
import com.datadog.api.client.v2.model.MetricResource;
import com.datadog.api.client.v2.model.MetricSeries;
import java.time.OffsetDateTime;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
MetricsApi apiInstance = new MetricsApi(defaultClient);
MetricPayload body =
new MetricPayload()
.series(
Collections.singletonList(
new MetricSeries()
.metric("system.load.1")
.type(MetricIntakeType.UNSPECIFIED)
.points(
Collections.singletonList(
new MetricPoint()
.timestamp(OffsetDateTime.now().toInstant().getEpochSecond())
.value(0.7)))
.resources(
Collections.singletonList(
new MetricResource().name("dummyhost").type("host")))));
try {
IntakePayloadAccepted result = apiInstance.submitMetrics(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MetricsApi#submitMetrics");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Submit metrics with compression returns "Payload accepted" response
// Submit metrics with compression returns "Payload accepted" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.MetricsApi;
import com.datadog.api.client.v2.api.MetricsApi.SubmitMetricsOptionalParameters;
import com.datadog.api.client.v2.model.IntakePayloadAccepted;
import com.datadog.api.client.v2.model.MetricContentEncoding;
import com.datadog.api.client.v2.model.MetricIntakeType;
import com.datadog.api.client.v2.model.MetricPayload;
import com.datadog.api.client.v2.model.MetricPoint;
import com.datadog.api.client.v2.model.MetricSeries;
import java.time.OffsetDateTime;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
MetricsApi apiInstance = new MetricsApi(defaultClient);
MetricPayload body =
new MetricPayload()
.series(
Collections.singletonList(
new MetricSeries()
.metric("system.load.1")
.type(MetricIntakeType.UNSPECIFIED)
.points(
Collections.singletonList(
new MetricPoint()
.timestamp(OffsetDateTime.now().toInstant().getEpochSecond())
.value(0.7)))));
try {
IntakePayloadAccepted result =
apiInstance.submitMetrics(
body,
new SubmitMetricsOptionalParameters().contentEncoding(MetricContentEncoding.ZSTD1));
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MetricsApi#submitMetrics");
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_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"Submit metrics returns "Payload accepted" response
"""
Submit metrics returns "Payload accepted" response
"""
from datetime import datetime
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.metrics_api import MetricsApi
from datadog_api_client.v2.model.metric_intake_type import MetricIntakeType
from datadog_api_client.v2.model.metric_payload import MetricPayload
from datadog_api_client.v2.model.metric_point import MetricPoint
from datadog_api_client.v2.model.metric_resource import MetricResource
from datadog_api_client.v2.model.metric_series import MetricSeries
body = MetricPayload(
series=[
MetricSeries(
metric="system.load.1",
type=MetricIntakeType.UNSPECIFIED,
points=[
MetricPoint(
timestamp=int(datetime.now().timestamp()),
value=0.7,
),
],
resources=[
MetricResource(
name="dummyhost",
type="host",
),
],
),
],
)
configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = MetricsApi(api_client)
response = api_instance.submit_metrics(body=body)
print(response)
Submit metrics with compression returns "Payload accepted" response
"""
Submit metrics with compression returns "Payload accepted" response
"""
from datetime import datetime
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.metrics_api import MetricsApi
from datadog_api_client.v2.model.metric_content_encoding import MetricContentEncoding
from datadog_api_client.v2.model.metric_intake_type import MetricIntakeType
from datadog_api_client.v2.model.metric_payload import MetricPayload
from datadog_api_client.v2.model.metric_point import MetricPoint
from datadog_api_client.v2.model.metric_series import MetricSeries
body = MetricPayload(
series=[
MetricSeries(
metric="system.load.1",
type=MetricIntakeType.UNSPECIFIED,
points=[
MetricPoint(
timestamp=int(datetime.now().timestamp()),
value=0.7,
),
],
),
],
)
configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = MetricsApi(api_client)
response = api_instance.submit_metrics(content_encoding=MetricContentEncoding.ZSTD1, 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_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"Submit metrics returns "Payload accepted" response
# Submit metrics returns "Payload accepted" response
require "datadog_api_client"
api_instance = DatadogAPIClient::V2::MetricsAPI.new
body = DatadogAPIClient::V2::MetricPayload.new({
series: [
DatadogAPIClient::V2::MetricSeries.new({
metric: "system.load.1",
type: DatadogAPIClient::V2::MetricIntakeType::UNSPECIFIED,
points: [
DatadogAPIClient::V2::MetricPoint.new({
timestamp: Time.now.to_i,
value: 0.7,
}),
],
resources: [
DatadogAPIClient::V2::MetricResource.new({
name: "dummyhost",
type: "host",
}),
],
}),
],
})
p api_instance.submit_metrics(body)
Submit metrics with compression returns "Payload accepted" response
# Submit metrics with compression returns "Payload accepted" response
require "datadog_api_client"
api_instance = DatadogAPIClient::V2::MetricsAPI.new
body = DatadogAPIClient::V2::MetricPayload.new({
series: [
DatadogAPIClient::V2::MetricSeries.new({
metric: "system.load.1",
type: DatadogAPIClient::V2::MetricIntakeType::UNSPECIFIED,
points: [
DatadogAPIClient::V2::MetricPoint.new({
timestamp: Time.now.to_i,
value: 0.7,
}),
],
}),
],
})
opts = {
content_encoding: MetricContentEncoding::ZSTD1,
}
p api_instance.submit_metrics(body, opts)
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_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"Submit metrics returns "Payload accepted" response
// Submit metrics returns "Payload accepted" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_metrics::MetricsAPI;
use datadog_api_client::datadogV2::api_metrics::SubmitMetricsOptionalParams;
use datadog_api_client::datadogV2::model::MetricIntakeType;
use datadog_api_client::datadogV2::model::MetricPayload;
use datadog_api_client::datadogV2::model::MetricPoint;
use datadog_api_client::datadogV2::model::MetricResource;
use datadog_api_client::datadogV2::model::MetricSeries;
#[tokio::main]
async fn main() {
let body = MetricPayload::new(vec![MetricSeries::new(
"system.load.1".to_string(),
vec![MetricPoint::new().timestamp(1636629071).value(0.7 as f64)],
)
.resources(vec![MetricResource::new()
.name("dummyhost".to_string())
.type_("host".to_string())])
.type_(MetricIntakeType::UNSPECIFIED)]);
let configuration = datadog::Configuration::new();
let api = MetricsAPI::with_config(configuration);
let resp = api
.submit_metrics(body, SubmitMetricsOptionalParams::default())
.await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}
Submit metrics with compression returns "Payload accepted" response
// Submit metrics with compression returns "Payload accepted" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_metrics::MetricsAPI;
use datadog_api_client::datadogV2::api_metrics::SubmitMetricsOptionalParams;
use datadog_api_client::datadogV2::model::MetricContentEncoding;
use datadog_api_client::datadogV2::model::MetricIntakeType;
use datadog_api_client::datadogV2::model::MetricPayload;
use datadog_api_client::datadogV2::model::MetricPoint;
use datadog_api_client::datadogV2::model::MetricSeries;
#[tokio::main]
async fn main() {
let body = MetricPayload::new(vec![MetricSeries::new(
"system.load.1".to_string(),
vec![MetricPoint::new().timestamp(1636629071).value(0.7 as f64)],
)
.type_(MetricIntakeType::UNSPECIFIED)]);
let configuration = datadog::Configuration::new();
let api = MetricsAPI::with_config(configuration);
let resp = api
.submit_metrics(
body,
SubmitMetricsOptionalParams::default().content_encoding(MetricContentEncoding::ZSTD1),
)
.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>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" cargo runSubmit metrics returns "Payload accepted" response
/**
* Submit metrics returns "Payload accepted" response
*/
import { client, v2 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration();
const apiInstance = new v2.MetricsApi(configuration);
const params: v2.MetricsApiSubmitMetricsRequest = {
body: {
series: [
{
metric: "system.load.1",
type: 0,
points: [
{
timestamp: Math.round(new Date().getTime() / 1000),
value: 0.7,
},
],
resources: [
{
name: "dummyhost",
type: "host",
},
],
},
],
},
};
apiInstance
.submitMetrics(params)
.then((data: v2.IntakePayloadAccepted) => {
console.log(
"API called successfully. Returned data: " + JSON.stringify(data)
);
})
.catch((error: any) => console.error(error));
Submit metrics with compression returns "Payload accepted" response
/**
* Submit metrics with compression returns "Payload accepted" response
*/
import { client, v2 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration();
const apiInstance = new v2.MetricsApi(configuration);
const params: v2.MetricsApiSubmitMetricsRequest = {
body: {
series: [
{
metric: "system.load.1",
type: 0,
points: [
{
timestamp: Math.round(new Date().getTime() / 1000),
value: 0.7,
},
],
},
],
},
contentEncoding: "zstd1",
};
apiInstance
.submitMetrics(params)
.then((data: v2.IntakePayloadAccepted) => {
console.log(
"API called successfully. Returned data: " + JSON.stringify(data)
);
})
.catch((error: any) => console.error(error));
Instructions
First install the library and its dependencies and then save the example to example.ts and run following commands:
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"https://api.datadoghq.com/api/v1/serieshttps://api.us3.datadoghq.com/api/v1/serieshttps://api.us5.datadoghq.com/api/v1/serieshttps://api.datadoghq.eu/api/v1/serieshttps://api.ap1.datadoghq.com/api/v1/serieshttps://api.ap2.datadoghq.com/api/v1/serieshttps://api.uk1.datadoghq.com/api/v1/serieshttps://api.ddog-gov.com/api/v1/serieshttps://api.us2.ddog-gov.com/api/v1/seriesPrésentation
L'endpoint de métriques vous permet d'envoyer des données de série temporelle afin de les représenter graphiquement dans les dashboards de Datadog. La limite de taille des charges utiles compressées est de 3,2 Mo (3 200 000 octets), tandis que celle des charges utiles non compressées est de 62 Mo (62 914 560 octets).
Si vous envoyez directement des métriques à l'API Datadog sans passer par DogStatsD, vous pouvez compter :
- 64 bits pour le timestamp
- 64 bits pour la valeur
- 40 octets pour les noms de métriques
- 50 octets pour la série temporelle
- La charge utile totale fait environ 100 octets. Cependant, avec l'API DogStatsD, cette charge est compressée afin de réduire son poids.
Arguments
Paramètres d'en-tête
Content-EncodingHTTP header used to compress the media-type.
deflatedeflate, gzipRequête
Body Data (required)
series [required]La charge utile des métriques.
hostThe name of the host that produced the metric.
intervalIf the type of the metric is rate or count, define the corresponding interval in seconds.
nullmetric [required]The name of the timeseries.
points [required]Points relating to a metric. All points must be tuples with timestamp and a scalar value (cannot be a string). Timestamps should be in POSIX time in seconds, and cannot be more than ten minutes in the future or more than one hour in the past.
tagsA list of tags associated with the metric.
typeThe type of the metric. Valid types are "",count, gauge, and rate.
""Submit deflate metrics returns "Payload accepted" response
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}Submit metrics returns "Payload accepted" response
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}Réponse
Payload accepted
The payload accepted for intake.
statusThe status of the intake payload.
{
"status": "ok"
}Bad Request
Error response object.
errors [required]Array of errors returned by the API.
{
"errors": [
"Bad Request"
]
}Authentication error
Error response object.
errors [required]Array of errors returned by the API.
{
"errors": [
"Bad Request"
]
}Request timeout
Error response object.
errors [required]Array of errors returned by the API.
{
"errors": [
"Bad Request"
]
}Payload too large
Error response object.
errors [required]Array of errors returned by the API.
{
"errors": [
"Bad Request"
]
}Too many requests
Error response object.
errors [required]Array of errors returned by the API.
{
"errors": [
"Bad Request"
]
}Exemple de code
Submit deflate metrics returns "Payload accepted" response
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
export DD_API_KEY="<DD_API_KEY>"
printf '%s' "$(cat <<'EOF'
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF
)" | python3 -c 'import sys, zlib; sys.stdout.buffer.write(zlib.compress(sys.stdin.buffer.read()))' | curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Content-Encoding: deflate" \
-H "DD-API-KEY: ${DD_API_KEY}" \
--data-binary @-Submit metrics returns "Payload accepted" response
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
export DD_API_KEY="<DD_API_KEY>"
curl -X POST "https://api.${DD_SITE}/api/v1/series" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": "gauge",
"points": [
[
1636629071,
1.1
]
],
"tags": [
"test:ExampleMetric"
]
}
]
}
EOFSubmit deflate metrics returns "Payload accepted" response
// Submit deflate metrics returns "Payload accepted" response
package main
import (
"context"
"encoding/json"
"fmt"
"os"
"time"
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
"github.com/DataDog/datadog-api-client-go/v2/api/datadogV1"
)
func main() {
body := datadogV1.MetricsPayload{
Series: []datadogV1.Series{
{
Metric: "system.load.1",
Type: datadog.PtrString("gauge"),
Points: [][]*float64{
{
datadog.PtrFloat64(float64(time.Now().Unix())),
datadog.PtrFloat64(1.1),
},
},
Tags: []string{
"test:ExampleMetric",
},
},
},
}
ctx := datadog.NewDefaultContext(context.Background())
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV1.NewMetricsApi(apiClient)
resp, r, err := api.SubmitMetrics(ctx, body, *datadogV1.NewSubmitMetricsOptionalParameters().WithContentEncoding(datadogV1.METRICCONTENTENCODING_DEFLATE))
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `MetricsApi.SubmitMetrics`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `MetricsApi.SubmitMetrics`:\n%s\n", responseContent)
}
Submit metrics returns "Payload accepted" response
// Submit metrics returns "Payload accepted" response
package main
import (
"context"
"encoding/json"
"fmt"
"os"
"time"
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
"github.com/DataDog/datadog-api-client-go/v2/api/datadogV1"
)
func main() {
body := datadogV1.MetricsPayload{
Series: []datadogV1.Series{
{
Metric: "system.load.1",
Type: datadog.PtrString("gauge"),
Points: [][]*float64{
{
datadog.PtrFloat64(float64(time.Now().Unix())),
datadog.PtrFloat64(1.1),
},
},
Tags: []string{
"test:ExampleMetric",
},
},
},
}
ctx := datadog.NewDefaultContext(context.Background())
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV1.NewMetricsApi(apiClient)
resp, r, err := api.SubmitMetrics(ctx, body, *datadogV1.NewSubmitMetricsOptionalParameters())
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `MetricsApi.SubmitMetrics`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `MetricsApi.SubmitMetrics`:\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_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" go run "main.go"Submit deflate metrics returns "Payload accepted" response
// Submit deflate metrics returns "Payload accepted" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.MetricsApi;
import com.datadog.api.client.v1.api.MetricsApi.SubmitMetricsOptionalParameters;
import com.datadog.api.client.v1.model.IntakePayloadAccepted;
import com.datadog.api.client.v1.model.MetricContentEncoding;
import com.datadog.api.client.v1.model.MetricsPayload;
import com.datadog.api.client.v1.model.Series;
import java.time.OffsetDateTime;
import java.util.Arrays;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
MetricsApi apiInstance = new MetricsApi(defaultClient);
MetricsPayload body =
new MetricsPayload()
.series(
Collections.singletonList(
new Series()
.metric("system.load.1")
.type("gauge")
.points(
Collections.singletonList(
Arrays.asList(
Long.valueOf(OffsetDateTime.now().toInstant().getEpochSecond())
.doubleValue(),
1.1)))
.tags(Collections.singletonList("test:ExampleMetric"))));
try {
IntakePayloadAccepted result =
apiInstance.submitMetrics(
body,
new SubmitMetricsOptionalParameters().contentEncoding(MetricContentEncoding.DEFLATE));
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MetricsApi#submitMetrics");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Submit metrics returns "Payload accepted" response
// Submit metrics returns "Payload accepted" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.MetricsApi;
import com.datadog.api.client.v1.model.IntakePayloadAccepted;
import com.datadog.api.client.v1.model.MetricsPayload;
import com.datadog.api.client.v1.model.Series;
import java.time.OffsetDateTime;
import java.util.Arrays;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
MetricsApi apiInstance = new MetricsApi(defaultClient);
MetricsPayload body =
new MetricsPayload()
.series(
Collections.singletonList(
new Series()
.metric("system.load.1")
.type("gauge")
.points(
Collections.singletonList(
Arrays.asList(
Long.valueOf(OffsetDateTime.now().toInstant().getEpochSecond())
.doubleValue(),
1.1)))
.tags(Collections.singletonList("test:ExampleMetric"))));
try {
IntakePayloadAccepted result = apiInstance.submitMetrics(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MetricsApi#submitMetrics");
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_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" java "Example.java"Submit deflate metrics returns "Payload accepted" response
"""
Submit deflate metrics returns "Payload accepted" response
"""
from datetime import datetime
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.metrics_api import MetricsApi
from datadog_api_client.v1.model.metric_content_encoding import MetricContentEncoding
from datadog_api_client.v1.model.metrics_payload import MetricsPayload
from datadog_api_client.v1.model.point import Point
from datadog_api_client.v1.model.series import Series
body = MetricsPayload(
series=[
Series(
metric="system.load.1",
type="gauge",
points=[
Point(
[
datetime.now().timestamp(),
1.1,
]
),
],
tags=[
"test:ExampleMetric",
],
),
],
)
configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = MetricsApi(api_client)
response = api_instance.submit_metrics(content_encoding=MetricContentEncoding.DEFLATE, body=body)
print(response)
Submit metrics returns "Payload accepted" response
"""
Submit metrics returns "Payload accepted" response
"""
from datetime import datetime
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.metrics_api import MetricsApi
from datadog_api_client.v1.model.metrics_payload import MetricsPayload
from datadog_api_client.v1.model.point import Point
from datadog_api_client.v1.model.series import Series
body = MetricsPayload(
series=[
Series(
metric="system.load.1",
type="gauge",
points=[
Point(
[
datetime.now().timestamp(),
1.1,
]
),
],
tags=[
"test:ExampleMetric",
],
),
],
)
configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = MetricsApi(api_client)
response = api_instance.submit_metrics(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_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" python3 "example.py"Submit deflate metrics returns "Payload accepted" response
# Submit deflate metrics returns "Payload accepted" response
require "datadog_api_client"
api_instance = DatadogAPIClient::V1::MetricsAPI.new
body = DatadogAPIClient::V1::MetricsPayload.new({
series: [
DatadogAPIClient::V1::Series.new({
metric: "system.load.1",
type: "gauge",
points: [
[
Time.now.to_f,
1.1,
],
],
tags: [
"test:ExampleMetric",
],
}),
],
})
opts = {
content_encoding: MetricContentEncoding::DEFLATE,
}
p api_instance.submit_metrics(body, opts)
Submit metrics returns "Payload accepted" response
# Submit metrics returns "Payload accepted" response
require "datadog_api_client"
api_instance = DatadogAPIClient::V1::MetricsAPI.new
body = DatadogAPIClient::V1::MetricsPayload.new({
series: [
DatadogAPIClient::V1::Series.new({
metric: "system.load.1",
type: "gauge",
points: [
[
Time.now.to_f,
1.1,
],
],
tags: [
"test:ExampleMetric",
],
}),
],
})
p api_instance.submit_metrics(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_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"Submit deflate metrics returns "Payload accepted" response
// Submit deflate metrics returns "Payload accepted" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_metrics::MetricsAPI;
use datadog_api_client::datadogV1::api_metrics::SubmitMetricsOptionalParams;
use datadog_api_client::datadogV1::model::MetricContentEncoding;
use datadog_api_client::datadogV1::model::MetricsPayload;
use datadog_api_client::datadogV1::model::Series;
#[tokio::main]
async fn main() {
let body = MetricsPayload::new(vec![Series::new(
"system.load.1".to_string(),
vec![vec![Some(1636629071.0 as f64), Some(1.1 as f64)]],
)
.tags(vec!["test:ExampleMetric".to_string()])
.type_("gauge".to_string())]);
let configuration = datadog::Configuration::new();
let api = MetricsAPI::with_config(configuration);
let resp = api
.submit_metrics(
body,
SubmitMetricsOptionalParams::default().content_encoding(MetricContentEncoding::DEFLATE),
)
.await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}
Submit metrics returns "Payload accepted" response
// Submit metrics returns "Payload accepted" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_metrics::MetricsAPI;
use datadog_api_client::datadogV1::api_metrics::SubmitMetricsOptionalParams;
use datadog_api_client::datadogV1::model::MetricsPayload;
use datadog_api_client::datadogV1::model::Series;
#[tokio::main]
async fn main() {
let body = MetricsPayload::new(vec![Series::new(
"system.load.1".to_string(),
vec![vec![Some(1636629071.0 as f64), Some(1.1 as f64)]],
)
.tags(vec!["test:ExampleMetric".to_string()])
.type_("gauge".to_string())]);
let configuration = datadog::Configuration::new();
let api = MetricsAPI::with_config(configuration);
let resp = api
.submit_metrics(body, SubmitMetricsOptionalParams::default())
.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>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" cargo runSubmit deflate metrics returns "Payload accepted" response
/**
* Submit deflate metrics returns "Payload accepted" response
*/
import { client, v1 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration();
const apiInstance = new v1.MetricsApi(configuration);
const params: v1.MetricsApiSubmitMetricsRequest = {
body: {
series: [
{
metric: "system.load.1",
type: "gauge",
points: [[Math.round(new Date().getTime() / 1000), 1.1]],
tags: ["test:ExampleMetric"],
},
],
},
contentEncoding: "deflate",
};
apiInstance
.submitMetrics(params)
.then((data: v1.IntakePayloadAccepted) => {
console.log(
"API called successfully. Returned data: " + JSON.stringify(data)
);
})
.catch((error: any) => console.error(error));
Submit metrics returns "Payload accepted" response
/**
* Submit metrics returns "Payload accepted" response
*/
import { client, v1 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration();
const apiInstance = new v1.MetricsApi(configuration);
const params: v1.MetricsApiSubmitMetricsRequest = {
body: {
series: [
{
metric: "system.load.1",
type: "gauge",
points: [[Math.round(new Date().getTime() / 1000), 1.1]],
tags: ["test:ExampleMetric"],
},
],
},
};
apiInstance
.submitMetrics(params)
.then((data: v1.IntakePayloadAccepted) => {
console.log(
"API called successfully. Returned data: " + JSON.stringify(data)
);
})
.catch((error: any) => console.error(error));
Instructions
First install the library and its dependencies and then save the example to example.ts and run following commands:
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" tsc "example.ts"from datadog import initialize, api
import time
options = {
'api_key': '<DATADOG_API_KEY>'
## EU costumers need to define 'api_host' as below
#'api_host': 'https://api.datadoghq.eu/'
}
initialize(**options)
now = time.time()
future_10s = now + 10
# Submit a single point with a timestamp of `now`
api.Metric.send(metric='page.views', points=1000)
# Submit a point with a timestamp (must be current)
api.Metric.send(metric='my.pair', points=(now, 15))
# Submit multiple points.
api.Metric.send(
metric='my.series',
points=[
(now, 15),
(future_10s, 16)
]
)
# Submit a point with a host and tags.
api.Metric.send(
metric='my.series',
points=100,
host="myhost.example.com",
tags=["version:1"]
)
# Submit multiple metrics
api.Metric.send([{
'metric': 'my.series',
'points': 15
}, {
'metric': 'my1.series',
'points': 16
}])
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_API_KEY="<DD_API_KEY>" python "example.py"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python "example.py"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python "example.py"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" python "example.py"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python "example.py"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python "example.py"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" python "example.py"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" python "example.py"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" python "example.py"require 'rubygems'
require 'dogapi'
api_key = '<DATADOG_API_KEY>'
dog = Dogapi::Client.new(api_key)
# Submit one metric value.
dog.emit_point('some.metric.name', 50.0, :host => "my_host.example.com")
# Submit multiple metric values
points = [
[Time.now, 0],
[Time.now + 10, 10.0],
[Time.now + 20, 20.0]
]
dog.emit_points('some.metric.name', points, :tags => ["version:1"])
# Emit differents metrics in a single request to be more efficient
dog.batch_metrics do
dog.emit_point('test.api.test_metric',10)
dog.emit_point('test.api.this_other_metric', 1)
end
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_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" rb "example.rb"