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
menyertakanrun_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_name
notebook_id
, dannotebook_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_id
atau job_name' yang samajob_id
tetapi 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.
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
:
job_id
Salin dari catatan penggunaan. Untuk contoh ini, asumsikan ID adalah700809544510906
.- Navigasikan ke UI Alur Kerja di ruang kerja Azure Databricks yang sama dengan pekerjaan.
- Pastikan satu-satunya pekerjaan yang dimiliki oleh saya filter tidak dicentang.
- Tempelkan ID (700809544510906) ke bilah pencarian Pekerjaan filter.
Untuk menemukan buku catatan di UI berdasarkan notebook_id
, gunakan instruksi berikut:
notebook_id
Salin dari catatan penggunaan. Untuk contoh ini, asumsikan ID adalah700809544510906
.- Navigasi ke UI Ruang Kerja di ruang kerja Azure Databricks yang sama dengan buku catatan.
- Klik buku catatan apa pun dalam daftar.
- 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>
- 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
- 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
- Mengidentifikasi pekerjaan komputasi tanpa server yang mahal
- Laporan tentang DBA yang digunakan oleh pengguna tertentu
- Melaporkan DBA komputasi tanpa server yang digunakan oleh beban kerja yang berbagi tag kustom
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