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

Container Service for Kubernetes:Allocation APIを呼び出してコストインサイトデータを照会する

最終更新日:Jan 26, 2025

Allocation APIを呼び出して、クラスターのコスト割り当てデータを照会できます。これは、財務ガバナンスサイクル中の会計に使用できます。

前提条件

APIを呼び出してコストデータを照会する概要」トピックで説明されている前提条件が満たされています。

リクエストとレスポンスのパラメーター

リクエスト構文

GET /v2/allocation

リクエストパラメーター

パラメーター

必須 / 任意

説明

window

String

対象

照会する時間範囲。 コストインサイトデータの出力は、クラウドサービスの課金データとともに使用する必要があります。 照会する最小時間範囲は24時間です。 次の形式が受け入れられます。

  • キーワード。 例: week、month、昨日、lastweek、lastmonth。

  • 例: 24hおよび7d。

  • RFC3339日付: RFC3339形式のコンマ区切りの日付のペア。 例: 2024-03-26T00:00:00Z、2024-03-27T00:00:00Z。

  • UNIX timestamp: コンマ区切りのUNIXタイムスタンプのペア (秒単位) 。 例: 1711382400,1711468800。

filter

String

非対象

ワークロードのフィルターオプション。 次のタイプのフィルターオプションがサポートされています。

  • namespace

  • controllerName (csi-pluginやnode-exporterなど)

  • controllerKind (ReplicaSet、DaemonSet、ジョブなど)

  • ポッドの作成

  • ラベル ([app]:"nginx" など)

同じタイプの複数のフィルターオプションを指定できます。 フィルターオプションはコンマ (,) で区切ります。 例: namespace:"default","kube-system"

複数のタイプのフィルターオプションを指定することもできます。 異なるタイプのフィルターオプションをプラス記号 (+) で区切ります。 例: namespace:"default" + label[app]:"nginx"

step

String

非対象

時間範囲を分割するために使用される間隔。 stepパラメーターは、コストセットの間隔を指定します。 例: 1dまたは1w。 デフォルト値はwindowパラメーターの値です。

説明

コストセットには、間隔内のポッドなどのKubernetesオブジェクトのコストデータが含まれます。

aggregate

String

非対象

異なるディメンションから返された結果の集計オプション。 次のタイプのフィルターオプションがサポートされています。

  • namespace

  • コントローラー

  • controllerKind

  • label:<name>

  • node

アイドル

Boolean

非対象

アイドルコストを表示または処理するかどうかを指定します。 デフォルト値:true

shareIdle

Boolean

非対象

各リソースにアイドルコストを割り当てるかどうかを指定します。 デフォルト値:false

shareSplit

String

非対象

アイドルコスト割り当てポリシー。 次のタイプのフィルターオプションがサポートされています。

  • weighted (デフォルト)

  • でも

idleByNode

Boolean

非対象

各ノードのアイドルコストを集計するかどうかを指定します。 このパラメーターは、集計パラメーターをnodeに設定し、shareIdleパラメーターをfalseに設定した場合にのみ有効になります。 デフォルト値:false

targetType

String

非対象

コスト配分のターゲットタイプ。 デフォルトでは、クラスターに関連付けられているすべてのリソースのコストが割り当てられます。

  • cluster (デフォルト値)

  • node

フォーマット

String

非対象

次のタイプのフィルターオプションがサポートされています。

  • json (デフォルト)

  • csv

応答パラメーター

パラメーター

タイプ

説明

properties

object

関連付けられているKubernetesオブジェクトのプロパティ。

ポッドの作成

String

ポッドの名前。

node

String

ノード名。

namespace

String

名前空間。

controllerKind

String

コントローラのタイプ。

コントローラー

String

コントローラの名前。

providerID

String

ノードのECS (Elastic Compute Service) インスタンスID。

labels

map[string]string

ポッドのラベル。

説明

Prometheusでは、ラベルにアンダースコア (_) のみを使用できます。 ラベルにハイフン (-) やアペリオド (.) などのシンボルが含まれている場合、プロメテウスはシンボルをアンダースコア (_) に変換します。

start

String

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

end

String

コストセットの終了時間。

cpuCoreRequestAverage

float

要求されたvCPUの平均数。

cpuCoreUsageAverage

float

使用中のvCPUの平均数。

ramByteRequestAverage

float

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

ramByteUsageAverage

float

使用中のメモリの平均量。

コスト

float

総クラスターコストからサービスに割り当てられたコスト。

costRatio

float

総クラスターコストに対する割り当てられたコストの比率。

customCost

float

カスタムコスト。

コスト洞察データの照会

このセクションでは、curlを使用してKubernetes APIにアクセスします。 詳細については、「Kubernetes APIの使用」をご参照ください。

例: 前日の合計クラスターコストから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/allocation" | 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.039,
        "cost": 4.497,
        "costRatio": 0.016,
        "customCost": 0.972
      },
      "kube-system/terway-eniip-j8c87": {
        "name": "kube-system/terway-eniip-j8c87",
        "properties": {
          "controller": "terway-eniip",
          "controllerKind": "DaemonSet",
          "namespace": "kube-system",
          "pod": "terway-eniip-j8c87"
        },
        "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": 186293944.32,
        "cost": 6.504,
        "costRatio": 0.023,
        "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": 2.337,
        "costRatio": 0.008,
        "customCost": 0.505
      }
    }
  ]
}