Monitorování nákladů na výpočetní prostředky bez serveru

Tento článek vysvětluje, jak pomocí fakturovatelné systémové tabulky využití (Public Preview) monitorovat náklady na využití bezserverového výpočetního prostředí.

Využití bezserverového výpočetního výkonu pro poznámkové bloky a úlohy můžete monitorovat dotazem na fakturovatelnou systémovou tabulku (system.billing.usage), která zahrnuje atributy uživatelů a úloh souvisejících s bezserverovými náklady na výpočetní prostředky. Mezi příslušná pole patří:

  • Sloupec identity_metadata obsahuje run_as pole, které zobrazuje uživatele nebo instanční objekt, jehož přihlašovací údaje se použily ke spuštění úlohy.
  • Sloupec usage_metadata obsahuje pole, která popisují úlohu: job_run_id, job_name, notebook_ida notebook_path.

Důležité informace o bezserverových záznamech o využití

Při analýze využití bez serveru zvažte následující:

  • V dané hodině se může zobrazit několik záznamů přidružených k dané výpočetní úloze bez serveru. Můžete například vidět více záznamů se stejným job_id, job_run_idnebo job_name' ale s různými hodnotami spotřeby DBU pro každou. Součet těchto jednotek DBU souhrnně představuje hodinovou spotřebu DBU pro dané spuštění úlohy.

Poznámka:

Informace o aktualizaci přiřazení úlohy s hodnotou null najdete v tématu Co se chystá?

Monitorování útraty pomocí rozpočtů

Správci účtů můžou nastavit rozpočty pro seskupení nákladů a nastavení upozornění. Viz Použití rozpočtů k monitorování útraty účtu.

Import řídicího panelu využití

Správci účtů můžou importovat řídicí panely správy nákladů do libovolného pracovního prostoru s podporou katalogu Unity ve svém účtu. Viz Import řídicího panelu využití.

Vyhledání úlohy nebo poznámkového bloku v uživatelském rozhraní

Pokud chcete najít úlohu nebo poznámkový blok v uživatelském rozhraní na základě fakturačního záznamu, zkopírujte usage_metadata.job_id hodnotu ze usage_metadata.notebook_id záznamu o využití. Tato ID jsou neměnná a dá se použít i v případě, že se změní název úlohy nebo cesta k poznámkovému bloku.

Vyhledání úlohy v uživatelském rozhraní na základě jeho job_id:

  1. job_id Zkopírujte ze záznamu o využití. V tomto příkladu předpokládejme, že ID je 700809544510906.
  2. Přejděte do uživatelského rozhraní pracovních postupů ve stejném pracovním prostoru Azure Databricks jako úloha.
  3. Ujistěte se, že filtr Pouze úlohy vlastněné mnou není zaškrtnutý.
  4. Vložte ID (700809544510906) do panelu hledání úloh filtru.

Poznámkový blok najdete v uživatelském rozhraní podle jeho notebook_idpokynů:

  1. notebook_id Zkopírujte ze záznamu o využití. V tomto příkladu předpokládejme, že ID je 700809544510906.
  2. Přejděte do uživatelského rozhraní pracovních prostorů ve stejném pracovním prostoru Azure Databricks jako poznámkový blok.
  3. Klikněte na libovolný poznámkový blok v seznamu.
  4. Po otevření poznámkového bloku zkontrolujte adresu URL na panelu Adresa prohlížeče. Měl by vypadat jako https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>.
  5. V adresní řádku prohlížeče nahraďte ID poznámkového bloku ID, které jste zkopírovali v prvním kroku, a pak odstraňte všechno za ID poznámkového bloku. Měl by vypadat jako https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906.
  6. Po otevření poznámkového bloku můžete kliknutím na tlačítko Sdílet zobrazit vlastníka poznámkového bloku.

Sledování výdajů na bezserverové využití pomocí upozornění

Výstrahy představují účinný způsob, jak zůstat informovaní o bezserverové útratě. S upozorněními můžete dostávat oznámení, když jsou ve výsledcích dotazu splněny určité podmínky. Informace o vytváření upozornění najdete v tématu Vytvoření výstrahy.

Pokud chcete monitorovat rozpočty, můžete do následujících dotazů přidat upozornění. V každém dotazu nahraďte {budget} zvoleným rozpočtem.

Upozornění, když jakýkoli pracovní prostor překročí prahovou hodnotu za posledních 30 dnů

Upozornění můžete nastavit tak, aby se aktivovalo pokaždé, když tento dotaz vrátí řádek. Nahraďte {budget} zvoleným rozpočtem.

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}

Upozornění, když uživatel překročí prahovou hodnotu za posledních 30 dnů

Upozornění můžete nastavit tak, aby se aktivovalo pokaždé, když tento dotaz vrátí řádek. Nahraďte {budget} zvoleným rozpočtem.

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}

Upozornění, když úloha překročí prahovou hodnotu za posledních 30 dnů

Upozornění můžete nastavit tak, aby se aktivovalo pokaždé, když tento dotaz vrátí řádek. Nahraďte {budget} zvoleným rozpočtem.

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}

Vzorové dotazy

Pomocí následujících dotazů můžete získat přehled o využití bez serveru ve vašem účtu:

Identifikace drahých výpočetních poznámkových bloků bez serveru

Tento dotaz vrátí seznam poznámkových bloků a počet jednotek DBU spotřebovaných v sestupném pořadí podle spotřeby 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

Identifikace drahých výpočetních úloh bez serveru

Tento dotaz vrátí seznam úloh a počet jednotek DBU spotřebovaných v sestupném pořadí podle spotřeby 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

Sestava jednotek DBU spotřebovaných konkrétním uživatelem

Tento dotaz vrátí seznam poznámkových bloků a úloh, které používají bezserverové výpočetní prostředí spuštěné konkrétním uživatelem nebo instančním objektem, a počet jednotek DBU spotřebovaných jednotlivými úlohami:

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

Sestava výpočetních jednotek DBU bez serveru spotřebovaných úlohami, které sdílejí vlastní značku

Tento dotaz vrátí seznam úloh, které používají bezserverové výpočetní prostředky, které sdílejí stejnou vlastní značku, a počet jednotek DBU spotřebovaných jednotlivými úlohami:

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