All Products
Search
Document Center

Container Service for Kubernetes:Kueri data biaya melalui Cost V2 API

Last Updated:Mar 25, 2026

Cost V2 API memungkinkan Anda mengkueri estimasi biaya real-time untuk beban kerja kluster Anda. Anda dapat menentukan rentang waktu yang fleksibel dan menerapkan filter berdasarkan dimensi seperti pod, namespace, label, nama controller (misalnya, csi-plugin), serta jenis controller (misalnya, ReplicaSet, DaemonSet, atau Job). Fitur ini berguna untuk analisis tren biaya secara real-time.

Prasyarat

Lengkapi prasyarat yang dijelaskan dalam Ikhtisar cara memperoleh data biaya menggunakan API.

Parameter permintaan dan respons

Sintaksis permintaan

GET /v2/cost

Parameter permintaan

Parameter

Type

Wajib

Deskripsi

window

string

Ya

Rentang waktu untuk dikueri. Format berikut didukung:

  • Kata kunci: today, week, month, yesterday, lastweek, dan lastmonth.

  • Durasi: 30m, 12h, dan 7d.

  • Tanggal RFC3339: Sepasang tanggal dalam format RFC3339 yang dipisahkan koma, contohnya 2024-03-26T00:00:00Z,2024-03-27T00:00:00Z.

  • Timestamp Unix: Sepasang timestamp Unix dalam satuan detik yang dipisahkan koma, contohnya 1711382400,1711468800.

filter

string

Tidak

Memfilter hasil berdasarkan kategori resource. Kategori berikut didukung:

  • namespace

  • controllerName (misalnya, csi-plugin dan node-exporter)

    dll.)

  • controllerKind (misalnya, ReplicaSet, DaemonSet, dan Job)

  • pod

  • label (misalnya, [app]:"nginx")

Anda dapat menentukan beberapa nilai untuk kategori yang sama dengan memisahkannya menggunakan koma (,), contohnya namespace:"default","kube-system".

Anda juga dapat menggabungkan kategori berbeda dengan menggunakan tanda plus (+), contohnya namespace:"default"+label[app]:"nginx".

step

string

Tidak

Interval waktu untuk membagi respons menjadi beberapa set biaya. Contohnya, 1d atau 1w. Jika tidak ditentukan, seluruh window diperlakukan sebagai satu set biaya.

Catatan

Set biaya adalah kumpulan biaya untuk suatu objek Kubernetes, seperti pod, dalam periode waktu tertentu.

aggregate

string

Tidak

Dimensi yang digunakan untuk mengagregasi hasil kueri. Dimensi berikut didukung:

  • namespace

  • controller

  • controllerKind

  • label:<name>

  • node

idle

boolean

Tidak

Apakah akan menyertakan dan memproses biaya idle. Nilai default-nya adalah true.

shareIdle

boolean

Tidak

Apakah akan mengalokasikan biaya idle ke resource. Nilai default-nya adalah false.

shareSplit

string

Tidak

Kebijakan untuk mengalokasikan biaya idle. Nilai berikut didukung:

  • weighted (default)

  • even

idleByNode

boolean

Tidak

Menentukan apakah akan mengagregasi biaya idle berdasarkan node. Parameter ini hanya berlaku ketika aggregate diatur ke node dan shareIdle diatur ke false. Nilai default-nya adalah false.

format

string

Tidak

Format untuk mengekspor data biaya. Format berikut didukung:

  • json (default)

  • csv

Parameter respons

Parameter

Tipe

Deskripsi

properties

object

Properti dari objek Kubernetes terkait.

pod

string

Nama pod.

node

string

Nama node.

namespace

string

Namespace.

controllerKind

string

Jenis controller.

controller

string

Nama controller.

providerID

string

ID instans Elastic Compute Service (ECS) yang sesuai dengan node tersebut.

labels

map[string]string

Label pod.

Catatan

Prometheus hanya mendukung garis bawah (_) dalam label. Jika label Anda mengandung simbol lain, seperti tanda hubung (-) atau titik (.), Prometheus akan mengonversinya menjadi garis bawah (_).

start

string

Waktu mulai set biaya.

end

string

Waktu akhir set biaya.

cpuCoreRequestAverage

float

Rata-rata jumlah core CPU yang diminta.

cpuCoreUsageAverage

float

Rata-rata jumlah core CPU yang digunakan.

ramByteRequestAverage

float

Rata-rata jumlah memori yang diminta.

ramByteUsageAverage

float

Rata-rata jumlah memori yang digunakan.

cost

float

Estimasi biaya. Secara default, kebijakan estimasi biaya menggunakan bobot CPU sebesar 100%. Untuk menyesuaikan bobot resource, lihat Kebijakan estimasi biaya.

costRatio

float

Rasio biaya resource terhadap total biaya kluster.

customCost

float

Biaya kustom.

(Opsional) Langkah 1: Menyesuaikan bobot biaya resource

Secara default, Cost V2 API menggunakan kebijakan estimasi biaya dengan bobot CPU 100%. Untuk menyesuaikan pembobotan ini, ikuti langkah-langkah berikut.

  1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Applications > Helm.

  3. Pada halaman Helm, temukan ack-alibaba-cloud-metrics-adapter dan klik Update pada kolom Actions.

  4. Pada file YAML, ubah parameter AlibabaCloudMetricsAdapter.costWeights. Nilai default-nya adalah {"cpu": "1.0", "memory": "0.0"}. Setelah melakukan modifikasi, klik OK.

    image

    Untuk informasi lebih lanjut tentang kebijakan estimasi sumber daya campuran (CPU dan memori), lihat Kebijakan estimasi biaya.

Langkah 2: Mengambil data biaya

Contoh berikut menunjukkan cara menggunakan curl untuk mengakses API Kubernetes. Untuk informasi lebih lanjut, lihat Menggunakan API Kubernetes.

Contoh 1: Kueri biaya DaemonSet untuk kemarin

Permintaan

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 .

Contoh respons (format JSON)

Lihat contoh respons

{
  "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
      }
    }
  ]
}

Contoh 2: Mengkueri biaya pod per jam selama tiga jam

Permintaan

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 .

Contoh respons (format JSON)

Lihat contoh respons

{
  "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
      }
    }
  ]
}

Contoh 3: Mengkueri biaya yang diagregasi berdasarkan label app

Permintaan

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 .

Contoh respons (format JSON)

Lihat contoh respons

{
  "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
      },
      ... ...
      
    }
  ]
}

Referensi

Allocation API menggabungkan data tagihan untuk memberikan biaya amortisasi guna rekonsiliasi. Untuk informasi lebih lanjut, lihat Memperoleh data menggunakan Allocation API.