Dela via


Ö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ältet run_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_idoch notebook_path.

Ö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_ideller job_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:

  1. job_id Kopiera från användningsposten. Anta i det här exemplet att ID:t är 700809544510906.
  2. Gå till arbetsflödesgränssnittet på samma Azure Databricks-arbetsyta som jobbet.
  3. Kontrollera att filtret Endast jobb som ägs av mig är avmarkerat.
  4. 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_idanvänder du följande instruktioner:

  1. notebook_id Kopiera från användningsposten. Anta i det här exemplet att ID:t är 700809544510906.
  2. Gå till arbetsytegränssnittet på samma Azure Databricks-arbetsyta som notebook-filen.
  3. Klicka på valfri anteckningsbok i listan.
  4. 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>.
  5. 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.
  6. 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

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