V1 월간 사용량 API에서 V2로 마이그레이션
요약
2025년 2월 1일에 제품 엔드포인트별 개별 시간당 사용량은 v2 제품군별 시간당 사용량 API로 대체되어 더 이상 사용되지 않습니다.
v1 API 사용자는 통합된 v2 시간별 사용량 API를 사용할 수 있습니다. 비슷한 방식이나
약간 다른 형식으로 표현되어 있습니다.
v1 API와 v2 API의 가장 눈에 띄는 차이점은 v2 API가 다음의 성질을 지닌다는 점입니다.
- 모든 제품을 하나의 엔드포인트로 통합
- JSON:API 표준을 따름
- 페이지가 지정됨
- 요청당 여러 조직 및 리전에 대한 데이터를 반환할 수 있음
각 차이점은 다음 섹션에서 자세히 설명합니다.
통합 제품군
v2 API에는 제품군 및 사용 유형 개념이 도입되었습니다. 제품군은
하나 이상의 사용 유형으로 이루어진 그룹을 뜻합니다. 사용 유형은 특정 조직 및
기간에 대한 사용량 측정값입니다. all
을 선택하면 모든 제품군의 사용량을 검색할 수 있으며, 특정 제품군별로 필터링도 가능합니다.
아래 목록은 제품군 및 사용 유형이 v1 시간별 사용량 엔드포인트에 어떻게 매핑되는지 보여줍니다. 사용 유형과 데이터 포인트는 명시적으로 언급된 경우를 제외하고는 동일합니다.
- 엔드포인트 | 제품군
<base_url>/api/v1/usage/hosts
| infra_hostsagent_host_count
alibaba_host_count
apm_azure_app_service_host_count
apm_host_count
aws_host_count
azure_host_count
container_count
gcp_host_count
heroku_host_count
host_count
infra_azure_app_service
opentelemetry_host_count
vsphere_host_count
<base_url>/api/v1/usage/logs
| logsbillable_ingested_bytes
indexed_events_count
ingested_events_bytes
logs_live_indexed_count
logs_live_ingested_bytes
logs_rehydrated_indexed_count
logs_rehydrated_ingested_bytes
<base_url>/api/v1/usage/timeseries
| timeseriesnum_custom_input_timeseries
num_custom_output_timeseries
num_custom_timeseries
<base_url>/api/v1/usage/indexed-spans
| indexed_spansindexed_events_count
<base_url>/api/v1/usage/synthetics
- 더 이상 사용되지 않습니다. 신서틱 사용량에 대해서는 synthetics_api 및 synthetics_browser를 참조하세요.
<base_url>/api/v1/usage/synthetics_api
| synthetics_apicheck_calls_count
<base_url>/api/v1/usage/synthetics_browser
| synthetics_browserbrowser_check_calls_count
<base_url>/api/v1/usage/fargate
| fargateavg_profiled_fargate_tasks
tasks_count
<base_url>/api/v1/usage/aws_lambda
| serverlessfunc_count
invocations_sum
<base_url>/api/v1/usage/rum_sessions
| rum- 전체 매핑 지침은 RUM 마이그레이션 가이드를 참조하세요.
<base_url>/api/v1/usage/network_hosts
| network_hostshost_count
<base_url>/api/v1/usage/network_flows
| network_flowsindexed_events_count
<base_url>/api/v1/usage/logs-by-retention
| indexed_logs- 참고: 리텐션 값이 사용량 유형에 포함되기 때문에 이 URL에 대한 사용량 유형과 데이터 포인트는 별개입니다.
- 사용량 유형:
logs_indexed_events_<retention>_count
데이터 포인트: indexed_events_count
- 사용량 유형:
logs_live_indexed_events_<retention>_count
데이터 포인트: live_indexed_events_count
- 사용량 유형:
logs_rehydrated_indexed_events_<retention>_count
데이터 포인트: rehydrated_indexed_events_count
- 사용량 유형:
usage_type
에서 <retention>
을(를) 3_day
, 7_day
, 15_day
, 30_day
, 45_day
, 60_day
, 90_day
, 180_day
, 365_day
, custom
중 하나로 대체. 데이터 포인트: retention
<base_url>/api/v1/usage/analyzed_logs
| analyzed_logsanalyzed_logs
<base_url>/api/v1/usage/snmp
| snmpsnmp_devices
<base_url>/api/v1/usage/profiling
| profilinghost_count
<base_url>/api/v1/usage/ingested-spans
| ingested_spansingested_events_bytes
<base_url>/api/v1/usage/incident-management
| incident_managementmonthly_active_users
<base_url>/api/v1/usage/iot
| iotiot_device_count
<base_url>/api/v1/usage/cspm
| cspmaas_host_count
azure_host_count
compliance_host_count
container_count
host_count
<base_url>/api/v1/usage/cws
| cwscws_container_count
cws_host_count
<base_url>/api/v1/usage/dbm
| dbmdbm_host_count
dbm_queries_count
<base_url>/api/v1/usage/sds
| sdslogs_scanned_bytes
total_scanned_bytes
<base_url>/api/v1/usage/ci-app
| ci_appci_pipeline_indexed_spans
ci_test_indexed_spans
ci_visibility_pipeline_committers
ci_visibility_test_committers
<base_url>/api/v1/usage/online-archive
| online_archiveonline_archive_events_count
<base_url>/api/v2/usage/lambda_traced_invocations
| lambda_traced_invocationslambda_traced_invocations_count
<base_url>/api/v2/usage/application_security
| application_securityapp_sec_host_count
<base_url>/api/v2/usage/observability_pipelines
| observability_pipelinesobservability_pipelines_bytes_processed
JSON:API 준수 형식
응답 본문과 파라미터 이름은 JSON:API 사양을 준수합니다. v1에서 사용할 수 있는 모든 데이터
를 계속 사용할 수 있습니다. 아래에서 v1 호스트에서 v2 시간당 사용량 API로의
매핑 예시를 참조하세요.
V1 API: 호스트와 컨테이너의 시간당 사용량을 확인하세요.
요청
https://api.datadoghq.com/api/v1/usage/hosts?start_hr=2022-06-01T00&end_hr=2022-06-01T01
참고
- 제품은
hosts
경로의 요소입니다. - 시간 범위는
start_hr
및 end_hr
파라미터로 컨트롤됩니다.
응답
{
"usage": [
{
"agent_host_count": 1,
"alibaba_host_count": 2,
"apm_azure_app_service_host_count": 3,
"apm_host_count": 4,
"aws_host_count": 5,
"azure_host_count": 6,
"container_count": 7,
"gcp_host_count": 8,
"heroku_host_count": 9,
"host_count": 10,
"infra_azure_app_service": 11,
"opentelemetry_host_count": 12,
"vsphere_host_count": 13,
"hour": "2022-06-01T00",
"org_name": "Customer Inc",
"public_id": "abc123"
}
]
}
참고
- 각 시간의 사용량은 사용량 배열의 오브젝트로 표시됩니다.
- 사용량 유형은 오브젝트의 키이며, 해당 사용량 유형에 대해 측정된 사용량은 해당 값을 가리킵니다.
- 시간, 조직 이름 및 퍼블릭 ID도 오브젝트의 필드입니다.
V2 API: 제품군별 시간별 사용량 가져오기
요청
https://api.datadoghq.com/api/v2/usage/hourly_usage?filter[timestamp][start]=2022-06-01T00&filter[timestamp][end]=2022-06-01T01&filter[product_families]=infra_hosts
참고
- 제품은 쿼리 파라미터
filter[product_families]=infra_hosts
(으)로 전달됩니다. - 시간 범위는
filter[timestamp][start]
및 filter[timestamp][end]
파라미터로 컨트롤됩니다.
응답
{
"data": [
{
"attributes": {
"org_name": "Customer Inc",
"public_id": "abc123",
"timestamp": "2022-06-01T00:00:00+00:00",
"region": "us",
"measurements": [
{
"usage_type": "agent_host_count",
"value": 1
},
{
"usage_type": "alibaba_host_count",
"value": 2
},
{
"usage_type": "apm_azure_app_service_host_count",
"value": 3
},
{
"usage_type": "apm_host_count",
"value": 4
},
{
"usage_type": "aws_host_count",
"value": 5
},
{
"usage_type": "azure_host_count",
"value": 6
},
{
"usage_type": "container_count",
"value": 7
},
{
"usage_type": "gcp_host_count",
"value": 8
},
{
"usage_type": "heroku_host_count",
"value": 9
},
{
"usage_type": "host_count",
"value": 10
},
{
"usage_type": "infra_azure_app_service",
"value": 11
},
{
"usage_type": "opentelemetry_host_count",
"value": 12
},
{
"usage_type": "vsphere_host_count",
"value": 13
}
],
"product_family": "infra_hosts"
},
"type": "usage_timeseries",
"id": "ec3e0318b98d15c2ae8125e8bda0ff487cd08d80b120fb340c9322ee16f28629"
}
]
}
참고
- 데이터 배열의 오브젝트는 각 제품 및 각 조직에 대한 시간당 사용량을 나타냅니다.
- V1 API는 요청 1건에서 여러 제품 또는 여러 조직을 지원하지 않았습니다.
- 사용량 측정은 중첩된
measurements
배열에 표시됩니다. - 사용량 측정 오브젝트에는
usage_type
및 value
필드가 있습니다. hour
, org_name
및 public_id
도 attributes
오브젝트의 필드입니다.
페이지 매기기
v2 시간별 사용량 API에는 페이지가 지정됩니다. 응답은 500페이지로 제한되며 한 페이지에는 한
제품군, 한시간, 한 조적의 사용량 데이터가 포함되어 있습니다. 페이지 지정을 통해 API는 요청당 여러 제품, 요청당 여러 조직 및 무제한 시간 범위 등 다양한
여러 기능을 지원할 수 있습니다.
결과에 더 많은 페이지가 있으면 다음 페이지의 기록 ID가 필드
meta.pagination.next_record_id
에 반환됩니다. 그런 다음 클라이언트는 pagination[next_record_id]
파라미터에 해당 ID를 전달해야 합니다. meta.pagination.next_record_id
필드가 설정되지 않은 경우에는
더 이상 검색할 페이지가 없습니다.
코드 예시
response := GetHourlyUsage(start_time, end_time, product_families)
cursor := response.metadata.pagination.next_record_id
WHILE cursor != null BEGIN
sleep(5 seconds) # Avoid running into rate limit
response := GetHourlyUsage(start_time, end_time, product_families, next_record_id=cursor)
cursor := response.metadata.pagination.next_record_id
END
여러 조직 대응
v2 API는 한 번의 요청으로 모든 리전에 속하는 모든 하위 조직의 사용량 데이터 검색을 지원합니다. 하위 조직에
대한 데이터를 요청하는 파라미터 filter[include_descendants]
을(를) 사용하세요.
참고 자료