보고서 API 문서
요약
이 보고서 엔드포인트는 이전에 다양한 컨테이너 API에 분산되어 있던 많은 기능을 대체하기 위한 것으로, 컨테이너 인사이트 기능을 지원하는 데이터에 대한 보다 단일화된 보기를 제공하기 위한 것입니다.
이 엔드포인트를 사용하면 집계할 특정 메트릭의 사양별로 데이터를 분석할 수 있으며, 이를 그룹 및 필터와 결합하여 비용을 수집할 수 있습니다.
엔드포인트
/v3/containers/report
쿼리 매개변수:
매개변수 |
필수 | 설명 | 기본값 | 허용됨 |
|---|---|---|---|---|
viewId |
아니오 |
Cloudability 계정 식별자로 필터링을 활성화하기 위해 전달할 수 있는 보기 식별자 | 조직 기본 보기 식별자 | 0(허용되는 경우 모두), 구성된 모든 숫자 값 |
요청 본문
보고서 요청 본문은 다음과 같은 주요 속성으로 구성된 json 객체입니다:
매개변수 |
필수 | 유형 | 예 | 지원되는 값 |
|---|---|---|---|---|
시작 |
예 |
날짜 | 2024-06-01 | 2022-01-01 이후 모든 날짜 |
종료 |
예 | 날짜 | 2024-06-02 | 2022-01-01 이후의 날짜는 시작 날짜보다 크거나 같아야 합니다 |
costType |
예 | 문자열 | 조정됨 | 참조: 지원되는 비용 유형 |
메트릭 |
예 | 문자열 목록 | ["총_비용", "총_비용_효율"] | 참조: 지원되는 메트릭 값 |
제한 |
예 | 정수 | 1,000만 | 1-1000 |
widgetType |
유형 | 문자열 | 맨 위 | 참조: 지원되는 위젯 유형 |
수 |
아니오 | 문자열 목록 | ["클러스터"] | 참조: 지원되는 그룹, 개수 및 필터 값 |
그룹 |
아니오 | 문자열 목록 | ["클러스터"] | 참조: 지원되는 그룹, 개수 및 필터 값 |
필터 |
아니오 | 문자열 목록 | ["클러스터== {cluster_uuid} "] | 참조: 지원되는 그룹, 개수 및 필터 값 |
| 정렬 | 아니오 | 구성 목록 | [{"sortMetric":"total_cost","sortOrder":" desc"}] | 참조: 지원되는 정렬 구성 |
| paginationToken | 아니오 | 문자열 | � | 참조: 페이지 매김 |
지원되는 비용 유형
정렬 유형 |
컨테이너 UI와의 관계 |
|---|---|
조정됨 |
현금 |
| 총_조정된_상각 | 조정 상각 |
지원되는 메트릭 값
메트릭 |
표준 비용 지표 | 표준 사용량 지표 | 참고 |
|---|---|---|---|
cPU/예약 |
예 |
예 | 요청 및 활용된 최대 리소스를 기준으로 평가됩니다 |
| 메모리/예약 | 예 | 예 | 요청 및 활용된 최대 리소스를 기준으로 평가됩니다 |
| 네트워크/알엑스 | 예 | 예 | 페어셰어 값은 항상 할당된 값과 동일합니다 |
| 네트워크/tx | 예 | 예 | 페어셰어 값은 항상 할당된 값과 동일합니다 |
| 파일 시스템/사용 | 예 | 예 | � |
| 퍼시스턴트_볼륨/사용량 | 예 | 예 | 사용량은 요청된 PV의 크기에 따라 결정되며, PVC와 1:1입니다 |
| gPU/예약 | 예 | 예 | 페어셰어 값은 항상 할당된 값과 동일합니다 |
| 기타 | 예 | 아니오 | 비용 전용 지표입니다 |
요청 가능 필드
필드 이름 |
필드 유형 | 지원되는 메트릭 | 의미 |
|---|---|---|---|
총_비용_공평분담금 |
집계 |
해당사항 없음 | 모든 메트릭 유형에 걸친 총 공정 분담 비용은 쿼리에 기여하는 모든 리소스의 기본 비용을 합산한 값입니다 |
| 총_비용_할당 | 집계 | 해당사항 없음 | 모든 메트릭 유형에 걸쳐 할당된 총 비용으로, 쿼리에 기여한 모든 리소스의 활용 비용을 나타냅니다 |
| 총_비용_유휴 | 집계 | 해당사항 없음 | 모든 메트릭 유형에 걸친 총 유휴 비용(총_비용_공정분담 - 총_비용_할당으로 계산) |
| 총비용_효율성 | 집계 | 해당사항 없음 | 모든 메트릭 유형에 걸친 총 비용 효율성, 총비용_할당 / 총비용_공정분담으로 계산 |
| 사용량_비용_효율 | 집계 | 해당사항 없음 | 사용 비용/총_비용_할당 비율을 통해 계산된 모든 메트릭 유형에 걸친 사용 비용 효율성 |
| {metric} /사용량_비용_할당 | 메트릭당 | cPU, 메모리 | 메트릭당 사용 비용 |
| {metric} /사용량_비용_효율성 | 메트릭당 | cPU, 메모리 | 메트릭별 사용 비용 효율성, 사용 비용/총_비용_할당 비율을 통해 계산 |
| {metric} /요청 | 메트릭당 | cPU, 메모리, GPU | 요청된 리소스 양 |
| {metric} /사용 | 메트릭당 | cPU, 메모리, GPU | 사용된 리소스 양 |
| {metric} /limit | 메트릭당 | cPU, 메모리, GPU | 리소스 제한, 이 경우 0은 제한이 설정되지 않았음을 나타냅니다 |
| {메트릭}_cost_공정 공유 | 메트릭당 | 표준 비용 메트릭 | 메트릭 사용량에 대한 페어셰어 비용 표시 |
| {metric}_cost_allocated | 메트릭당 | 표준 비용 메트릭 | 메트릭 사용량에 대한 할당된 비용 표시 |
| {metric}_cost_idle | 메트릭당 | 표준 비용 메트릭 | 페어셰어 - 메트릭의 할당된 비용 표현 |
| {메트릭}_비용_효율성 | 메트릭당 | 표준 비용 메트릭 | 할당/공정 공유 비용 가치 |
| {metric} _활용_공정공유 | 메트릭당 | 표준 비용 메트릭 | 페어셰어 활용 가치 |
| {metric} _활용_할당 | 메트릭당 | 표준 비용 메트릭 | 할당된 활용 가치 |
| {메트릭}_활용도_유휴 | 메트릭당 | 표준 비용 메트릭 | 공정 공유 - 할당된 사용량 |
| {metric} _활용_효율 | 메트릭당 | 표준 비용 메트릭 | 할당/공정 공유 활용 가치 |
지원되는 위젯 유형
위젯 유형 |
컨테이너 UI와의 관계 | 의미 | 요구사항 | 제한사항 |
|---|---|---|---|---|
맨 위 |
테이블 데이터 |
이것은 지정된 기간 동안 집계된 데이터를 반환하는 컨테이너 데이터의 가장 일반적인 표현입니다 | � | 그룹에는 기간을 포함하지 않아야 합니다 |
KPI |
KPI 위젯 | 이렇게 하면 단일 값을 반환합니다 | � | 단일 결과만 그룹을 사용할 수 없습니다 페이지 매김을 사용할 수 없습니다 |
막대 |
막대 차트 | 이는 기간에 걸쳐 연속적인 일련의 데이터를 생성하는 것에 대한 고려 없이 최상위/하위 값 집합을 제공합니다 | 시간 그룹을 설정해야 합니다(예: 일) | 페이지 매김을 사용할 수 없습니다 |
라인 |
라인 차트 | 그러면 해당 기간 동안의 최상위/하위 연속 데이터 계열이 반환됩니다 | 시간 그룹을 설정해야 합니다(예: 일) | 페이지 매김을 사용할 수 없습니다 |
지원되는 그룹, 개수 및 필터 값
그룹, 카운트 및 필터는 다음과 같은 방법으로 활용할 수 있는 중복되는 액세스 가능한 데이터 집합을 공유합니다:
그룹
그룹은 해당 필드의 고유 값으로 집계된 결과를 반환합니다.
예를 들어 클러스터별로 그룹화하면 클러스터별로 격리된 결과 집합이 반환됩니다.
카운트
카운트는 해당 측면의 고유 항목 수를 식별하는 결과 섹션을 반환합니다.
예를 들어 네임스페이스 개수는 선택 영역 내의 총 네임스페이스 수를 반환합니다.
필터
필터를 사용하면 결과 집합을 결과의 하위 집합으로만 제한할 수 있습니다.
예를 들어, 작업 부하 유형==배포의 필터를 제공하면 배포가 소유한 것으로 식별된 작업 부하에 대한 결과만 반환합니다.
값 |
의미 | 반환된 값 예시 | 필터 지원 | 지원 그룹 | 지원 횟수 |
|---|---|---|---|---|---|
| 클러스터 | 클러스터 고유 식별자, 이름 매핑이 포함된 전체 집합을 클러스터 엔드포인트에서 검색할 수 있습니다 | Xxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxx | 예 | 예 | 예 |
| 일 | 일별로 데이터를 그룹화할 수 있으며, 지원되는 widgetType (막대/선)과 함께 사용해야 합니다 | 2024-06-01 | 아니오 | 아니오 | 아니오 |
| 워크로드 유형 | 워크로드의 최상위 소유자 유형 | 배포, 크론잡, 스테이트풀셋 등 | 예 | 예 | 예 |
| 워크로드_이름 | 워크로드의 최상위 소유자 이름 | 내 서비스 이름 | 예 | 예 | 예 |
| 네임스페이스 | 워크로드가 있는 네임스페이스 | 내 네임스페이스 이름 | 예 | 예 | 예 |
| 컨테이너 | 클러스터에서 실행 중인 컨테이너 이름 | 내 컨테이너 이름 | 예 | 예 | 예 |
| 팟(Pod) | 클러스터에서 실행 중인 파드 이름 | 내-팟이름 | 예 | 예 | 예 |
| 노드 | 할당된 노드 이름 | ip-1.2.3.4.region.compute.internal | 예 | 예 | 예 |
| node_id | 공급자 노드 식별자 | aws:///region/i-1234 | 예 | 예 | 예 |
| 인스턴스_가족 | 기본 노드의 인스턴스 제품군 | t2 | 예 | 예 | 예 |
| 인스턴스_카테고리 | 기본 노드의 인스턴스 카테고리 | 일반 목적 | 예 | 예 | 예 |
| 인스턴스 유형 | 기본 노드의 인스턴스 유형 | t2.micro | 예 | 예 | 예 |
| 저축_플랜 | 기본 노드에 적용된 저축 플랜 유형 | ComputeSavingsPlan | 예 | 예 | 예 |
| 임대 유형 | 기본 노드의 임대 방법 | 온디맨드 | 예 | 예 | 예 |
| 예약_인스턴스 | 기본 노드가 예약된 인스턴스 커밋의 일부로 실행 중인 경우 | Y, N | 예 | 예 | 예 |
| cPU 할당 가능 | 기본 노드에서 사용 가능한 CPU 단위(마이크로코어 기준) | 48000000 | 예 | 예 | 예 |
| memory_allocatable | 기본 노드에서 사용 가능한 메모리(바이트) | 1000000000 | 예 | 예 | 예 |
| gpu_allocatable | 기본 노드에서 사용 가능한 GPU 단위(마이크로프로그래밍 단위) | 1000000 | 예 | 예 | 예 |
| 지역 | 기본 노드가 실행 중인 지역 | us-west-2 | 예 | 예 | 예 |
| 구역 | 기본 노드가 실행 중인 가용성 영역 | us-west-2a | 예 | 예 | 예 |
| 노드 그룹 | 노드 그룹(감지 가능한 경우), 기본 노드가 속한 그룹 | 내-노드-그룹 | 예 | 예 | 예 |
| 벤더 | 클러스터가 실행 중인 클라우드 공급자 | aWS, AZURE 등 | 예 | 아니오 | 아니오 |
| 클러스터 유형 | 실행 중인 클러스터 유형 | eKS, GKE, OPENSHIFT 등 | 예 | 아니오 | 아니오 |
필터 사용
필터는 다음을 제공하여 구성할 수 있습니다:
- 필터링된 속성
위 목록에서 필터링 가능한 것으로 표시된 모든 값
- 연산자
==
같음(대소문자 구분)
[]=
다음 중 하나(대소문자 구분)
- 필터링된 값
사용자가 필터링하고자 하는 모든 값
예:
- 네임스페이스==kube-system
결과를 필터링하여 큐브 시스템에 대한 데이터만 표시합니다
- 워크로드 유형[]=크론잡,잡
결과를 필터링하여 크론잡 또는 작업에 대한 데이터만 표시합니다
지원되는 정렬 구성
설정하지 않으면 정렬 기능은 기본적으로 첫 번째로 지정된 메트릭 열을 기준으로 내림차순으로 정렬합니다. 페이지 매김이 항상 가능하도록 설정되어 있습니다.
정렬 값은 호출자가 원하는 순서대로 전달되어야 하며, 요청된 모든 메트릭 값에 대해 지정할 수 있습니다.
아래 예는 효율을 기준으로 내림차순으로 행을 정렬한 다음, 총비용을 기준으로 내림차순으로 정렬합니다.
[
{
"sortMetric": "total_cost_efficiency",
"sortOrder": "desc"
},
{
"sortMetric": "total_cost",
"sortOrder": "desc"
}
]
페이지 매김
필드 |
유형 | 설명 |
|---|---|---|
| result.pagination.hasNext | 부울 | 다음 페이지가 있는지 여부를 나타냅니다 |
| result.pagination.nextToken | 문자열 | 다음 결과 집합을 얻기 위해 API에 다시 전달할 수 있는 문자열 값을 제공합니다 |
위의 페이지 매김 데이터에서 다른 페이지를 사용할 수 있음을 나타내는 경우 "paginationToken" 매개 변수를 통해 "nextToken" 의 값을 다시 API로 전달할 수 있습니다.
요청을 변경하면 오류나 일관성 없는 결과가 반환될 수 있으므로 다른 방식으로 변경해서는 안 됩니다.
미국 예시(API 엔드포인트): https://api.cloudability.com/v3/containers/report
요청 예시
curl --location 'https://api.cloudability.com/v3/containers/report' \
--header 'apptio-opentoken: {token}' \
--header 'apptio-environmentid: {env_id}' \
--header 'Content-Type: application/json' \
--data '{
"start": "2024-06-10",
"end": "2024-06-10",
"costType": "adjusted",
"metrics": [
"total_cost"
],
"group": [
"namespace"
],
"count": [
"workload_name"
],
"filters": [
"cluster==XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
],
"sort": [
{
"sortMetric": "total_cost",
"sortOrder": "desc"
}
],
"widgetType": "top",
"limit": 1
}'
API에 다시 전달할 수 있는 페이지 매김 토큰을 포함한 응답 예시입니다.
{
"result": {
"data": [
{
"count": [
{
"key": "workload_name",
"value": "20"
}
],
"dimensions": {
"namespace": "my-namespace"
},
"metrics": {
"total_cost": {
"unit": "currency",
"values": [
100.00
]
}
}
}
],
"pagination": {
"hasNext": true,
"nextToken": "veryLongPaginationToken"
}
}
}
이 응답 본문은 다음 섹션으로 나뉩니다:
필드 |
유형 | 의미 |
|---|---|---|
| result.data | []개체 | 요청된 그룹 값으로 식별되는 일련의 요소를 포함하는 기본 응답 본문입니다 |
| result.data [N].count | []맵 [문자열] 문자열 | 요청된 고유 값 개수가 포함된 객체 집합을 나타냅니다 |
| result.data [N].치수 | map[문자열] 문자열 | 이는 그룹화된 속성에 의해 결정된 고유한 그룹화된 속성을 나타냅니다 |
| result.data [N].metrics | 지도[문자열] 개체 | 이는 집계된 메트릭 값을 나타냅니다. 시간별로 그룹화할 때 각 시간 단위는 '값' 배열의 인덱스로 표시됩니다 |
| result.data [N].metrics. {metric}.unit | 문자열 | 해당 메트릭 유형의 특정 단위, 가능한 값은 통화, 바이트, 마이크로컴퓨팅, 마이크로프로세서, 효율성입니다 |
| result.data [N].metrics. {metric}.values | []float64 | 기간 동안 사용된 리소스를 나타내는 값 집합입니다. 예를 들어 요일별로 그룹화할 경우 배열의 각 항목은 하루를 나타냅니다 |