Bagikan melalui


Memantau biaya komputasi tanpa server

Artikel ini menjelaskan cara menggunakan tabel sistem penggunaan yang dapat ditagih (Pratinjau Umum) untuk memantau biaya penggunaan komputasi tanpa server Anda.

Anda dapat memantau penggunaan komputasi tanpa server untuk buku catatan dan pekerjaan dengan mengkueri tabel sistem penggunaan yang dapat ditagih (system.billing.usage), yang mencakup atribut pengguna dan beban kerja yang terkait dengan biaya komputasi tanpa server. Bidang yang berlaku meliputi:

  • Kolom identity_metadata menyertakan run_as bidang , yang menunjukkan pengguna atau perwakilan layanan yang kredensialnya digunakan untuk menjalankan beban kerja.
  • Kolom usage_metadata memiliki bidang yang menjelaskan beban kerja: job_run_id, , job_namenotebook_id, dan notebook_path.

Pertimbangan untuk catatan penggunaan tanpa server

Saat menganalisis penggunaan tanpa server Anda, pertimbangkan hal berikut:

  • Anda mungkin melihat beberapa rekaman yang terkait dengan beban kerja komputasi tanpa server tertentu dalam satu jam tertentu. Misalnya, Anda mungkin melihat beberapa rekaman dengan , , job_run_idatau job_name' yang sama job_idtetapi dengan nilai konsumsi DBU yang berbeda untuk masing-masing. Jumlah DBA ini secara kolektif mewakili konsumsi DBU per jam untuk eksekusi pekerjaan tertentu.

Catatan

Untuk pembaruan atribusi beban kerja null, lihat Apa yang akan datang?.

Dasbor pengamatan biaya

Untuk membantu Anda mulai memantau biaya tanpa server, unduh dasbor pengamatan biaya berikut dari Github. Lihat Dasbor pengamatan biaya tanpa server.

Dasbor pengamatan penagihan tanpa server

Setelah Anda mengunduh file JSON, impor dasbor ke ruang kerja Anda. Untuk petunjuk tentang mengimpor dasbor, lihat Mengimpor file dasbor.

Menemukan pekerjaan atau buku catatan di UI

Untuk menemukan pekerjaan atau buku catatan di UI berdasarkan catatan penagihan, salin usage_metadata.job_id nilai atau usage_metadata.notebook_id dari catatan penggunaan. ID ini tidak dapat diubah dan dapat digunakan bahkan jika nama pekerjaan atau jalur buku catatan berubah.

Untuk menemukan pekerjaan di UI berdasarkan job_id:

  1. job_id Salin dari catatan penggunaan. Untuk contoh ini, asumsikan ID adalah 700809544510906.
  2. Navigasikan ke UI Alur Kerja di ruang kerja Azure Databricks yang sama dengan pekerjaan.
  3. Pastikan satu-satunya pekerjaan yang dimiliki oleh saya filter tidak dicentang.
  4. Tempelkan ID (700809544510906) ke bilah pencarian Pekerjaan filter.

Untuk menemukan buku catatan di UI berdasarkan notebook_id, gunakan instruksi berikut:

  1. notebook_id Salin dari catatan penggunaan. Untuk contoh ini, asumsikan ID adalah 700809544510906.
  2. Navigasi ke UI Ruang Kerja di ruang kerja Azure Databricks yang sama dengan buku catatan.
  3. Klik buku catatan apa pun dalam daftar.
  4. Setelah Anda membuka notebook, periksa URL di bilah alamat browser. Ini akan terlihat seperti: https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>
  5. Di bilah alamat browser, ganti ID buku catatan dengan ID yang Anda salin di langkah pertama, lalu hapus semuanya setelah ID buku catatan. Ini akan terlihat seperti: https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906
  6. Setelah membuka buku catatan, Anda bisa mengklik tombol Bagikan untuk menampilkan pemilik buku catatan.

Menggunakan pemberitahuan untuk melacak pengeluaran tanpa server

