Sunucusuz işlem maliyetini izleme

Bu makalede, sunucusuz işlem kullanımınızın maliyetini izlemek için faturalanabilir kullanım sistemi tablosunun (Genel Önizleme) nasıl kullanılacağı açıklanmaktadır.

Sunucusuz işlem maliyetleriyle ilgili kullanıcı ve iş yükü özniteliklerini içeren faturalanabilir kullanım sistemi tablosunu (system.billing.usage ) sorgulayarak not defterleri ve işler için sunucusuz işlem kullanımını izleyebilirsiniz. Geçerli alanlar şunlardır:

  • identity_metadata sütunu, iş yükünü çalıştırmak için kimlik bilgileri kullanılan kullanıcı veya hizmet sorumlusunu gösteren alanı içerirrun_as.
  • Sütunda usage_metadata iş yükünü açıklayan alanlar vardır: job_run_id, job_name, notebook_idve notebook_path.

Sunucusuz kullanım kayıtları için dikkat edilmesi gerekenler

Sunucusuz kullanımınızı analiz ederken aşağıdakileri göz önünde bulundurun:

  • Belirli bir saatte belirli bir sunucusuz işlem iş yüküyle ilişkili birden çok kayıt görebilirsiniz. Örneğin, aynı job_id, job_run_idveya job_name' ancak her birinin farklı DBU tüketim değerlerine sahip birden çok kayıt görebilirsiniz. Bu DBU'ların toplamı, belirli bir iş çalıştırması için saatlik DBU tüketimini toplu olarak temsil eder.

Not

Null iş yükü ilişkilendirmesi hakkında bir güncelleştirme için bkz . Neler geliyor?.

Harcamaları izlemek için bütçeleri kullanma

Hesap yöneticileri maliyetleri gruplandırmak ve uyarıları ayarlamak için bütçe ayarlayabilir. Bkz. Hesap harcamalarını izlemek için bütçeleri kullanma.

Kullanım panosunu içeri aktarma

Hesap yöneticileri, maliyet yönetimi panolarını hesaplarındaki Unity Kataloğu özellikli herhangi bir çalışma alanına aktarabilir. Bkz. Kullanım panosunu içeri aktarma.

Kullanıcı arabiriminde iş veya not defteri bulma

Kullanıcı arabiriminde faturalama kaydını temel alan bir iş veya not defteri bulmak için veya değerini kullanım kaydından kopyalayın usage_metadata.job_id usage_metadata.notebook_id . Bu kimlikler sabittir ve iş adı veya not defteri yolu değişse bile kullanılabilir.

Kullanıcı arabiriminde iş bulmak için:job_id

  1. job_id kullanım kaydından öğesini kopyalayın. Bu örnekte kimliğin olduğunu 700809544510906varsayalım.
  2. İşle aynı Azure Databricks çalışma alanında İş Akışları kullanıcı arabirimine gidin.
  3. Yalnızca bana ait işler filtresinin işaretinin kaldırıldığından emin olun.
  4. Kimliği (700809544510906) Filtre işleri arama çubuğuna yapıştırın.

Kullanıcı arabiriminde kendi notebook_idtemelinde bir not defteri bulmak için aşağıdaki yönergeleri kullanın:

  1. notebook_id kullanım kaydından öğesini kopyalayın. Bu örnekte kimliğin olduğunu 700809544510906varsayalım.
  2. Not defteriyle aynı Azure Databricks çalışma alanında Çalışma Alanları kullanıcı arabirimine gidin.
  3. Listedeki herhangi bir not defterine tıklayın.
  4. Not defterini açtıktan sonra tarayıcı adres çubuğundaki URL'yi inceleyin. gibi https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>görünmelidir.
  5. Tarayıcı adres çubuğunda not defteri kimliğini ilk adımda kopyaladığınız kimlikle değiştirin, ardından not defteri kimliğinden sonraki her şeyi silin. gibi https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906görünmelidir.
  6. Not defterini açtıktan sonra Paylaş düğmesine tıklayarak not defteri sahibini görüntüleyebilirsiniz.

Sunucusuz harcamaları izlemek için uyarıları kullanma

Uyarılar, sunucusuz harcamalarınız hakkında bilgi sahibi olmak için güçlü bir yoldur. Uyarılarla, sorgu sonuçlarınızda belirli koşullar karşılandığında bildirim alabilirsiniz. Uyarı oluşturmayı öğrenmek için bkz . Uyarı oluşturma.

Bütçeleri izlemek için aşağıdaki sorgulara uyarılar ekleyebilirsiniz. Her sorguda değerini seçtiğiniz bütçeyle değiştirin {budget} .

Son 30 gün içinde herhangi bir çalışma alanı harcaması eşiği aştığında uyarı verme

Bu sorgu bir satır döndürdüğünde tetikleme için bir uyarı ayarlayabilirsiniz. değerini seçtiğiniz bütçeyle değiştirin {budget} .

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", "INTERACTIVE")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.workspace_id
HAVING
   list_cost > {budget}

Kullanıcı son 30 gün içinde eşiği aştığında uyarır

Bu sorgu bir satır döndürdüğünde tetikleme için bir uyarı ayarlayabilirsiniz. değerini seçtiğiniz bütçeyle değiştirin {budget} .

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", "INTERACTIVE")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.identity_metadata.run_as
HAVING
   list_cost > {budget}

Bir iş son 30 gün içinde eşiği aştığında uyarır

Bu sorgu bir satır döndürdüğünde tetikleme için bir uyarı ayarlayabilirsiniz. değerini seçtiğiniz bütçeyle değiştirin {budget} .

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}

Örnek sorgular

Hesabınızda sunucusuz kullanım hakkında içgörüler elde etmek için aşağıdaki sorguları kullanın:

Pahalı sunucusuz işlem not defterlerini tanımlama

Bu sorgu, DBU tüketimine göre azalan sırada not defterlerinin listesini ve her not defterinin tüketilen DBU sayısını döndürür:

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

Pahalı sunucusuz işlem işlerini tanımlama

Bu sorgu, DBU tüketimine göre azalan sırada işlerin ve her işin tüketilen DBU sayısını içeren bir liste döndürür:

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

Belirli bir kullanıcı tarafından kullanılan DSU'lar hakkında rapor

Bu sorgu, belirli bir kullanıcı veya hizmet sorumlusu tarafından çalıştırılan sunucusuz işlem kullanan not defterlerinin ve işlerin listesini ve her iş yükü tarafından kullanılan DBU sayısını döndürür:

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

Özel etiketi paylaşan iş yükleri tarafından kullanılan sunucusuz işlem DBU'ları hakkında rapor oluşturma

Bu sorgu, aynı özel etiketi paylaşan sunucusuz işlem kullanan işlerin listesini ve her iş yükü tarafından kullanılan DBU sayısını döndürür:

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