Övervaka kostnaden för serverlös beräkning
Den här artikeln beskriver hur du använder den fakturerbara användningssystemtabellen för att övervaka kostnaden för din serverlösa beräkningsanvändning.
Du kan övervaka användningen av serverlös beräkning för notebook-filer och jobb genom att fråga systemtabellen för fakturerbar användning (system.billing.usage
), som omfattar attribut för användare och arbetsbelastning relaterade till serverlösa beräkningskostnader. De tillämpliga fälten omfattar:
- Kolumnen
identity_metadata
innehåller fältetrun_as
, som visar användaren eller tjänstens huvudnamn vars autentiseringsuppgifter användes för att köra arbetsbelastningen. - Kolumnen
usage_metadata
innehåller fält som beskriver arbetsbelastningen:job_run_id
,job_name
,notebook_id
ochnotebook_path
.
- Kolumnen
custom_tags
, som kommer att inkludera taggar som ärvs från budgetpolicyer. Se Attribut för serverlös användning med budgetprinciper.
Överväganden för serverlösa användningsposter
När du analyserar din serverlösa användning bör du tänka på följande:
- Du kan se flera poster som är associerade med en viss serverlös beräkningsarbetsbelastning under en viss timme. Du kan till exempel se flera poster med samma
job_id
,job_run_id
ellerjob_name
men med olika DBU-förbrukningsvärden för var och en. Summan av dessa DBU:er representerar tillsammans DBU-förbrukningen varje timme för en viss jobbkörning.
Kommentar
En uppdatering om tilldelning av noll arbetsbelastning finns i Vad kommer?.
Använda budgetar för att övervaka utgifter
Kontoadministratörer kan konfigurera budgetar för att gruppera kostnader och konfigurera aviseringar. Se Skapa och övervaka budgetar.
Importera en instrumentpanel för användning
Kontoadministratörer kan importera instrumentpaneler för kostnadshantering till valfri Unity Catalog-aktiverad arbetsyta i sitt konto. Se Importera en instrumentpanel för användning.
Hitta ett jobb eller en anteckningsbok i användargränssnittet
Om du vill hitta ett jobb eller en anteckningsbok i användargränssnittet baserat på en faktureringspost kopierar usage_metadata.job_id
du värdet eller usage_metadata.notebook_id
från användningsposten. Dessa ID:er är oföränderliga och kan användas även om jobbnamnet eller notebook-sökvägen ändras.
Så här hittar du ett jobb i användargränssnittet baserat på dess job_id
:
-
job_id
Kopiera från användningsposten. Anta i det här exemplet att ID:t är700809544510906
. - Gå till arbetsflödesgränssnittet på samma Azure Databricks-arbetsyta som jobbet.
- Kontrollera att filtret Endast jobb som ägs av mig är avmarkerat.
- Klistra in ID :t (700809544510906) i sökfältet Filterjobb.
Om du vill hitta en notebook-fil i användargränssnittet baserat på dess notebook_id
använder du följande instruktioner:
-
notebook_id
Kopiera från användningsposten. Anta i det här exemplet att ID:t är700809544510906
. - Gå till arbetsytegränssnittet på samma Azure Databricks-arbetsyta som notebook-filen.
- Klicka på valfri anteckningsbok i listan.
- När du har öppnat anteckningsboken granskar du URL:en i webbläsarens adressfält. Det bör se ut som
https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>
. - I webbläsarens adressfält ersätter du notebook-ID:t med det ID som du kopierade i det första steget och tar sedan bort allt efter notebook-ID:t. Det bör se ut som
https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906
. - När du har öppnat anteckningsboken kan du klicka på knappen Dela för att visa anteckningsbokens ägare.
Använda aviseringar för att spåra serverlösa utgifter
Aviseringar är ett kraftfullt sätt att hålla dig informerad om dina serverlösa utgifter. Med aviseringar kan du ta emot meddelanden när vissa villkor uppfylls i dina frågeresultat. Information om hur du skapar aviseringar finns i Skapa en avisering.
Du kan lägga till aviseringar i följande frågor för att övervaka budgetar. Ersätt med den valda budgeten i varje fråga {budget}
.
Avisering när en arbetsyta överskrider ett tröskelvärde under de senaste 30 dagarna
Du kan ange att en avisering ska utlösas när den här frågan returnerar en rad. Ersätt {budget}
med din valda 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}
Avisering när en användare överskrider tröskelvärdet under de senaste 30 dagarna
Du kan ange att en avisering ska utlösas när den här frågan returnerar en rad. Ersätt {budget}
med din valda 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}
Avisering när ett jobb överskrider tröskelvärdet under de senaste 30 dagarna
Du kan ange att en avisering ska utlösas när den här frågan returnerar en rad. Ersätt {budget}
med din valda 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}
Exempelfrågor
Använd följande frågor för att få insikter om serverlös användning i ditt konto:
- Identifiera dyra serverlösa beräkningsanteckningsböcker
- Identifiera dyra serverlösa beräkningsjobb
- Rapport om DBU:er som används av en viss användare
- Rapportera om serverlösa beräknings-DBU:er som används av arbetsbelastningar som delar en anpassad tagg
Identifiera dyra serverlösa beräkningsanteckningsböcker
Den här sökfrågan returnerar en lista över notebooks och hur många DBU:er varje notebook har förbrukat, i fallande ordning efter DBU-konsumtion.
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
Identifiera dyra serverlösa beräkningsjobb
Den här frågan returnerar en lista över jobb och hur många DBU:er varje jobb förbrukade, i fallande ordning efter DBU-förbrukning:
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
Rapport om DBU:er som används av en viss användare
Den här frågan returnerar en lista över notebook-filer och jobb som använder serverlös datorkapacitet som körs av en viss användare eller tjänstehuvudkonto, samt antalet DBU:er som förbrukas av varje arbetsbelastning.
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
Rapportera om serverlösa beräknings-DBU:er som används av arbetsbelastningar som delar en anpassad tagg
Den här frågan returnerar en lista över jobb som använder serverlös beräkning som delar samma anpassade tagg och antalet DBU:er som förbrukas av varje arbetsbelastning:
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