Monitorování nákladů na výpočetní prostředky bez serveru
Tento článek vysvětluje, jak použít fakturovatelnou systémovou tabulku k monitorování nákladů 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
.Sloupec
custom_tags
, který bude obsahovat všechny značky zděděné ze zásad rozpočtu. Viz Bezserverové využití s rozpočtovými zásadami.
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,
usage_metadata. notebook_path,
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,2
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,
usage_metadata.job_name,
SUM(usage_quantity) as total_dbu
FROM
system.billing.usage
WHERE
usage_metadata.job_id is not null
and usage_unit = 'DBU'
and usage_date >= DATEADD(day, -30, current_date)
and sku_name like '%JOBS_SERVERLESS_COMPUTE%'
GROUP BY
1,2
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.job_name,
usage_metadata.notebook_id,
usage_metadata. notebook_path,
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,3,4
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.job_name,
usage_metadata.notebook_id,
usage_metadata. notebook_path,
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,3,4
ORDER BY
total_dbu DESC