Monitorar o custo de serverless compute
Este artigo explica como usar a tabela do sistema de uso faturável para monitorar o custo de seu uso do serverless compute .
É possível monitorar o uso do serverless compute para Notebook e Job consultando a tabela do sistema de uso faturável (system.billing.usage
), que inclui atributos de usuário e carga de trabalho relacionados aos custos do serverless compute . Os campos aplicáveis incluem:
-
A coluna
identity_metadata
inclui o camporun_as
, que mostra o usuário ou a entidade de serviço cujas credenciais foram usadas para executar a carga de trabalho. -
A coluna
usage_metadata
tem campos que descrevem a carga de trabalho:job_run_id
,job_name
,notebook_id
enotebook_path
. -
A coluna
custom_tags
, que incluirá todas as tags herdadas das políticas orçamentárias do site serverless. Consulte Uso de atributos com as políticas de orçamento do serverless.
Considerações sobre serverless registros de uso
Ao analisar seu uso serverless, considere o seguinte:
- O senhor pode ver vários registros associados a uma determinada carga de trabalho do serverless compute em uma determinada hora. Por exemplo, o senhor pode ver vários registros com o mesmo
job_id
,job_run_id
oujob_name
, mas com valores de consumo de DBU diferentes para cada um. A soma dessas DBUs representa coletivamente o consumo horário de DBU para uma determinada execução de trabalho.
Use orçamentos para monitorar gastos
Os administradores de contas podem definir orçamentos para agrupar custos e configurar alertas. Consulte Criar e monitorar orçamentos.
Importar um painel de uso
Os administradores de conta podem importar painéis de gerenciamento de custos para qualquer workspace habilitado para o Unity Catalog em seu account. Consulte Importar um painel de uso.
Localizar um trabalho ou notebook na interface do usuário
Para localizar um Job ou Notebook na UI com base em um registro de faturamento, copie o valor usage_metadata.job_id
ou usage_metadata.notebook_id
do registro de uso. Essas IDs são imutáveis e podem ser usadas mesmo que o nome do trabalho ou o caminho do Notebook seja alterado.
Para localizar um trabalho na UI com base em seu site job_id
:
- Copie o
job_id
do registro de uso. Neste exemplo, suponha que o ID seja700809544510906
. - Navegue até a interface do usuário do fluxo de trabalho no mesmo site Databricks workspace que o trabalho.
- Certifique-se de que o filtro Only Job owned by me esteja desmarcado.
- Cole o ID (700809544510906) na barra de pesquisa Filter Job .
Para localizar um Notebook na UI com base em seu endereço notebook_id
, use as instruções a seguir:
- Copie o
notebook_id
do registro de uso. Neste exemplo, suponha que o ID seja700809544510906
. - Navegue até a interface do usuário do espaço de trabalho no mesmo Databricks workspace que o Notebook.
- Clique em qualquer Notebook da lista.
- Depois de abrir o Notebook, examine o URL na barra de endereços do navegador. Deve ter a aparência de
https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>
. - Na barra de endereços do navegador, substitua o ID do Notebook pelo ID que o senhor copiou na primeira etapa e, em seguida, exclua tudo após o ID do Notebook. Deve ter a aparência de
https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906
. - Depois de abrir o Notebook, o senhor pode clicar no botão Share (Compartilhar ) para view o proprietário do Notebook.
Use o alerta para monitorar as despesas em serverless
O alerta é uma maneira poderosa de se manter informado sobre suas despesas no site serverless. Com o alerta, o senhor pode receber notificações quando determinadas condições forem atendidas nos resultados da consulta. Para saber como criar um alerta, consulte Criar um alerta.
Você pode adicionar alertas às consultas a seguir para monitorar os orçamentos. Em cada consulta, substitua {budget}
pelo orçamento escolhido.
alerta quando qualquer despesa do workspace exceder um limite nos últimos 30 dias
Você pode definir um alerta para ser acionado sempre que esta consulta retornar uma linha. Substitua {budget}
pelo orçamento escolhido.
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}
alerta quando um usuário excede o limite nos últimos 30 dias
Você pode definir um alerta para ser acionado sempre que esta consulta retornar uma linha. Substitua {budget}
pelo orçamento escolhido.
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}
alerta quando um trabalho excede o limite nos últimos 30 dias
Você pode definir um alerta para ser acionado sempre que esta consulta retornar uma linha. Substitua {budget}
pelo orçamento escolhido.
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}
Exemplos de consultas
Use as seguintes consultas para obter insights sobre o uso serverless em sua conta:
- Identifique notebooks de compute serverless caros
- Identifique jobs de compute serverless caros
- Relatório sobre DBUs consumidos por um determinado usuário
- Gerar relatórios sobre DBUs de compute serverless consumidos por cargas de trabalho que compartilham uma tag personalizada
Identifique os caros serverless compute Notebook
Essa consulta retorna uma lista de notebooks e quantas DBUs cada notebook consumiu, em ordem decrescente de consumo de DBUs:
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
Identifique os caros serverless compute Job
Essa consulta retorna uma lista de trabalhos e quantas DBUs cada trabalho consumiu, em ordem decrescente por consumo de DBUs:
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
Relatório sobre DBus consumidos por um usuário específico
Essa consulta retorna uma lista de notebooks e trabalhos que usam computação serverless executada por um determinado usuário ou entidade de serviço e o número de DBUs consumidas por cada carga de trabalho:
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
Relatório sobre serverless compute DBUs consumidas por cargas de trabalho que compartilham uma tag personalizada
Essa consulta retorna uma lista de trabalhos que usam computação serverless que compartilham a mesma tag personalizada e o número de DBUs consumidas por cada carga de trabalho:
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