您可以通過Allocation API查詢業務分攤到的叢集賬單費用,用於財務治理周期內的業務對賬。
前提條件
已參見通過API擷取成本資料概述的前提條件章節完成準備工作。
請求與返回參數
請求文法
GET /v2/allocation請求參數
欄位 | 類型 | 是否必選 | 描述 |
window | string | 是 | 查詢的期間。由於成本資料需要結合雲產品賬單資料來輸出,所以最小期間為24h。接受以下幾種格式的輸入:
|
filter | string | 否 | 對指定資源類別進行過濾。支援的類別包括:
同一個類別支援指定多個過濾項,使用英文半形逗號(,)分隔,例如 同時,支援多欄位組合過濾,使用 |
step | string | 否 | 對返回結果按時間段切分為多個成本集,step描述單個成本集的期間,例如“1d”、“1w”。如果未指定,預設為 說明 成本集指一個時間段內Kubernetes對象成本的集合,例如一個Pod在期間內的成本集合。 |
aggregate | string | 否 | 對返回結果按照不同維度進行彙總。支援的類別包括:
|
idle | boolean | 否 | 是否展示或處理閑置成本。預設為true。 |
shareIdle | boolean | 否 | 是否將閑置成本分攤到各個資源。預設為false。 |
shareSplit | string | 否 | 閑置分攤策略。支援的類別包括:
|
idleByNode | boolean | 否 | 是否將閑置成本按節點維度彙總。僅在aggregate參數設定為node且shareIdle參數為false時生效。預設值為 false。 |
targetType | string | 否 | 成本分攤的目標類型。預設分攤叢集所有關聯資源的費用。
|
format | string | 否 | 成本匯出格式。支援的類別包括:
|
返回參數
名稱 | 類型 | 描述 |
properties | object | 描述關聯Kubernetes對象的屬性。 |
pod | string | Pod名稱。 |
node | string | 節點名稱。 |
namespace | string | 命名空間。 |
controllerKind | string | 控制器類型。 |
controller | string | 控制器名稱。 |
providerID | string | 節點對應ECS執行個體ID。 |
labels | map[string]string | Pod標籤。 說明 Prometheus僅支援在label中使用底線“_”。如果您的label中包含“-”、“.”等符號,Prometheus會將其轉換為底線“_”。 |
start | string | 成本集的開始時間。 |
end | string | 成本集的結束時間。 |
cpuCoreRequestAverage | float | 請求的平均CPU核心數。 |
cpuCoreUsageAverage | float | 使用的平均CPU核心數。 |
ramByteRequestAverage | float | 請求的平均記憶體量。 |
ramByteUsageAverage | float | 使用的平均記憶體量。 |
cost | float | 分攤叢集總賬單的成本。 |
costRatio | float | 成本佔比。描述目前成本占叢集總成本的比例。 |
customCost | float | 自訂成本。 |
擷取成本資料
本小節使用curl命令訪問Kubernetes API。具體操作,請參見使用Kubernetes API。
樣本:擷取某個DsaemonSet昨天分攤叢集賬單的費用
擷取命令
curl -G -k --cert ./client-cert.pem --key ./client-key.pem \
-d 'window=yesterday' \
-d 'filter=namespace:"kube-system"+controllerKind:"DaemonSet"+label[app]:"terway-eniip"' \
"$APISERVER/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/v2/allocation" | jq .