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.

Ytterligare funktioner faktureras som serverlösa

Det finns flera Azure Databricks-funktioner som använder serverlös beräkning i bakgrunden men som inte kräver att ditt konto har aktiverats för serverlös beräkning för notebooks, arbetsflöden och Lakeflow Declarative Pipelines.

Följande funktioner faktureras under SKU:n för serverlösa jobb:

  • Lakehouse-övervakning: Loggas i faktureringstabellen med värdet billing_origin_productLAKEHOUSE_MONITORING.
  • Prognosoptimering: Loggad i fakturatabellen med värdet billing_origin_productPREDICTIVE_OPTIMIZATION.
  • Materialiserade vyer i Databricks SQL: När du skapar en materialiserad vy i ett SQL-lager skapas en serverlös pipeline för att bearbeta uppdateringar. Du kan visa faktureringsposter för materialiserad vy genom att fråga efter poster där billing_origin_product = 'SQL' och usage_metadata.dlt_pipeline_id IS NOT NULL.
  • Detaljerad åtkomstkontroll för dedikerad beräkning: Identifierbar genom att ha värdet billing_origin_productFINE_GRAINED_ACCESS_CONTROL.
  • Rena rum: Det specifika rena rummet som är relaterat till användningen loggas under usage_metadata.central_clean_room_id.

Ö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 den timvisa DBU-förbrukningen för en given jobbkörning.

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

För att hitta ett jobb eller en anteckningsbok i användargränssnittet baserat på en faktureringspost, kopiera värdet från usage_metadata.job_id eller usage_metadata.notebook_id i 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. Kopiera job_id från användningsposten. Anta i det här exemplet att ID:t är 700809544510906.
  2. Gå till användargränssnittet för Jobb och Pipelines i samma Azure Databricks-arbetsyta som jobbet.
  3. Välj filtret Tillgänglig av mig .
  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. Kopiera notebook_id från användningsposten. Anta i det här exemplet att ID:t är 700809544510906.
  2. Gå till Workspaces-UI på samma Azure Databricks-arbetsyta som notebok.
  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 {budget} med din valda budget i varje fråga.

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:

Sortera serverlösa notebook-filer baserat på totala utgifter

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

Sortera serverlösa jobb baserat på totala utgifter

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 kring serverlösa beräknings-DBU:er som används av arbetsflöden som delar en anpassad etikett

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