全部产品
Search
文档中心

Container Service for Kubernetes:Panggil API Biaya untuk menanyakan data biaya

更新时间:Jul 02, 2025

Anda dapat memanggil API Biaya untuk menanyakan estimasi biaya real-time dan data pemantauan sumber daya dari sebuah namespace atau pod dalam periode waktu tertentu.

Prasyarat

Pastikan prasyarat yang dijelaskan dalam topik Ikhtisar memanggil API untuk menanyakan data biaya telah terpenuhi.

Parameter untuk menanyakan data biaya

Setelah terhubung ke kluster Anda, jalankan perintah yang sesuai untuk menanyakan data biaya. Tabel berikut menjelaskan parameter-parameter tersebut.

Parameter

Deskripsi

DimensionType

Dimensi berdasarkan mana data wawasan biaya ditanyakan. Secara default, data wawasan biaya ditanyakan berdasarkan pod. Nilai yang valid:

  • Namespace: Data wawasan biaya ditanyakan berdasarkan namespace.

  • Pod: Data wawasan biaya ditanyakan berdasarkan pod.

Dimension

Tentukan apakah akan menyaring data wawasan biaya.

  • Ketika DimensionType disetel ke Namespace:

    • Jika Anda tidak menentukan Dimension, data wawasan biaya dari semua namespace dikembalikan.

    • Jika Anda menentukan Dimension=Sebuah Namespace, hanya data wawasan biaya dari Namespace A yang dikembalikan.

    • Jika Anda menentukan LabelSelector, data wawasan biaya yang disaring oleh LabelSelector dikembalikan.

  • Ketika DimensionType disetel ke Pod:

    • Jika Anda tidak menentukan Dimension, data wawasan biaya dari semua pod dikembalikan.

    • Jika Anda menentukan Dimension=Sebuah Pod, hanya data wawasan biaya dari Pod A yang dikembalikan.

      Catatan

      Anda juga dapat menentukan beberapa pod dan memisahkannya dengan koma (,), seperti Dimension=pod=node-exporter-7vtmj,pod=node-exporter-cn54q.

    • Jika Anda menentukan LabelSelector, data wawasan biaya yang disaring oleh LabelSelector dikembalikan.

LabelSelector

Filter pod berdasarkan label aplikasi (app).

TimeUnit

Rentang waktu dari data wawasan biaya yang ditanyakan. Nilai yang valid: hour, day, week, dan month. Nilai default: hour.

Summary

Jika Anda menyetel parameter ini ke true, sistem mengembalikan data wawasan biaya yang dirangkum dari semua pod yang sesuai dengan kondisi yang ditentukan. Nilai default: false.

Metrik data biaya

  • cpu: Unit: vCore.

  • gpu: Unit: jumlah.

  • memory: Unit: KB.

  • perCorePricing: harga satuan vCore pada node yang menampung pod saat ini atau aplikasi yang ditanyakan. Satuan mata uang untuk sumber daya di situs China adalah ¥ dan satuan mata uang untuk sumber daya di situs Internasional adalah $.

  • costRatio: rasio biaya pod saat ini atau aplikasi yang ditanyakan terhadap total biaya kluster. Sebagai contoh, jika rasio adalah 0,2, 20% dari biaya kluster dihabiskan untuk pod saat ini atau aplikasi yang ditanyakan.

  • cost: biaya pod saat ini atau aplikasi yang ditanyakan dalam rentang waktu yang ditentukan. Satuan mata uang untuk sumber daya di situs China adalah ¥ dan satuan mata uang untuk sumber daya di situs Internasional adalah $.

  • customCost: biaya kustom pod saat ini atau aplikasi yang ditanyakan dalam rentang waktu yang ditentukan.

Perintah untuk menanyakan data biaya

Contoh 1: Menanyakan data biaya dari semua pod dalam kluster selama satu jam sebelumnya

Perintah

kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost"

Output yang Diharapkan

Lihat output yang diharapkan

