Anda dapat memanggil API Cost V2 untuk mendapatkan perkiraan biaya beban kerja kluster secara real-time. Saat memanggil API ini, Anda dapat menentukan rentang waktu dan menyaring beban kerja berdasarkan nama pod, namespace, label, controller (seperti csi-plugin), atau jenis controller (seperti ReplicaSet, DaemonSet, dan Job). Data biaya yang dikembalikan dapat digunakan untuk menganalisis tren biaya secara real-time.
Prasyarat
Pastikan prasyarat yang dijelaskan dalam topik Ikhtisar Pemanggilan API untuk Meminta Data Biaya telah terpenuhi.
Parameter permintaan dan parameter respons
Sintaksis permintaan
GET /v2/costParameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
window | string | Ya | Rentang waktu yang akan ditanyakan. Format berikut didukung:
|
filter | string | Tidak | Opsi filter untuk beban kerja. Jenis opsi filter berikut didukung:
Anda dapat menentukan beberapa opsi filter dari tipe yang sama. Pisahkan opsi filter dengan koma (,). Contoh: Anda juga dapat menentukan beberapa jenis opsi filter. Pisahkan jenis opsi filter yang berbeda dengan tanda tambah ( |
step | string | Tidak | Interval yang digunakan untuk membagi rentang waktu. Parameter step menentukan interval set biaya. Contoh: 1d atau 1w. Nilai default adalah nilai parameter 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:
|
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:
|
idleByNode | boolean | Tidak | Menentukan apakah akan mengumpulkan biaya idle setiap node. Parameter ini hanya berlaku jika Anda menetapkan parameter aggregate ke node dan parameter shareIdle ke false. Nilai default: false. |
format | string | Tidak | Format yang digunakan untuk mengekspor biaya. Jenis opsi filter berikut didukung:
|
Parameter respons
Parameter | Tipe | Deskripsi |
properties | object | Informasi tentang objek Kubernetes. |
pod | string | Nama pod. |
node | string | Nama node persetujuan. |
namespace | string | Namespace tempat pod berada. |
controllerKind | string | Jenis controller. |
controller | string | Nama controller. |
providerID | string | ID instance Elastic Compute Service (ECS) yang sesuai dengan 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 | Rata-rata jumlah core CPU yang diminta oleh pod. |
cpuCoreUsageAverage | float | Rata-rata jumlah core CPU yang digunakan oleh pod. |
ramByteRequestAverage | float | Rata-rata jumlah memori yang diminta oleh pod. |
ramByteUsageAverage | float | Rata-rata jumlah memori yang digunakan oleh pod. |
cost | float | Estimasi biaya pod. Bobot CPU default yang digunakan oleh kebijakan estimasi biaya adalah 100%. Untuk menentukan bobot resource kustom, lihat Kebijakan estimasi biaya. |
costRatio | float | Rasio biaya pod. Parameter ini menunjukkan rasio biaya pod terhadap total biaya kluster. |
customCost | float | Biaya kustom. |
(Opsional) Langkah 1: Menentukan bobot resource kustom
Bobot CPU default dari kebijakan estimasi biaya yang diterapkan pada API Cost V2 adalah 100%. Untuk menentukan bobot resource kustom, ikuti langkah-langkah berikut:
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi kiri, pilih .
Di halaman Helm, temukan ack-alibaba-cloud-metrics-adapter dan klik Update di kolom Actions.
Ubah parameter
AlibabaCloudMetricsAdapter.costWeightsdi file konfigurasi YAML sesuai dengan kebutuhan bisnis Anda. Nilai default bidang ini adalah {"cpu": "1.0", "memory": "0.0"}. Lalu, klik OK.
Untuk menentukan bobot CPU dan bobot memori untuk kebijakan estimasi biaya, lihat Kebijakan Estimasi Biaya.
Langkah 2: Meminta data biaya
Dalam bagian ini, curl digunakan untuk mengakses API Kubernetes. Untuk informasi lebih lanjut, lihat Gunakan API Kubernetes.
Contoh 1: Meminta estimasi biaya DaemonSet dalam sehari sebelumnya
Perintah
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 sukses dalam format JSON
Contoh 2: Meminta estimasi biaya pod dalam 3 jam (dibagi per jam)
Perintah
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 sukses dalam format JSON
Contoh 3: Mendapatkan biaya semua aplikasi yang memiliki kunci label app dan menggabungkan set biaya berdasarkan nilai label
Perintah
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 sukses dalam format JSON
Referensi
API Allocation memungkinkan Anda mengalokasikan biaya bisnis berdasarkan tagihan untuk tujuan akuntansi. Untuk informasi lebih lanjut, lihat Memanggil API Allocation untuk Meminta Data Wawasan Biaya.