Delen via


De kosten van serverloze compute bewaken

In dit artikel wordt uitgelegd hoe u de factureerbare gebruikssysteemtabel (openbare preview) gebruikt om de kosten van uw serverloze rekengebruik te bewaken.

U kunt het gebruik van serverloze berekeningen voor notebooks en taken bewaken door een query uit te voeren op de factureerbare gebruikssysteemtabel (system.billing.usage), die gebruikers- en workloadkenmerken bevat die betrekking hebben op serverloze rekenkosten. De toepasselijke velden zijn onder andere:

  • De identity_metadata kolom bevat het run_as veld, waarin de gebruiker of service-principal wordt weergegeven waarvan de referenties zijn gebruikt om de workload uit te voeren.
  • De usage_metadata kolom bevat velden die de workload beschrijven: job_run_id, job_name, notebook_iden notebook_path.

Overwegingen voor serverloze gebruiksrecords

Houd rekening met het volgende bij het analyseren van uw serverloze gebruik:

  • Mogelijk ziet u in een bepaald uur meerdere records die zijn gekoppeld aan een bepaalde serverloze rekenworkload. U ziet bijvoorbeeld meerdere records met hetzelfde job_id, job_run_idof job_name' maar met verschillende DBU-verbruikswaarden voor elke record. De som van deze DBU's vertegenwoordigt gezamenlijk het uurlijk DBU-verbruik voor een bepaalde taakuitvoering.

Notitie

Zie Wat is er aan de hand voor een update over de toewijzing van null-werkbelastingen.

Dashboard kostenobserveerbaarheid

Download het volgende dashboard voor waarneembaarheid van kosten vanuit Github om aan de slag te gaan met het bewaken van uw serverloze kosten. Zie het dashboard serverloze kostenobserveerbaarheid.

Dashboard voor waarneembaarheid van serverloze facturering

Nadat u het JSON-bestand hebt gedownload, importeert u het dashboard in uw werkruimte. Zie Een dashboardbestand importeren voor instructies over het importeren van dashboards.

Een taak of notitieblok zoeken in de gebruikersinterface

Als u een taak of notitieblok in de gebruikersinterface wilt zoeken op basis van een factureringsrecord, kopieert u de usage_metadata.job_id of usage_metadata.notebook_id waarde uit de gebruiksrecord. Deze id's zijn onveranderbaar en kunnen zelfs worden gebruikt als de taaknaam of het notebookpad verandert.

Een taak zoeken in de gebruikersinterface op basis van het volgende job_id:

  1. Kopieer de job_id uit de gebruiksrecord. In dit voorbeeld wordt ervan uitgegaan dat de id is 700809544510906.
  2. Navigeer naar de gebruikersinterface voor werkstromen in dezelfde Azure Databricks-werkruimte als de taak.
  3. Zorg ervoor dat het filter Alleen taken die eigendom zijn van mij , is uitgeschakeld.
  4. Plak de id (700809544510906) in de zoekbalk filtertaken .

Als u een notebook in de gebruikersinterface wilt vinden op notebook_idbasis van de gebruikersinterface, gebruikt u de volgende instructies:

  1. Kopieer de notebook_id uit de gebruiksrecord. In dit voorbeeld wordt ervan uitgegaan dat de id is 700809544510906.
  2. Navigeer naar de gebruikersinterface van werkruimten in dezelfde Azure Databricks-werkruimte als het notebook.
  3. Klik op een notitieblok in de lijst.
  4. Nadat u het notitieblok hebt geopend, bekijkt u de URL in de adresbalk van de browser. Het moet er als https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>volgt uitzien.
  5. Vervang in de adresbalk van de browser de notitieblok-id door de id die u in de eerste stap hebt gekopieerd en verwijder vervolgens alles na de notitieblok-id. Het moet er als https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906volgt uitzien.
  6. Nadat u het notitieblok hebt geopend, kunt u op de knop Delen klikken om de eigenaar van het notitieblok weer te geven.

Waarschuwingen gebruiken om serverloze uitgaven bij te houden

Waarschuwingen zijn een krachtige manier om op de hoogte te blijven van uw serverloze uitgaven. Met waarschuwingen kunt u meldingen ontvangen wanneer aan bepaalde voorwaarden wordt voldaan in de queryresultaten. Zie Een waarschuwing maken voor meer informatie over het maken van waarschuwingen.

U kunt waarschuwingen toevoegen aan de volgende query's om budgetten te bewaken. Vervang in elke query door {budget} het gekozen budget.

Waarschuwing wanneer een werkruimte een drempelwaarde overschrijdt in de afgelopen 30 dagen

U kunt een waarschuwing instellen om te activeren wanneer deze query een rij retourneert. Vervang door {budget} uw gekozen 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", "NOTEBOOKS")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.workspace_id
HAVING
   list_cost > {budget}

Waarschuwing wanneer een gebruiker de drempelwaarde in de afgelopen 30 dagen overschrijdt

U kunt een waarschuwing instellen om te activeren wanneer deze query een rij retourneert. Vervang door {budget} uw gekozen 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", "NOTEBOOKS")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.identity_metadata.run_as
HAVING
   list_cost > {budget}

Waarschuwing wanneer een taak de drempelwaarde in de afgelopen 30 dagen overschrijdt

U kunt een waarschuwing instellen om te activeren wanneer deze query een rij retourneert. Vervang door {budget} uw gekozen 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}

Voorbeeldquery's

Gebruik de volgende query's om inzicht te krijgen in serverloos gebruik in uw account:

Dure serverloze rekennotebooks identificeren

Deze query retourneert een lijst met notebooks en hoeveel DBU's elk notebook heeft verbruikt, in aflopende volgorde per DBU-verbruik:

SELECT
  usage_metadata.notebook_id,
  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
ORDER BY
  total_dbu DESC

Dure serverloze rekentaken identificeren

Deze query retourneert een lijst met taken en hoeveel DBU's elke taak heeft verbruikt, in aflopende volgorde per DBU-verbruik:

SELECT
  usage_metadata.job_id,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  usage_metadata.job_id is not null
  and billing_origin_product = 'JOBS'
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1
ORDER BY
  total_dbu DESC

Rapporteren over DBU's die door een bepaalde gebruiker worden gebruikt

Deze query retourneert een lijst met notebooks en taken die gebruikmaken van serverloze berekeningen die worden uitgevoerd door een bepaalde gebruiker of service-principal, en het aantal DBU's dat door elke workload wordt verbruikt:

SELECT
  usage_metadata.job_id,
  usage_metadata.notebook_id,
  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
ORDER BY
  total_dbu DESC

Rapporteren over serverloze reken-DBU's die worden gebruikt door workloads die een aangepaste tag delen

Deze query retourneert een lijst met taken die gebruikmaken van serverloze berekeningen die dezelfde aangepaste tag delen en het aantal DBU's dat door elke workload wordt gebruikt:

SELECT
  usage_metadata.job_id,
  usage_metadata.notebook_id,
  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
ORDER BY
  total_dbu DESC