Dela via


Ö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ältet run_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_idoch notebook_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_ideller "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:

  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 list.
  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 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

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