Monitorowanie kosztów obliczeń bezserwerowych
W tym artykule wyjaśniono, jak używać rozliczanej tabeli systemu użycia (publiczna wersja zapoznawcza) do monitorowania kosztów użycia zasobów obliczeniowych bezserwerowych.
Możesz monitorować użycie bezserwerowych zasobów obliczeniowych dla notesów i zadań, wysyłając zapytanie do tabeli systemu użycia rozliczanego (system.billing.usage
), która obejmuje atrybuty użytkownika i obciążenia związane z kosztami obliczeń bezserwerowych. Odpowiednie pola obejmują:
- Kolumna
identity_metadata
zawierarun_as
pole, które pokazuje użytkownika lub jednostkę usługi, którego poświadczenia zostały użyte do uruchomienia obciążenia. - Kolumna
usage_metadata
zawiera pola opisujące obciążenie:job_run_id
, ,job_name
notebook_id
inotebook_path
.
Zagadnienia dotyczące rekordów użycia bezserwerowego
Podczas analizowania użycia bezserwerowego należy wziąć pod uwagę następujące kwestie:
- W danej godzinie może zostać wyświetlonych wiele rekordów skojarzonych z danym bezserwerowym obciążeniem obliczeniowym. Na przykład może być wyświetlanych wiele rekordów z tymi samymi
job_id
rekordami ,job_run_id
lub job_name, ale z różnymi wartościami użycia jednostek DBU dla każdego z nich. Suma tych jednostek DBU łącznie reprezentuje godzinowe użycie jednostek DBU dla danego uruchomienia zadania.
Uwaga
Aby uzyskać aktualizację przy przypisywaniu obciążenia o wartości null, zobacz Co się dzieje?
Monitorowanie wydatków przy użyciu budżetów
Administratorzy kont mogą konfigurować budżety w celu grupowania kosztów i konfigurowania alertów. Zobacz Monitorowanie wydatków na koncie przy użyciu budżetów.
Importowanie pulpitu nawigacyjnego użycia
Administratorzy konta mogą importować pulpity nawigacyjne zarządzania kosztami do dowolnego obszaru roboczego obsługującego wykaz aparatu Unity na swoim koncie. Zobacz Importowanie pulpitu nawigacyjnego użycia.
Znajdowanie zadania lub notesu w interfejsie użytkownika
Aby znaleźć zadanie lub notes w interfejsie użytkownika na podstawie rekordu rozliczeniowego, skopiuj usage_metadata.job_id
wartość lub usage_metadata.notebook_id
z rekordu użycia. Te identyfikatory są niezmienne i mogą być używane nawet w przypadku zmiany nazwy zadania lub ścieżki notesu.
Aby znaleźć zadanie w interfejsie użytkownika na podstawie jego job_id
elementu :
- Skopiuj wartość
job_id
z rekordu użycia. W tym przykładzie załóżmy, że identyfikator to700809544510906
. - Przejdź do interfejsu użytkownika przepływów pracy w tym samym obszarze roboczym usługi Azure Databricks co zadanie.
- Upewnij się, że filtr Tylko zadania należące do mnie nie jest zaznaczony.
- Wklej identyfikator (700809544510906) na pasku wyszukiwania Filtr zadań.
Aby znaleźć notes w interfejsie użytkownika na podstawie interfejsu notebook_id
użytkownika, wykonaj następujące instrukcje:
- Skopiuj wartość
notebook_id
z rekordu użycia. W tym przykładzie załóżmy, że identyfikator to700809544510906
. - Przejdź do interfejsu użytkownika obszarów roboczych w tym samym obszarze roboczym usługi Azure Databricks co notes.
- Kliknij dowolny notes na liście.
- Po otwarciu notesu sprawdź adres URL na pasku adresu przeglądarki. Powinien wyglądać następująco:
https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>
. - Na pasku adresu przeglądarki zastąp identyfikator notesu identyfikatorem skopiowanymi w pierwszym kroku, a następnie usuń wszystko po identyfikatorze notesu. Powinien wyglądać następująco:
https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906
. - Po otwarciu notesu możesz kliknąć przycisk Udostępnij , aby wyświetlić właściciela notesu.
Śledzenie wydatków bezserwerowych za pomocą alertów
Alerty to zaawansowany sposób na informowanie o wydatkach bezserwerowych. Dzięki alertom możesz otrzymywać powiadomienia o spełnieniu określonych warunków w wynikach zapytania. Aby dowiedzieć się, jak tworzyć alerty, zobacz Tworzenie alertu.
Możesz dodać alerty do następujących zapytań, aby monitorować budżety. W każdym zapytaniu zastąp {budget}
element wybranym budżetem.
Alert, gdy wydatki na obszar roboczy przekraczają próg w ciągu ostatnich 30 dni
Alert można ustawić tak, aby był wyzwalany za każdym razem, gdy to zapytanie zwróci wiersz. Zastąp {budget}
element wybranym budżetem.
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}
Alert, gdy użytkownik przekroczy próg w ciągu ostatnich 30 dni
Alert można ustawić tak, aby był wyzwalany za każdym razem, gdy to zapytanie zwróci wiersz. Zastąp {budget}
element wybranym budżetem.
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}
Alert, gdy zadanie przekroczy próg w ciągu ostatnich 30 dni
Alert można ustawić tak, aby był wyzwalany za każdym razem, gdy to zapytanie zwróci wiersz. Zastąp {budget}
element wybranym budżetem.
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}
Przykładowe zapytania
Użyj następujących zapytań, aby uzyskać wgląd w użycie bezserwerowe na koncie:
- Identyfikowanie drogich notesów obliczeniowych bezserwerowych
- Identyfikowanie kosztownych zadań obliczeniowych bezserwerowych
- Raport dotyczący jednostek DBU używanych przez określonego użytkownika
- Raport dotyczący bezserwerowych jednostek DBU używanych przez obciążenia współużytkujące tag niestandardowy
Identyfikowanie drogich notesów obliczeniowych bezserwerowych
To zapytanie zwraca listę notesów i liczbę jednostek DBU używanych przez każdy notes w kolejności malejącej według użycia jednostek DBU:
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
Identyfikowanie kosztownych zadań obliczeniowych bezserwerowych
To zapytanie zwraca listę zadań i liczbę jednostek DBU używanych przez każde zadanie w kolejności malejącej według użycia jednostek DBU:
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
Raport dotyczący jednostek DBU używanych przez określonego użytkownika
To zapytanie zwraca listę notesów i zadań, które używają bezserwerowych obliczeń uruchamianych przez określonego użytkownika lub jednostkę usługi, oraz liczbę jednostek DBU używanych przez każde obciążenie:
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
Raport dotyczący bezserwerowych jednostek DBU używanych przez obciążenia współużytkujące tag niestandardowy
To zapytanie zwraca listę zadań, które używają bezserwerowych obliczeń współużytkujących ten sam tag niestandardowy, oraz liczbę jednostek DBU używanych przez każde obciążenie:
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