Lakukan kueri estimasi biaya real-time untuk beban kerja kluster melalui Cost V2 API dengan jendela waktu fleksibel dan filter berdasarkan pod, namespace, label, nama controller, atau jenis controller guna menganalisis tren biaya secara real-time.
Prasyarat
Selesaikan penyiapan di Ikhtisar memperoleh data biaya menggunakan API.
Referensi API
Sintaksis permintaan
GET /v2/costParameter permintaan
Parameter | Tipe | Wajib | Deskripsi |
| string | Ya | Rentang waktu untuk dikueri.
|
| string | Tidak | Filter berdasarkan kategori resource: Pisahkan beberapa nilai dengan koma: Gabungkan kategori dengan +: |
| string | Tidak | Interval waktu untuk membagi hasil menjadi beberapa set biaya (misalnya, Catatan Set biaya berisi data biaya untuk objek Kubernetes (seperti pod) dalam periode waktu tertentu. |
| string | Tidak | Dimensi agregasi. Nilai yang didukung:
|
| boolean | Tidak | Menentukan apakah akan menyertakan biaya idle. Default: |
| boolean | Tidak | Menentukan apakah akan mendistribusikan biaya idle ke alokasi non-idle. Default: |
| string | Tidak | Kebijakan untuk mengalokasikan biaya idle. Nilai yang valid:
|
| boolean | Tidak | Menentukan apakah akan mengagregasi biaya idle pada level node sebelum didistribusikan. Hanya berlaku saat |
| string | Tidak | Format output. Nilai yang valid: |
Parameter respons
Parameter | Type | Deskripsi |
| object | Properti objek Kubernetes. |
| string | Nama pod. |
| string | Nama node. |
| string | Namespace. |
| string | Jenis controller (misalnya, DaemonSet, ReplicaSet). |
| string | Nama controller. |
| string | ID Instance ECS untuk node tersebut. |
| map[string]string | Label pod. Catatan Prometheus hanya mendukung garis bawah ( |
| string | Waktu mulai set biaya. |
| string | Waktu akhir set biaya. |
| float | Rata-rata core CPU yang diminta selama periode tersebut. |
| float | Rata-rata core CPU yang digunakan selama periode tersebut. |
| float | Rata-rata memori yang diminta selama periode tersebut, dalam byte. |
| float | Rata-rata memori yang digunakan selama periode tersebut, dalam byte. |
| float | Estimasi biaya untuk periode tersebut. Default: bobot CPU 100%. Lihat Kebijakan estimasi biaya untuk menyesuaikan. |
| float | Persentase dari total biaya kluster ( |
| float | Biaya dari kebijakan estimasi kustom. |
(Opsional) Langkah 1: Menyesuaikan bobot biaya resource
Cost V2 API secara default menggunakan bobot CPU 100% ({"cpu": "1.0", "memory": "0.0"}). Untuk pembobotan campuran CPU-memori, perbarui chart Helm ack-alibaba-cloud-metrics-adapter.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Applications > Helm.
Di halaman Helm, temukan
ack-alibaba-cloud-metrics-adapterdan klik Update di kolom Actions.Di file YAML, perbarui parameter
AlibabaCloudMetricsAdapter.costWeights, lalu klik OK.
Lihat Kebijakan estimasi biaya.
Langkah 2: Kueri data biaya
Semua contoh menggunakan curl dengan otentikasi sertifikat klien. Untuk penyiapan, lihat Menggunakan Kubernetes API.
Contoh 1: Kueri biaya DaemonSet kemarin
Filter berdasarkan namespace, jenis controller, dan label untuk mengembalikan data biaya per pod untuk kemarin.
Request
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
Contoh 2: Kueri biaya pod per jam dalam jendela 3 jam
Gunakan step=1h untuk membagi jendela 3 jam menjadi tiga set biaya per jam.
Request
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
Contoh 3: Kueri biaya yang diagregasi berdasarkan label app
Gunakan aggregate=label:app untuk mengelompokkan biaya berdasarkan label app.
Request
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
Langkah selanjutnya
Allocation API menggabungkan data tagihan dan data biaya kluster untuk rekonsiliasi biaya amortisasi. Lihat Memperoleh data menggunakan Allocation API.