[
  {
    "metadata": {
      "timestamp": "2023-02-14T03:27:18Z",
      "timeUnit": "hour",
      "DimensionType": "",
      "Dimension": "",
      "PodName": "arms-springboot-demo-subcomponent-7f94c7f597-5l8tc"
    },
    "request": {
      "cpu": 0.5,
      "memory": 0,
      "gpu": 0,
      "gpuMem": 0
    },
    "usage": {
      "cpu": 0.022,
      "memory": 1538784,
      "gpu": 0,
      "gpuMem": 0
    },
    "limit": {
      "cpu": 0,
      "memory": 0.5,
      "gpu": 0,
      "gpuMem": 0
    },
    "perCorePricing": 0.2,
    "costRatio": 0.010671219720414044,
    "cost": 0.1
  },
  {
    "metadata": {
      "timestamp": "2023-02-14T03:27:18Z",
      "timeUnit": "hour",
      "DimensionType": "",
      "Dimension": "",
      "PodName": "thanos-query-74cfcd459f-pf54n"
    },
    "request": {
      "cpu": 0.1,
      "memory": 131072,
      "gpu": 0,
      "gpuMem": 0
    },
    "usage": {
      "cpu": 0.001,
      "memory": 90780,
      "gpu": 0,
      "gpuMem": 0
    },
........

Contoh 2: Menanyakan data biaya dari semua pod dalam namespace selama satu jam sebelumnya

Deskripsi

Menanyakan data biaya dari semua pod dalam namespace default selama satu jam sebelumnya. Ganti nama namespace dengan nilai aktual.

Perintah

kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Namespace&Dimension=default"| jq .

Output yang Diharapkan

Lihat output yang diharapkan

[
  {
    "metadata": {
      "timestamp": "2023-02-14T04:08:15Z",
      "timeUnit": "hour",
      "DimensionType": "Namespace",
      "Dimension": "default",
      "PodName": "test60-test-chart-v2-5cd85b946c-ntcct"
    },
    "request": {
      "cpu": 0,
      "memory": 0,
      "gpu": 0,
      "gpuMem": 0
    },
    "usage": {
      "cpu": 0,
      "memory": 18336,
      "gpu": 0,
      "gpuMem": 0
    },
    "limit": {
      "cpu": 0,
      "memory": 0,
      "gpu": 0,
      "gpuMem": 0
    },
    "perCorePricing": 0,
    "costRatio": 0,
    "cost": 0
  },
  {
    "metadata": {
      "timestamp": "2023-02-14T04:08:15Z",
      "timeUnit": "hour",
      "DimensionType": "Namespace",
      "Dimension": "default",
      "PodName": "nginx"
    },
    "request": {
      "cpu": 0,
      "memory": 0,
      "gpu": 0,
      "gpuMem": 0
    },
.......

Contoh 3: Menanyakan data biaya dari sebuah pod selama satu jam sebelumnya

Deskripsi

Menanyakan data biaya dari pod bernama nginx-deployment-basic-75d6678cbb-lg8v5 selama satu jam sebelumnya. Ganti nama pod dengan nilai aktual.

Perintah

kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Pod&Dimension=pod=nginx-deployment-basic-75d6678cbb-lg8v5"| jq .

Output yang Diharapkan

Lihat output yang diharapkan

[
  {
    "metadata": {
      "timestamp": "2023-02-14T04:09:50Z",
      "timeUnit": "hour",
      "DimensionType": "Pod",
      "Dimension": "pod=nginx-deployment-basic-75d6678cbb-lg8v5",
      "PodName": "nginx-deployment-basic-75d6678cbb-lg8v5"
    },
    "request": {
      "cpu": 0.5,
      "memory": 0,
      "gpu": 0,
      "gpuMem": 0
    },
    "usage": {
      "cpu": 0.002,
      "memory": 50148,
      "gpu": 0,
      "gpuMem": 0
    },
    "limit": {
      "cpu": 0,
      "memory": 0.5,
      "gpu": 0,
      "gpuMem": 0
    },
    "perCorePricing": 0.2,
    "costRatio": 0.010671219720414044,
    "cost": 0.1
  }
]

Contoh 4: Menanyakan data biaya berdasarkan LabelSelector

Deskripsi

Anda dapat menentukan baik LabelSelector maupun DimensionType sebagai kondisi filter. Hubungan logis antara LabelSelector dan DimensionType adalah DAN. Contoh berikut menanyakan data biaya dari semua pod yang memiliki label app=sample-app selama satu jam sebelumnya. Ganti label aplikasi dengan nilai aktual.

Perintah

kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?LabelSelector=app=nginx"| jq .

Output yang Diharapkan

Lihat output yang diharapkan

[
  {
    "metadata": {
      "timestamp": "2023-02-14T04:10:24Z",
      "timeUnit": "hour",
      "DimensionType": "",
      "Dimension": "",
      "PodName": "nginx-deployment-basic-75d6678cbb-lg8v5"
    },
    "request": {
      "cpu": 0.5,
      "memory": 0,
      "gpu": 0,
      "gpuMem": 0
    },
    "usage": {
      "cpu": 0.002,
      "memory": 50148,
      "gpu": 0,
      "gpuMem": 0
    },
    "limit": {
      "cpu": 0,
      "memory": 0.5,
      "gpu": 0,
      "gpuMem": 0
    },
    "perCorePricing": 0.2,
    "costRatio": 0.010671219720414044,
    "cost": 0.1
  },
  {
    "metadata": {
      "timestamp": "2023-02-14T04:10:24Z",
      "timeUnit": "hour",
      "DimensionType": "",
      "Dimension": "",
      "PodName": "nginx-675b8d6f54-vqxvd"
    },
    "request": {
      "cpu": 0.25,
      "memory": 524288,
      "gpu": 0,
      "gpuMem": 0
    },
    "usage": {
      "cpu": 0,
      "memory": 13548,
      "gpu": 0,
      "gpuMem": 0
    },
    "limit": {
      "cpu": 0,
      "memory": 0,
      "gpu": 0,
      "gpuMem": 0
    },
    "perCorePricing": 0.2,
    "costRatio": 0.005335609860207022,
    "cost": 0.05
  },
  {
    "metadata": {
      "timestamp": "2023-02-14T04:10:25Z",
      "timeUnit": "hour",
      "DimensionType": "",
      "Dimension": "",
      "PodName": "nginx-deployment-basic-7456bcd48d-r87rz"
    },
    "request": {
      "cpu": 0,
      "memory": 0,
      "gpu": 0,
      "gpuMem": 0
    },
    "usage": {
      "cpu": 0,
      "memory": 223492,
      "gpu": 0,
      "gpuMem": 0
    },
    "limit": {
      "cpu": 0,
      "memory": 0,
      "gpu": 0,
      "gpuMem": 0
    },
    "perCorePricing": 0,
    "costRatio": 0,
    "cost": 0
  }
]

Contoh 5: Menanyakan data biaya dari pod selama satu hari sebelumnya

Deskripsi

Menanyakan data biaya dari pod bernama nginx-deployment-basic-75d6678cbb-lg8v5 selama satu hari sebelumnya. Ganti nama pod dengan nilai aktual.

Perintah

kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Pod&Dimension=pod=nginx-deployment-basic-75d6678cbb-lg8v5&TimeUnit=day"| jq .

Output yang Diharapkan

Lihat output yang diharapkan

[
  {
    "metadata": {
      "timestamp": "2023-02-14T04:11:04Z",
      "timeUnit": "day",
      "DimensionType": "Pod",
      "Dimension": "pod=nginx-deployment-basic-75d6678cbb-lg8v5",
      "PodName": "nginx-deployment-basic-75d6678cbb-lg8v5"
    },
    "request": {
      "cpu": 0.5,
      "memory": 0,
      "gpu": 0,
      "gpuMem": 0
    },
    "usage": {
      "cpu": 0.001,
      "memory": 50196,
      "gpu": 0,
      "gpuMem": 0
    },
    "limit": {
      "cpu": 0,
      "memory": 0.5,
      "gpu": 0,
      "gpuMem": 0
    },
    "perCorePricing": 0.2,
    "costRatio": 0.010571112959515542,
    "cost": 2.402
  }
]

Contoh 6: Menanyakan data biaya dari sebuah namespace

Deskripsi

Menanyakan data biaya dari namespace default. Ganti nama namespace dengan nilai aktual.

Perintah

kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Namespace&Dimension=default&Summary=true"| jq .

Output yang Diharapkan

Lihat output yang diharapkan

[
  {
    "metadata": {
      "timestamp": "2023-02-14T04:12:48Z",
      "timeUnit": "hour",
      "DimensionType": "Namespace",
      "Dimension": "default",
      "PodName": ""
    },
    "request": {
      "cpu": 12,
      "memory": 7045120,
      "gpu": 0,
      "gpuMem": 0
    },
    "usage": {
      "cpu": 0.053,
      "memory": 4901208,
      "gpu": 0,
      "gpuMem": 0
    },
    "limit": {
      "cpu": 0,
      "memory": 6553600,
      "gpu": 0,
      "gpuMem": 0
    },
    "perCorePricing": 4.061,
    "costRatio": 0.01609432143753053,
    "cost": 3.657
  }
]

Referensi