Monitorar o custo da computação sem servidor
Este artigo explica como usar a tabela do sistema de uso faturável (Visualização Pública) para monitorar o custo do uso da computação sem servidor.
Você pode monitorar o uso da computação sem servidor para notebooks e fluxos de trabalho 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 de computação sem servidor. 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
enotebook_id
.
Considerações para registros de uso sem servidor
Ao analisar o uso sem servidor, considere o seguinte:
- Você pode ver vários registros associados a uma determinada carga de trabalho de computação sem servidor em uma determinada hora. Por exemplo, você pode ver vários registros com o mesmo
job_id
ejob_run_id
, porém 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. - Você também pode ver registros com o consumo de DBU cobrado usando um SKU sem servidor, mas com valores nulos para
run_as
,job_id
,job_run_id
enotebook_id
. Elas representam custos associados a recursos compartilhados que não são diretamente atribuíveis a nenhuma carga de trabalho específica. À medida que você aumenta o uso da computação sem servidor e adiciona mais cargas de trabalho, a proporção desses custos compartilhados em sua conta diminuirá à medida que eles forem compartilhados em mais cargas de trabalho.
Observação
Para obter uma atualização sobre a atribuição de carga de trabalho nula, consulte O que está por vir?.
Painel de observabilidade de custos
Para ajudar você a começar a monitorar os custos sem servidor, baixe o painel de observabilidade de custos a seguir do Github. Confira o Painel de observabilidade de custo sem servidor.
Depois de baixar o arquivo JSON, importe o painel para o workspace. Para obter instruções sobre como importar painéis, confira Importar um arquivo de painel.
Use alertas para rastrear gastos sem servidor
Os alertas são uma maneira poderosa de se manter informado sobre seus gastos sem servidor. Com os alertas, você pode receber notificações quando determinadas condições são atendidas nos resultados da consulta. Para saber como criar alertas, confira 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 gasto de workspace excede um limite nos últimos 30 dias
Você pode definir um alerta a ser disparado 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", "NOTEBOOKS")
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 a ser disparado 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", "NOTEBOOKS")
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 a ser disparado 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}
Consultas de exemplo
Use as seguintes consultas para obter informações sobre o uso sem servidor em sua conta:
- Identificar blocos de anotações de computação caros sem servidor
- Identificar trabalhos de computação caros sem servidor
- Relatório sobre DBUs consumidos por um usuário específico
- Relatório sobre DBUs de computação sem servidor consumidos por cargas de trabalho que compartilham uma marca personalizada
Identificar notebooks de computação sem servidor de alto custo
Esta consulta retorna uma lista de notebooks e quantas DBUs cada notebook consumiu, em ordem decrescente de consumo de 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
Identificar trabalhos de computação sem servidor de alto custo
Esta consulta retorna uma lista de trabalhos e quantas DBUs cada trabalho consumiu, em ordem decrescente de consumo de 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
Relatório sobre DBUs consumidas por um usuário específico
Esta consulta retorna uma lista de notebooks e trabalhos que usam a computação sem servidor 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.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
Relatório sobre DBUs de computação sem servidor consumidas por cargas de trabalho que compartilham uma marca personalizada
Esta consulta retorna uma lista de trabalhos que usam computação sem servidor que compartilham a mesma marca personalizada e o número de DBUs consumidas por cada carga de trabalho:
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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de