Pemberitahuan adalah cara yang ampuh untuk tetap mendapatkan informasi tentang pengeluaran tanpa server Anda. Dengan pemberitahuan, Anda dapat menerima pemberitahuan saat kondisi tertentu terpenuhi dalam hasil kueri Anda. Untuk mempelajari cara membuat pemberitahuan, lihat Membuat pemberitahuan.

Anda dapat menambahkan pemberitahuan ke kueri berikut untuk memantau anggaran. Di setiap kueri, ganti {budget} dengan anggaran yang Anda pilih.

Pemberitahuan saat setiap pengeluaran ruang kerja melebihi ambang dalam 30 hari terakhir

Anda dapat mengatur pemberitahuan untuk dipicu setiap kali kueri ini mengembalikan baris. Ganti {budget} dengan anggaran yang Anda pilih.

SELECT
   t1.workspace_id,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS", "NOTEBOOKS")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.workspace_id
HAVING
   list_cost > {budget}

Pemberitahuan saat pengguna melebihi ambang batas dalam 30 hari terakhir

Anda dapat mengatur pemberitahuan untuk dipicu setiap kali kueri ini mengembalikan baris. Ganti {budget} dengan anggaran yang Anda pilih.

SELECT
   t1.identity_metadata.run_as,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS", "NOTEBOOKS")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.identity_metadata.run_as
HAVING
   list_cost > {budget}

Pemberitahuan saat pekerjaan melebihi ambang dalam 30 hari terakhir

Anda dapat mengatur pemberitahuan untuk dipicu setiap kali kueri ini mengembalikan baris. Ganti {budget} dengan anggaran yang Anda pilih.

SELECT
   t1.workspace_id,
   t1.usage_metadata.job_id,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.workspace_id, t1.usage_metadata.job_id,
HAVING
   list_cost > {budget}

Contoh kueri

Gunakan kueri berikut untuk mendapatkan wawasan tentang penggunaan tanpa server di akun Anda:

Mengidentifikasi notebook komputasi tanpa server yang mahal

Kueri ini mengembalikan daftar buku catatan dan berapa banyak DBA yang digunakan setiap buku catatan, dalam urutan menurut berdasarkan konsumsi DBU:

SELECT
  usage_metadata.notebook_id,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  usage_metadata.notebook_id is not null
  and billing_origin_product = 'INTERACTIVE'
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1
ORDER BY
  total_dbu DESC

Mengidentifikasi pekerjaan komputasi tanpa server yang mahal

Kueri ini mengembalikan daftar pekerjaan dan berapa banyak DBA yang dikonsumsi setiap pekerjaan, dalam urutan turun berdasarkan konsumsi DBU:

SELECT
  usage_metadata.job_id,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  usage_metadata.job_id is not null
  and billing_origin_product = 'JOBS'
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1
ORDER BY
  total_dbu DESC

Laporan tentang DBA yang digunakan oleh pengguna tertentu

Kueri ini mengembalikan daftar notebook dan pekerjaan yang menggunakan komputasi tanpa server yang dijalankan oleh pengguna atau perwakilan layanan tertentu, dan jumlah DBA yang digunakan oleh setiap beban kerja:

SELECT
  usage_metadata.job_id,
  usage_metadata.notebook_id,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  identity_metadata.run_as = '<emailaddress@domain.com>'
  and billing_origin_product in ('JOBS','INTERACTIVE')
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1,2
ORDER BY
  total_dbu DESC

Melaporkan DBA komputasi tanpa server yang digunakan oleh beban kerja yang berbagi tag kustom

Kueri ini mengembalikan daftar pekerjaan yang menggunakan komputasi tanpa server yang memiliki tag kustom yang sama, dan jumlah DBA yang digunakan oleh setiap beban kerja:

SELECT
  usage_metadata.job_id,
  usage_metadata.notebook_id,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  custom_tags.<key> = '<value>'
  and billing_origin_product in ('JOBS','INTERACTIVE')
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1,2
ORDER BY
  total_dbu DESC