Övervaka kostnaden för serverlös beräkning
Den här artikeln beskriver hur du använder det fakturerbara användningssystemet table för att övervaka kostnaden för din serverlösa beräkningsanvändning.
Du kan övervaka användningen av serverlös databehandling för notebooks och jobb genom att fråga systemet för fakturerbar användning table (system.billing.usage
), som innehåller användar- och arbetsbelastningsattribut relaterade till kostnaderna för serverlös databehandling. De tillämpliga fälten omfattar:
identity_metadata
column innehåller fältetrun_as
, som visar användaren eller tjänstens huvudnamn vars credentials användes för att köra arbetsbelastningen.usage_metadata
column innehåller fält som beskriver arbetsbelastningen:job_run_id
,job_name
,notebook_id
ochnotebook_path
.custom_tags
column, som kommer att inkludera alla taggar som ärvs från budgetprinciper. 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
eller "job_name", men med olika DBU-förbrukning values 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 update om null-arbetsbelastningsatribution finns i Vad kommer?.
Använda budgetar för att övervaka utgifter
Kontoadministratörer kan set upp budgetar för att gruppera kostnader och set upp aviseringar. Se Använda budgetar för att övervaka kontoutgifter.
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 list.
- 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 set en avisering som ska utlösas nä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 set en avisering som ska utlösas nä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 set en avisering som utlöses när sökfrå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 frågan returnerar en list av notebook-filer och hur många DBU:er varje notebook-fil förbrukade, i fallande ordning efter DBU-förbrukning.
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 list med jobb och hur många DPU: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 list av notebook-filer och jobb som använder serverlös beräkning och 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 list med 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