全部产品
Search
文档中心

Container Service for Kubernetes:Memanggil API Alokasi untuk Meminta Data Wawasan Biaya

更新时间:Jul 02, 2025

Anda dapat memanggil API Alokasi untuk meminta data alokasi biaya kluster, yang digunakan dalam akuntansi selama siklus tata kelola keuangan.

Prasyarat

Pastikan prasyarat yang dijelaskan dalam topik Ikhtisar Memanggil API untuk Meminta Data Biaya telah terpenuhi.

Parameter permintaan dan respons

Sintaks permintaan

GET /v2/allocation

Parameter permintaan

Parameter

Tipe

Diperlukan

Deskripsi

window

string

Ya

Rentang waktu yang akan diminta. Output data wawasan biaya harus digunakan bersama dengan data penagihan layanan cloud. Rentang waktu minimum yang dapat diminta adalah 24 jam. Format berikut diterima:

  • Kata kunci. Contoh: minggu, bulan, kemarin, minggulalu, dan bulanlalu.

  • Contoh: 24j dan 7h.

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

  • Timestamp UNIX: sepasang timestamp UNIX (dalam detik) yang dipisahkan koma. Contoh: 1711382400,1711468800.

filter

string

Tidak

Opsi filter untuk beban kerja. Jenis opsi filter berikut didukung:

  • namespace

  • controllerName (seperti csi-plugin dan node-exporter)

  • controllerKind (seperti ReplicaSet, DaemonSet, dan Job)

  • pod

  • label (seperti [app]:"nginx")

Anda dapat menentukan beberapa opsi filter dari jenis yang sama. Pisahkan opsi filter dengan koma (,). Contoh: namespace:"default","kube-system".

Anda juga dapat menentukan beberapa jenis opsi filter. Pisahkan jenis opsi filter yang berbeda dengan tanda tambah (+). Contoh: namespace:"default"+label[app]:"nginx".

step

string

Tidak

Interval yang digunakan untuk membagi rentang waktu. Parameter step menentukan interval set biaya. Contoh: 1h atau 1m. Nilai defaultnya adalah nilai parameter window.

Catatan

Set biaya mencakup data biaya objek Kubernetes, seperti pod, dalam interval tersebut.

aggregate

string

Tidak

Opsi agregat untuk hasil yang dikembalikan dari dimensi yang berbeda. Jenis opsi filter berikut didukung:

  • namespace

  • controller

  • controllerKind

  • label:<name>

  • node

idle

boolean

Tidak

Menentukan apakah akan menampilkan atau memproses biaya idle. Nilai default: true.

shareIdle

boolean

Tidak

Menentukan apakah akan mengalokasikan biaya idle ke setiap sumber daya. Nilai default: false.

shareSplit

string

Tidak

Kebijakan alokasi biaya idle. Jenis opsi filter berikut didukung:

  • weighted (default)

  • even

idleByNode

boolean

Tidak

Menentukan apakah akan menggabungkan biaya idle setiap node. Parameter ini hanya berlaku jika Anda menetapkan parameter aggregate ke node dan parameter shareIdle ke false. Nilai default: false.

targetType

string

Tidak

Jenis target alokasi biaya. Secara default, biaya untuk semua sumber daya yang terkait dengan kluster dialokasikan.

  • cluster (nilai default)

  • node

format

string

Tidak

Format yang digunakan untuk mengekspor biaya. Jenis opsi filter berikut didukung:

  • json (default)

  • csv

Parameter respons

Parameter

Tipe

Deskripsi

properties

object

Properti 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 instance Elastic Compute Service (ECS) dari node.

labels

map[string]string

Label pod.

Catatan

Prometheus hanya mengizinkan penggunaan garis bawah (_) dalam label. Jika label Anda mengandung simbol, seperti tanda hubung (-) dan titik (.), Prometheus akan mengonversi simbol tersebut menjadi garis bawah (_).

start

string

Waktu mulai set biaya.

end

string

Waktu akhir set biaya.

cpuCoreRequestAverage

float

Jumlah rata-rata vCPU yang diminta.

cpuCoreUsageAverage

float

Jumlah rata-rata vCPU yang digunakan.

ramByteRequestAverage

float

Jumlah rata-rata memori yang diminta.

ramByteUsageAverage

float

Jumlah rata-rata memori yang digunakan.

cost

float

Biaya yang dialokasikan ke layanan dari total biaya kluster.

costRatio

float

Rasio biaya yang dialokasikan terhadap total biaya kluster.

customCost

float

Biaya kustom.

Meminta data wawasan biaya

Pada bagian ini, curl digunakan untuk mengakses API Kubernetes. Untuk informasi lebih lanjut, lihat Gunakan API Kubernetes.

Contoh: Meminta biaya yang dialokasikan ke DaemonSet dari total biaya kluster hari sebelumnya

Perintah

curl -G -k --cert ./client-cert.pem --key ./client-key.pem \
-d 'window=kemarin' \
-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 .

Contoh respons sukses (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.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
      }
    }
  ]
}