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
obsahujerun_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_id
anotebook_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_id
nebo 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
:
job_id
Zkopírujte ze záznamu o využití. V tomto příkladu předpokládejme, že ID je700809544510906
.- Přejděte do uživatelského rozhraní pracovních postupů ve stejném pracovním prostoru Azure Databricks jako úloha.
- Ujistěte se, že filtr Pouze úlohy vlastněné mnou není zaškrtnutý.
- Vložte ID (700809544510906) do panelu hledání úloh filtru.
Poznámkový blok najdete v uživatelském rozhraní podle jeho notebook_id
pokynů:
notebook_id
Zkopírujte ze záznamu o využití. V tomto příkladu předpokládejme, že ID je700809544510906
.- Přejděte do uživatelského rozhraní pracovních prostorů ve stejném pracovním prostoru Azure Databricks jako poznámkový blok.
- Klikněte na libovolný poznámkový blok v seznamu.
- 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>
. - 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
. - 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
- Identifikace drahých výpočetních úloh bez serveru
- Sestava jednotek DBU spotřebovaných konkrétním uživatelem
- Sestava výpočetních jednotek DBU bez serveru spotřebovaných úlohami, které sdílejí vlastní značku
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