すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Cost V2 API を使用したコストデータの照会

最終更新日:Mar 25, 2026

Cost V2 API を使用すると、クラスターのワークロードに対するリアルタイムの推定コストを照会できます。柔軟な期間を指定したり、Pod、名前空間、ラベル、コントローラー名(例:`csi-plugin`)、コントローラー種別(例:`ReplicaSet`、`DaemonSet`、`Job`)などのディメンションでフィルター処理したりできます。この機能は、リアルタイムでのコスト動向分析に有効です。

前提条件

API を使用したコストデータ取得の概要」に記載されている前提条件を完了してください。

リクエストおよびレスポンスパラメーター

リクエスト構文

GET /v2/cost

リクエストパラメーター

パラメーター

必須

説明

window

string

はい

照会対象の期間。以下の形式がサポートされています:

  • キーワード:`today`、`week`、`month`、`yesterday`、`lastweek`、`lastmonth`

  • 期間:`30m`、`12h`、`7d`

  • RFC3339 日付:RFC3339 形式の日付をカンマ区切りで指定(例:`2024-03-26T00:00:00Z,2024-03-27T00:00:00Z`)

  • UNIX タイムスタンプ:秒単位の UNIX タイムスタンプをカンマ区切りで指定(例:`1711382400,1711468800`)

filter

string

いいえ

