사용률 보고서 엔드포인트
사용률 보고서 엔드포인트는 AWS EC2 인스턴스에 대한 사용률 패턴을 분석하는 데 사용됩니다. 사용률 분석은 평균 CPU 사용률(퍼센트), 대역폭, 디스크 I/O와 같은 인스턴스 수준 세부 정보를 제공하는 AWS Cloudwatch의 데이터를 사용합니다. 사용률 분석은 전반적인 탄력성과 인스턴스 권한 조정이 필요한지 아니면 해제해야 하는지 여부를 시각화하는 데 유용합니다.
사용량 분석에서 제공되는 비용 지표는 Cloudability 에서 온디맨드 요금을 사용하여 계산되며 청구서의 컴퓨팅 부분(즉, 청구 가능한 인스턴스 시간만 포함하며 대역폭, 스토리지 등은 포함하지 않음)에만 적용됩니다. 따라서 재무 보고가 아닌 트렌드에만 사용해야 합니다. 이 메트릭은 비용(예상)이라고 합니다.
활용도 분석에서 활용도 데이터에 액세스하려면 각 회원 계정에 적절한 IAM 권한을 설정하는 고급 자격 증명을 설정해야 한다는 점에 유의하세요.
유연한 필터링, 정렬 및 측정값(차원 및 메트릭) 선택을 통해 특정 보고 요구 사항을 충족하는 결과를 만들 수 있습니다. 권장 가이드라인으로, API 호출에 추가할 수 있는 최대 15개의 차원과 10개의 메트릭이 있습니다. 기본적으로 결과는 JSON으로 반환됩니다. 결과를 CSV 형식으로 가져오려면 Accept 헤더를 텍스트/csv 값으로 설정하세요. 페이지 매김은 아래에 설명된 대로 결과가 10,000행이 넘을 때 구현됩니다. 이 문서 하단에 신고 전화의 예가 나와 있습니다.
사용률 보고서 종료 지점
- 현재 사용률 보고서를 나열하려면 /보고/보고서/유틸을 사용하세요
- 사용률 보고서를 실행하기 위한 /보고/util/실행
- 사용 가능한 활용도 보고 조치를 나열하기 위한 /보고/활용/조치
- 필터에 사용 가능한 비교 연산자를 나열하는 /reporting/util/filters
- 활용 보고서를 큐에 대기열에 넣으려면 /보고/util/enqueue
- /보고/보고서/:id/state에서 대기열에 추가된 보고서의 상태를 확인할 수 있습니다
- 대기열에 추가된 완료된 보고서 검색을 위한 /보고/보고서/:id/결과
사용률 보고서 개체
- 결과 (배열) - 사용률 행 개체 목록, 각 행은 보고된 차원 및 지표로 구성됩니다
- 메타 (개체) - 실행된 보고서에 대한 메타 정보가 포함된 개체입니다
- 날짜 (개체) - 보고서의 날짜 범위를 표시하는 시작 및 종료 날짜 문자열입니다
- 필터 (배열) - 상세 정보와 함께 보고서에 적용된 필터 목록입니다
- 메트릭 (배열) - 상세 정보와 함께 보고서에서 반환된 메트릭 목록
- 차원 (배열) - 상세 정보와 함께 보고서에 반환된 차원 목록입니다
- 집계 (배열) - 보고서에 대한 자세한 정보가 포함된 집계된 지표 목록
- 오프셋 (숫자) - 결과의 시작 위치를 지정합니다. 기본값은 0입니다
- 제한 (수) - 반환할 수 있는 최대 사용 행 수
- total_results (숫자) - 실행된 보고서에 대해 반환된 총 사용률 행 수
사용률 보고서 개체 예제(검토 예제)
{
"results": [
{
"instance_identifier": "i-1237aa0e1587577f5",
"max_cpu_utilization": "0.91925"
},
{
"instance_identifier": "i-0007aa0e1587572c7",
"max_cpu_utilization": "0.179183"
}
],
"meta": {
"dates": {
"start": "2022-08-30T00:00:00Z",
"end": "2022-08-30T00:00:00Z"
},
"filters": [],
"metrics": [
{
"name": "max_cpu_utilization",
"label": "CPU Utilization (Max)",
"description": "The maximum percentage of CPU Utilization...
"data_type": "percentage",
"type": "metric",
"group": {
"ID": 9,
"Key": "compute",
"Name": "Compute"
},
"sub_group": {
"ID": 12,
"Key": "processing",
"Name": "Processing"
}
}
],
"dimensions": [
{
"name": "instance_identifier",
"label": "Instance ID",
"description": "The ID associated with a particular AWS instance.",
"data_type": "string",
"type": "dimension",
"group": {
"ID": 9,
"Key": "compute",
"Name": "Compute"
},
"sub_group": {
"ID": 1,
"Key": "common",
"Name": "Common"
}
}
],
"aggregates": [
{
"name": "max_cpu_utilization",
"label": "CPU Utilization (Max)",
"description": "The maximum percentage of CPU Utilization...",
"data_type": "percentage",
"type": "metric",
"value": "0.91925"
}
]
},
"offset": 0,
"limit": 2,
"total_results": 2
}
현재 사용률 보고서 나열
사용자 또는 조직이 소유하거나 공유한 사용률 보고서 목록을 검색합니다.
curl 'https://api.cloudability.com/v3/reporting/reports/util' -u '[auth_token]:'
응답 예시
[
{
"id": 1,
"author": {
"id": 12345,
"safe_name": "Test User"
},
"category": "Utilization",
"custom": true,
"description": "The number of instances running during each hour of the day over the last 7 days.",
"dimensions": [
{
"name": "date",
"label": "Date",
"description": "The calendar date (e.g. YYYY-MM-DD).",
"data_type": "date",
"type": "dimension",
"group": {
"id": 9,
"key": "compute",
"name": "Compute"
},
"sub_group": {
"id": 2,
"key": "time",
"name": "Time"
}
},
{
"name": "hour",
"label": "Hour",
"description": "The numeric hour of the day (e.g. 1pm => 13).",
"data_type": "integer",
"type": "dimension",
"group": {
"id": 9,
"key": "compute",
"name": "Compute"
},
"sub_group": {
"id": 2,
"key": "time",
"name": "Time"
}
}
],
"end_date": "23:59:59",
"filters": [
{
"comparator": "==",
"measure": {
"name": "date",
"label": "Date",
"description": "The calendar date (e.g. YYYY-MM-DD).",
"data_type": "date",
"type": "dimension",
"group": {
"id": 9,
"key": "compute",
"name": "Compute"
},
"sub_group": {
"id": 2,
"key": "time",
"name": "Time"
}
},
"value": "2019-06-24"
}
],
"metrics": [
{
"name": "running_instances",
"label": "Unique Instance Count",
"description": "The total number of unique instances in a running state during a given time period.",
"data_type": "integer",
"type": "metric",
"group": {
"id": 9,
"key": "compute",
"name": "Compute"
},
"sub_group": {
"id": 8,
"key": "usage",
"name": "Usage"
}
}
],
"order": "asc",
"owned_by_user": false,
"shared_with_organization": false,
"permission": {
"actions": [
"read"
]
},
"report_dimension_links": [],
"secondary_end_date": null,
"secondary_start_date": null,
"shared": true,
"shares": [],
"sort_by": "date",
"star": false,
"start_date": "7 days ago at 00:00:00",
"subscriptions": [],
"title": "Elasticity - Running Instances per Hour"
},
]
사용 가능한 측정값 목록 가져오기
서버에서 인식한 측정값 목록을 검색합니다. 측정값에는 보고서에서 사용할 수 있는 차원과 메트릭이 모두 포함됩니다. 측정값 엔드포인트에서 GET을 수행하기만 하면 됩니다.
curl ‘https://api.cloudability.com/v3/reporting/util/measures’ -u ‘[auth_token]:’
응답 예시
[
{
"name": "avg_cpu_utilization",
"label": "CPU Utilization (Avg)",
"description": "The average percentage of CPU Utilization...",
"type": "metric",
"group": {
"id": 9,
"key": "compute",
"name": "Compute"
},
"sub_group": {
"id": 12,
"key": "processing",
"name": "Processing"
}
},
{
"name": "utilization_hours",
"label": "Utilization Hours",
"description": "The total number of usage hours on an instance ...",
"data_type": "integer",
"type": "metric",
"group": {
"id": 9,
"key": "compute",
"name": "Compute"
},
"sub_group": {
"id": 8,
"key": "usage",
"name": "Usage"
}
},
]
사용 가능한 필터 연산자 목록 가져오기
데이터 요청을 위해 인식된 필터 연산자 목록 검색하기
curl ‘https://api.cloudability.com/v3/reporting/util/filters’ -u ‘[auth_token]:’
응답 예시
[
"<=", # less than or equals
"[]=", # in*
">=" # greater than or equals
"<", # less than
"=@", # contains
"^=", # matches
"===", # strictly equals*
"==", # equals
"!=@", # does not contain
"!=", # not equals
"!==", # strictly not equals*
">", # greater than
"!^=", # does not match
"!$=", #does not end with
"[]!=", # not in*
"$=", #end with
]
* 이러한 연산자는 API를 통해서만 사용할 수 있습니다
사용률 보고서 실행
요청 매개변수
| 인수 | 설명 |
|---|---|
| 시작 날짜(필수) | 사용률 보고서의 시작 날짜입니다. 형식: YYYY-MM-DD |
| end_date (필수) | 사용률 보고서의 종료일입니다. 형식: YYYY-MM-DD |
| 치수(필수) | 보고서에 포함할 차원을 쉼표로 구분한 목록입니다. 예: dimensions=date,instance_size |
| 메트릭(필수) | 보고서에 포함할 메트릭의 쉼표로 구분된 목록입니다. 예: metrics=running_instances,utilization_hours |
| 필터 | 보고서에 적용할 필터를 선택합니다. 필터는 차원 또는 메트릭을 기반으로 할 수 있습니다. 참고: 필터 쿼리 매개변수는 단일 필터에만 적용됩니다. 여러 필터에 여러 쿼리 매개변수를 사용합니다. 예시: filters=instance_size=@10xlarge 중요: 특수 문자 관련 문제를 방지하기 위해 비교 연산자는 일반적으로 URL 인코딩(위와 같이)해야 합니다 |
| 정렬 | 쉼표로 구분된 측정값 목록으로, 각각에 ASC 또는 DESC를 추가하여 순서를 표시합니다(순서 필수). 예시: sort=avg_cpu_utilizationASC,regionDESC |
| 제한 | 반환할 최대 행 수입니다. 예시: limit=50 |
| 오프셋 | 결과를 보려면 시작 위치를 클릭합니다. 예시: offset=100 |
| 차트 | 차트 목적에 맞게 행 데이터의 서식을 지정합니다(날짜 기준). 예시: chart=1 |
| 뷰_ID | 생략하면 사용자의 기본 보기가 적용됩니다. 무제한 사용자는 view_id=0 을 설정하여 보기를 제거할 수 있습니다. |
참고: v3 비용 보고 엔드포인트에서 지원하는 상대/동적 날짜 문자열입니다:
| 상대/동적 날짜 문자열 |
|---|
| "7일 전 00:00:00" |
| "8일 전 00:00:00" |
| "10일 전 00:00:00" |
| "14일 전 00:00:00" |
| "30일 전 00:00:00" |
| "31일 전 00:00:00" |
| "60일 전 00:00:00" |
| "90일 전 00:00:00" |
| "마지막 날의 시작" |
| "지난주 초" |
| "지난달 초", "지난달 0일" |
| "지난 분기 초" |
| "후반전 시작" |
| "작년 초" |
| "하루의 시작", "오늘 하루의 시작" |
| "이번 주 시작", "이번 주 시작" |
| "이달 초", "이번 달 초", "1일" |
| "기간의 시작", "이 기간의 시작" |
| "분기 시작", "이번 분기 시작" |
| "절반의 시작", "이 절반의 시작" |
| "연초", "올해 초" |
| "다음날 시작" |
| "다음 주 초" |
| "다음 달 초" |
| "다음 분기 초" |
| "다음 절반의 시작" |
| "내년 초" |
| "오늘 00:00:00" |
| "00:00:00" |
| "23:59:59" |
| "어제 00:00:00" |
| "어제 23:59:59" |
| "마지막 날의 끝" |
| "지난 주 말" |
| "지난달 말" |
| "지난 분기 말" |
| "마지막 절반의 끝" |
| "작년 말" |
| "지난주 말부터 현재까지" |
| "지난달 말부터 현재까지" |
| "지난 분기 말부터 현재까지" |
| "작년 말부터 현재까지" |
| "하루의 끝", "오늘 하루의 끝" |
| "이번 주 말", "이번 주 말" |
| "월말", "이번 달 말" |
| "분기 말", "이번 분기 말" |
| "절반의 끝", "이 절반의 끝" |
| "연말", "올해 말" |
| "다음날 종료" |
| "다음 주 말" |
| "다음 달 말" |
| "다음 분기 말" |
| "다음 절반의 끝" |
| "내년 말" |
페이지 매김 처리
API 성능 지원을 위해 반환된 보고서의 행 수가 10,000개를 초과하는 경우 페이지 매김이 구현됩니다. 이는 일반적으로 사용자가 resource_identifier와 같이 카디널리티가 높은 여러 차원을 보고서에 추가할 때 발생합니다. 값이 10,000이고 페이지 매김 객체가 있으면 페이지 매김이 발생했음을 나타냅니다.
페이지 매김 객체 예시:
"pagination": {
"next": "38bc18d0",
"previous": "1d93c71e"
보고서 페이지 사이를 앞뒤로 이동하려면 보고서 끝에 해당 토큰 값(예: token=38bc18d0 )과 함께 토큰 쿼리 매개변수를 URL 에 추가합니다.
참고 : 요청 매개변수에서 limit=0 을 설정하여 자동 페이지 매김을 64,000 행으로 늘릴 수 있습니다
일반적인 사용률 보고서 실행 - 장기 사용률 추세
curl ‘https://api.cloudability.com/v3/reporting/util/run?start_date=2022-01-01&end_date=2022-06-30&dimensions=date&metrics=total_bandwidth,avg_cpu_utilization&sort=dateASC&view_id=0’ -u ‘[auth_token]:’"
응답 예시(표시된 결과의 하위 집합)
{
"results": [
{
"avg_cpu_utilization": "0.84463",
"estimated_cost": "393.12",
"instance_identifier": "i-0a70f28b01f652f14",
"instance_name": "common-operations-ondemand-r5-large-green-Node",
"instance_size": "r5.large",
"total_bandwidth": "2019199735862",
"utilization_hours": "24",
"vendor_account_name": "My Account Name"
},
{
"avg_cpu_utilization": "0.830585",
"estimated_cost": "1071.2",
"instance_identifier": "i-0278b62c3679c7286",
"instance_name": "production-operations-spot-16cpu-64gb-green-Node",
"instance_size": "m5ad.4xlarge",
"total_bandwidth": "864959230667",
"utilization_hours": "9",
"vendor_account_name": "My Account Name"
}
],
"meta": {
"dates": {
"start": "2022-08-30T00:00:00Z",
"end": "2022-08-30T00:00:00Z"
},
"filters": [],
"metrics": [
{
"name": "avg_cpu_utilization",
"label": "CPU Utilization (Avg)",
"description": "The average percentage of CPU Utilization...",
"data_type": "percentage",
"type": "metric",
"group": {
"ID": 9,
"Key": "compute",
"Name": "Compute"
},
"sub_group": {
"ID": 12,
"Key": "processing",
"Name": "Processing"
}
}
],
"dimensions": [
{
"name": "instance_identifier",
"label": "Instance ID",
"description": "The ID associated with a particular AWS instance.",
"data_type": "string",
"type": "dimension",
"group": {
"ID": 9,
"Key": "compute",
"Name": "Compute"
},
"sub_group": {
"ID": 1,
"Key": "common",
"Name": "Common"
}
}
],
"aggregates": [
{
"name": "avg_cpu_utilization",
"label": "CPU Utilization (Avg)",
"description": "The average percentage of CPU Utilization. For EC2, this is the average percentage of allocated EC2 compute units in use for an instance.",
"data_type": "percentage",
"type": "metric",
"value": "0.840516"
}
]
},
"offset": 0,
"pagination": {
"next": "02f296f8"
},
"limit": 2,
"total_results": 2
}
사용률 데이터 보고서 생성 및 추후 결과 검색
이 옵션은 높은 카디널리티 또는 기간으로 인해 반환하는 데 시간이 오래 걸리는 보고서에 적합하며, 보고서 생성을 트리거한 다음 나중에 결과를 검색하는 데 유용합니다. 비동기 보고 흐름의 엔드포인트는 동기식 사용량 보고와 동일한 매개 변수를 사용하지만, 보고 내용을 기다렸다가 반환하는 대신 요청 토큰을 반환합니다. 현재 처리 상태는 주어진 토큰에 대한 상태 리소스를 요청하여 검색합니다. 상태가 "완료"로 지정되면 토큰에 대한 결과 리소스를 요청하여 보고서의 내용을 검색할 수 있습니다. 전체 데이터 흐름의 예는 결과 리소스에 대한 설명을 따릅니다.
curl ‘https://api.cloudability.com/v3/reporting/util/enqueue?start_date=2022-01-01&end_date=2022-06-30&dimensions=date&metrics=total_bandwidth,avg_cpu_utilization&sort=dateASC&view_id=0’ -u ‘[auth_token]:’
응답 예시
{"id":31272850}
비동기 보고서 상태 쿼리하기
비동기 보고서의 유효한 상태는 대기열에 추가됨, 실행 중, 오류 발생 및 완료입니다. 상태는 다음 API 호출을 통해 쿼리할 수 있습니다(대기열 호출에서 반환된 대로 :id를 보고서 ID로 대체)
curl https://api.cloudability.com/v3/reporting/reports/:id/state -u ‘[auth_token]:’
응답 예시
{"status":"running"}
대기열에서 이전에 생성된 보고서 검색하기
완료 상태인 보고서를 검색할 수 있습니다. 그러면 표준 사용률 보고서 개체가 반환됩니다
curl ‘https://api.cloudability.com/v3/reporting/reports/:id/results’-u ‘[auth_token]:’]"
페이지 매김에 대한 중요 참고 사항: 대기열에 추가된 보고서는 동기식 사용률 보고서와 유사한 방식으로 페이지 매김을 구현합니다. 유일한 차이점은 페이지 크기가 10,000행이 아닌 30,000행이라는 점입니다. 즉, 대기열에 추가된 보고서는 행 수가 30,000행이 넘을 때까지 페이지 매김이 트리거되지 않습니다.
샘플 보고서 목록
다음은 활용도 보고서 API 사용에 도움이 될 수 있는 몇 가지 샘플 보고서입니다.
상대 날짜가 포함된 사용률 보고서
curl ‘https://api.cloudability.com/v3/reporting/util/run?start_date=0+of+last+month&end_date=end+of+last+month&dimensions=date&metrics=total_bandwidth,avg_cpu_utilization&sort=dateASC&view_id=0’ -u ‘[auth_token]:’
CSV를 통해 반환되는 인스턴스 유형 사용량 추세
curl -H ‘Accept: text/csv’ ‘https://api.cloudability.com/v3/reporting/util/run?start_date=2022-02-01&end_date=2022-02-28&dimensions=instance_size&metrics=utilization_hours,running_instances&sort=utilization_hoursDESC’ -u ‘[auth_token]:’
활용도가 낮은 컴퓨팅 최적화 인스턴스(여러 차원 및 필터가 포함된 보고서)
curl 'https://api.cloudability.com/v3/reporting/util/run?start_date=2022-02-01&end_date=2022-02-28&dimensions=instance_size&metrics=utilization_hours%2Crunning_instances&sort=utilization_hoursDESC' -u '[auth_token]:'
일반적인 사용률 보고서(출시 보고 이후 일수)
curl ‘https://api.cloudability.com/v3/reporting/util/run?dimensions=launch_date&end_date=2022-08-30&filters=product_name%3D%3DAmazon%20Elastic%20Compute%20Cloud&limit=2&metrics=avg_cpu_utilization&relativePeriods=custom&sort=launch_dateDESC&start_date=2022-08-22&viewId=0’ -u ‘[auth_token]:’