- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
API를 사용해 그래프 스냅샷 찍기
GET https://api.ap1.datadoghq.com/api/v1/graph/snapshothttps://api.datadoghq.eu/api/v1/graph/snapshothttps://api.ddog-gov.com/api/v1/graph/snapshothttps://api.datadoghq.com/api/v1/graph/snapshothttps://api.us3.datadoghq.com/api/v1/graph/snapshothttps://api.us5.datadoghq.com/api/v1/graph/snapshot
Take graph snapshots. Note: When a snapshot is created, there is some delay before it is available.
이름
유형
설명
metric_query
string
The metric query.
start [required]
integer
The POSIX timestamp of the start of the query in seconds.
end [required]
integer
The POSIX timestamp of the end of the query in seconds.
event_query
string
A query that adds event bands to the graph.
graph_def
string
A JSON document defining the graph. graph_def
can be used instead of metric_query
.
The JSON document uses the grammar defined here
and should be formatted to a single line then URL encoded.
title
string
A title for the graph. If no title is specified, the graph does not have a title.
height
integer
The height of the graph. If no height is specified, the graph’s original height is used.
width
integer
The width of the graph. If no width is specified, the graph’s original width is used.
OK
Object representing a graph snapshot.
{
"graph_def": "string",
"metric_query": "string",
"snapshot_url": "https://app.datadoghq.com/s/f12345678/aaa-bbb-ccc"
}
Bad Request
Error response object.
{
"errors": [
"Bad Request"
]
}
Forbidden
Error response object.
{
"errors": [
"Bad Request"
]
}
Too many requests
Error response object.
{
"errors": [
"Bad Request"
]
}
# Required query arguments
export metric_query="CHANGE_ME"
export start="CHANGE_ME"
export end="CHANGE_ME"
# Curl command
curl -X GET "https://api.ap1.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v1/graph/snapshot?metric_query=${metric_query}&start=${start}&end=${end}" \
-H "Accept: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
"""
Take graph snapshots returns "OK" response
"""
from datetime import datetime
from dateutil.relativedelta import relativedelta
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.snapshots_api import SnapshotsApi
configuration = Configuration()
with ApiClient(configuration) as api_client:
api_instance = SnapshotsApi(api_client)
response = api_instance.get_graph_snapshot(
metric_query="avg:system.load.1{*}",
start=int((datetime.now() + relativedelta(days=-1)).timestamp()),
end=int(datetime.now().timestamp()),
title="System load",
height=400,
width=600,
)
print(response)
First install the library and its dependencies and then save the example to example.py
and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
# Take graph snapshots returns "OK" response
require "datadog_api_client"
api_instance = DatadogAPIClient::V1::SnapshotsAPI.new
opts = {
metric_query: "avg:system.load.1{*}",
title: "System load",
height: 400,
width: 600,
}
p api_instance.get_graph_snapshot((Time.now + -1 * 86400).to_i, Time.now.to_i, opts)
First install the library and its dependencies and then save the example to example.rb
and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
require 'rubygems'
require 'dogapi'
api_key = '<DATADOG_API_KEY>'
app_key = '<DATADOG_APPLICATION_KEY>'
dog = Dogapi::Client.new(api_key, app_key)
end_ts = Time.now().to_i
start_ts = end_ts - (60 * 60)
dog.graph_snapshot("system.load.1{*}", start_ts, end_ts)
First install the library and its dependencies and then save the example to example.rb
and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// Take graph snapshots returns "OK" 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() {
ctx := datadog.NewDefaultContext(context.Background())
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV1.NewSnapshotsApi(apiClient)
resp, r, err := api.GetGraphSnapshot(ctx, time.Now().AddDate(0, 0, -1).Unix(), time.Now().Unix(), *datadogV1.NewGetGraphSnapshotOptionalParameters().WithMetricQuery("avg:system.load.1{*}").WithTitle("System load").WithHeight(400).WithWidth(600))
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SnapshotsApi.GetGraphSnapshot`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `SnapshotsApi.GetGraphSnapshot`:\n%s\n", responseContent)
}
First install the library and its dependencies and then save the example to main.go
and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
// Take graph snapshots returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.SnapshotsApi;
import com.datadog.api.client.v1.api.SnapshotsApi.GetGraphSnapshotOptionalParameters;
import com.datadog.api.client.v1.model.GraphSnapshot;
import java.time.OffsetDateTime;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
SnapshotsApi apiInstance = new SnapshotsApi(defaultClient);
try {
GraphSnapshot result =
apiInstance.getGraphSnapshot(
OffsetDateTime.now().plusDays(-1).toInstant().getEpochSecond(),
OffsetDateTime.now().toInstant().getEpochSecond(),
new GetGraphSnapshotOptionalParameters()
.metricQuery("avg:system.load.1{*}")
.title("System load")
.height(400L)
.width(600L));
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling SnapshotsApi#getGraphSnapshot");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
First install the library and its dependencies and then save the example to Example.java
and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
from datadog import initialize, api
import time
options = {
'api_key': '<DATADOG_API_KEY>',
'app_key': '<DATADOG_APPLICATION_KEY>'
}
initialize(**options)
# Take a graph snapshot
end = int(time.time())
start = end - (60 * 60)
api.Graph.create(
graph_def='{\
"viz": "timeseries", \
"requests": [ \
{"q": "avg:system.load.1{*}", "conditional_formats": [], "type": "line"},\
{"q": "avg:system.load.5{*}", "type": "line"}, \
{"q": "avg:system.load.15{*}", "type": "line"}\
], \
"events": [\
{"q": "hosts:* ", "tags_execution": "and"}\
]}',
start=start,
end=end
)
First install the library and its dependencies and then save the example to example.py
and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python "example.py"
// Take graph snapshots returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_snapshots::GetGraphSnapshotOptionalParams;
use datadog_api_client::datadogV1::api_snapshots::SnapshotsAPI;
#[tokio::main]
async fn main() {
let configuration = datadog::Configuration::new();
let api = SnapshotsAPI::with_config(configuration);
let resp = api
.get_graph_snapshot(
1636542671,
1636629071,
GetGraphSnapshotOptionalParams::default()
.metric_query("avg:system.load.1{*}".to_string())
.title("System load".to_string())
.height(400)
.width(600),
)
.await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}
First install the library and its dependencies and then save the example to src/main.rs
and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
* Take graph snapshots returns "OK" response
*/
import { client, v1 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration();
const apiInstance = new v1.SnapshotsApi(configuration);
const params: v1.SnapshotsApiGetGraphSnapshotRequest = {
metricQuery: "avg:system.load.1{*}",
start: Math.round(
new Date(new Date().getTime() + -1 * 86400 * 1000).getTime() / 1000
),
end: Math.round(new Date().getTime() / 1000),
title: "System load",
height: 400,
width: 600,
};
apiInstance
.getGraphSnapshot(params)
.then((data: v1.GraphSnapshot) => {
console.log(
"API called successfully. Returned data: " + JSON.stringify(data)
);
})
.catch((error: any) => console.error(error));
First install the library and its dependencies and then save the example to example.ts
and run following commands:
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"