リソースカテゴリで結果をフィルター処理します。以下のカテゴリがサポートされています:

  • namespace

  • コントローラー名(例:csi-plugin、node-exporter)

    など)

  • controllerKind(例:`ReplicaSet`、`DaemonSet`、`Job`)

  • pod

  • label(例:[app]:"nginx"

同一カテゴリに対して複数の値を指定する場合は、カンマ(,)で区切ります(例:namespace:"default","kube-system")。

異なるカテゴリを組み合わせる場合は、プラス記号(+)を使用します(例:namespace:"default"+label[app]:"nginx")。

step

string

いいえ

応答を複数のコストセットに分割するための時間間隔(例:`1d`、`1w`)。指定しない場合、全体の window が単一のコストセットとして扱われます。

説明

コストセットとは、特定の期間における Kubernetes オブジェクト(例:Pod)のコストの集合です。

aggregate

string

いいえ

クエリ結果を集計するディメンション。以下のディメンションがサポートされています:

  • namespace

  • controller

  • controllerKind

  • label:<name>

  • node

idle

boolean

いいえ

アイドルコストを含めて処理するかどうか。デフォルト値は true です。

shareIdle

boolean

いいえ

アイドルコストをリソースに割り当てるかどうか。デフォルト値は false です。

shareSplit

string

いいえ

アイドルコストの割り当てポリシー。以下の値がサポートされています:

  • weighted(デフォルト)

  • even

idleByNode

boolean

いいえ

アイドルコストをノード単位で集計するかどうかを指定します。このパラメーターは、aggregatenode に設定され、かつ shareIdlefalse に設定されている場合にのみ有効です。デフォルト値は false です。

format

string

いいえ

コストデータのエクスポート形式。以下の形式がサポートされています:

  • json(デフォルト)

  • csv

レスポンスパラメーター

パラメーター

説明

properties

object

関連付けられた Kubernetes オブジェクトのプロパティです。

pod

string

Pod の名前です。

node

string

ノードの名前です。

namespace

string

名前空間です。

controllerKind

string

コントローラーの種別です。

controller

string

コントローラーの名前です。

providerID

string

ノードに対応する Elastic Compute Service (ECS) インスタンスの ID です。

labels

map[string]string

Pod のラベルです。

説明

Prometheus では、ラベルにアンダースコア(_)のみがサポートされます。ラベルにハイフン(-)やピリオド(.)などの他の記号が含まれている場合、Prometheus はそれらをアンダースコア(_)に変換します。

start

string

コストセットの開始時刻です。

end

string

コストセットの終了時刻です。

cpuCoreRequestAverage

float

要求された CPU コア数の平均値です。

cpuCoreUsageAverage

float

使用された CPU コア数の平均値です。

ramByteRequestAverage

float

要求されたメモリ量の平均値です。

ramByteUsageAverage

float

使用されたメモリ量の平均値です。

cost

float

推定コストです。デフォルトでは、コスト見積もりポリシーにおいて CPU の重みが 100% と設定されています。リソースの重みをカスタマイズするには、「コスト見積もりポリシー」をご参照ください。

costRatio

float

リソースのコストがクラスター全体のコストに占める比率です。

customCost

float

カスタムコストです。

(任意)ステップ 1:リソースコストの重みをカスタマイズ

デフォルトでは、Cost V2 API は CPU の重みが 100% のコスト見積もりポリシーを使用します。この重みをカスタマイズするには、以下の手順を実行します。

  1. ACK コンソール にログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

  2. クラスターリスト ページで、ご利用のクラスター名をクリックします。左側のナビゲーションウィンドウで、アプリケーション > Helm をクリックします。

  3. Helm ページで、ack-alibaba-cloud-metrics-adapter を見つけ、更新 をクリックします(アクション 列)。

  4. YAML ファイルで、AlibabaCloudMetricsAdapter.costWeights パラメーターを変更します。デフォルト値は {"cpu": "1.0", "memory": "0.0"} です。変更後、OK をクリックします。

    image

    混合リソース(CPU およびメモリ)の見積もりポリシーについて詳しくは、「コスト見積もりポリシー」をご参照ください。

ステップ 2:コストデータの照会

以下の例では、curl を使用して Kubernetes API にアクセスする方法を示します。詳細については、「Kubernetes API の使用方法」をご参照ください。

例 1:昨日の DaemonSet コストを照会

リクエスト

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/cost" | jq .

サンプル応答(JSON 形式)

サンプル応答の表示

{
  "data": [
    {
      "kube-system/terway-eniip-88286": {
        "name": "kube-system/terway-eniip-88286",
        "properties": {
          "controller": "terway-eniip",
          "controllerKind": "DaemonSet",
          "namespace": "kube-system",
          "pod": "terway-eniip-88286"
        },
        "start": "2024-03-25T00:00:00+08:00",
        "end": "2024-03-26T00:00:00+08:00",
        "cpuCoreRequestAverage": 0.35,
        "cpuCoreUsageAverage": 0.001,
        "ramByteRequestAverage": 209715200,
        "ramByteUsageAverage": 65815511.04,
        "cost": 1.622,
        "costRatio": 0.016,
        "customCost": 0.972
      },
      "kube-system/terway-eniip-fqxk8": {
        "name": "kube-system/terway-eniip-fqxk8",
        "properties": {
          "controller": "terway-eniip",
          "controllerKind": "DaemonSet",
          "namespace": "kube-system",
          "pod": "terway-eniip-fqxk8"
        },
        "start": "2024-03-25T00:00:00+08:00",
        "end": "2024-03-26T00:00:00+08:00",
        "cpuCoreRequestAverage": 0.35,
        "cpuCoreUsageAverage": 0.001,
        "ramByteRequestAverage": 209715200,
        "ramByteUsageAverage": 72787722.24,
        "cost": 1.622,
        "costRatio": 0.016,
        "customCost": 0.972
      },
      "kube-system/terway-eniip-xjsr8": {
        "name": "kube-system/terway-eniip-xjsr8",
        "properties": {
          "controller": "terway-eniip",
          "controllerKind": "DaemonSet",
          "namespace": "kube-system",
          "pod": "terway-eniip-xjsr8"
        },
        "start": "2024-03-25T00:00:00+08:00",
        "end": "2024-03-26T00:00:00+08:00",
        "cpuCoreRequestAverage": 0.35,
        "cpuCoreUsageAverage": 0.001,
        "ramByteRequestAverage": 209715200,
        "ramByteUsageAverage": 53661380.923,
        "cost": 0.843,
        "costRatio": 0.008,
        "customCost": 0.505
      }
    }
  ]
}

例 2:3 時間分の 1 時間ごとの Pod コストを照会

リクエスト

curl -G -k --cert ./client-cert.pem --key ./client-key.pem \
-d 'window=2024-03-24T00:00:00Z,2024-03-24T03:00:00Z' \
-d 'step=1h' \
-d 'filter=namespace:"kube-system"+pod:"terway-eniip-kz68n"' \
"$APISERVER/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/v2/cost" | jq .

サンプル応答(JSON 形式)

サンプル応答の表示

{
  "data": [
    {
      "kube-system/terway-eniip-kz68n": {
        "name": "kube-system/terway-eniip-kz68n",
        "properties": {
          "controller": "terway-eniip",
          "controllerKind": "DaemonSet",
          "namespace": "kube-system",
          "pod": "terway-eniip-kz68n"
        },
        "start": "2024-03-24T00:00:00Z",
        "end": "2024-03-24T01:00:00Z",
        "cpuCoreRequestAverage": 0.35,
        "cpuCoreUsageAverage": 0.001,
        "ramByteRequestAverage": 209715200,
        "ramByteUsageAverage": 63583378.285,
        "cost": 0.075,
        "costRatio": 0.025,
        "customCost": 0.045
      }
    },
    {
      "kube-system/terway-eniip-kz68n": {
        "name": "kube-system/terway-eniip-kz68n",
        "properties": {
          "controller": "terway-eniip",
          "controllerKind": "DaemonSet",
          "namespace": "kube-system",
          "pod": "terway-eniip-kz68n"
        },
        "start": "2024-03-24T01:00:00Z",
        "end": "2024-03-24T02:00:00Z",
        "cpuCoreRequestAverage": 0.35,
        "cpuCoreUsageAverage": 0.001,
        "ramByteRequestAverage": 209715200,
        "ramByteUsageAverage": 63111168,
        "cost": 0.075,
        "costRatio": 0.025,
        "customCost": 0.045
      }
    },
    {
      "kube-system/terway-eniip-kz68n": {
        "name": "kube-system/terway-eniip-kz68n",
        "properties": {
          "controller": "terway-eniip",
          "controllerKind": "DaemonSet",
          "namespace": "kube-system",
          "pod": "terway-eniip-kz68n"
        },
        "start": "2024-03-24T02:00:00Z",
        "end": "2024-03-24T03:00:00Z",
        "cpuCoreRequestAverage": 0.35,
        "cpuCoreUsageAverage": 0.001,
        "ramByteRequestAverage": 209715200,
        "ramByteUsageAverage": 63430656,
        "cost": 0.075,
        "costRatio": 0.025,
        "customCost": 0.045
      }
    }
  ]
}

例 3: app ラベルごとのコストのクエリ

リクエスト

curl -G -k --cert ./client-cert.pem --key ./client-key.pem \
-d 'window=2h' \
-d 'aggregate=label:app' \
"$APISERVER/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/v2/cost" | jq .

サンプル応答(JSON 形式)

サンプル応答の表示

{
  "data": [
    {
      "__idle__": {
        "name": "__idle__",
        "start": "2024-12-17T09:50:30+08:00",
        "end": "2024-12-17T11:50:30+08:00",
        "cpuCoreRequestAverage": 0,
        "cpuCoreUsageAverage": 0,
        "ramByteRequestAverage": 0,
        "ramByteUsageAverage": 0,
        "cost": 3.8230000000000004,
        "costRatio": 0.6371666666666664,
        "customCost": 0
      },
      "__unallocated__": {
        "name": "__unallocated__",
        "start": "2024-12-17T09:50:30+08:00",
        "end": "2024-12-17T11:50:30+08:00",
        "cpuCoreRequestAverage": 1.135,
        "cpuCoreUsageAverage": 0.024,
        "ramByteRequestAverage": 1901068288,
        "ramByteUsageAverage": 646283264,
        "cost": 0.6000000000000001,
        "costRatio": 0.09999999999999999,
        "customCost": 0
      },
      "ack-alibaba-cloud-metrics-adapter": {
        "name": "ack-alibaba-cloud-metrics-adapter",
        "start": "2024-12-17T09:50:30+08:00",
        "end": "2024-12-17T11:50:30+08:00",
        "cpuCoreRequestAverage": 0.24,
        "cpuCoreUsageAverage": 0.004,
        "ramByteRequestAverage": 482344960,
        "ramByteUsageAverage": 96964608,
        "cost": 0.064,
        "costRatio": 0.010666666666666666,
        "customCost": 0
      },
      "terway-eniip": {
        "name": "terway-eniip",
        "start": "2024-12-17T09:50:30+08:00",
        "end": "2024-12-17T11:50:30+08:00",
        "cpuCoreRequestAverage": 1.0499999999999998,
        "cpuCoreUsageAverage": 0.001,
        "ramByteRequestAverage": 629145600,
        "ramByteUsageAverage": 122054656,
        "cost": 0.5609999999999999,
        "costRatio": 0.0935,
        "customCost": 0
      },
      ... ...
      
    }
  ]
}

関連ドキュメント

Allocation API は請求書データを統合し、調整用の償却コストを提供します。詳細については、「Allocation API を使用したデータ取得」をご参照ください。