Partilhar via


Monitore 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 de computação sem servidor.

Você pode monitorar o uso da computação sem servidor para blocos de anotações e trabalhos 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 identity_metadata coluna inclui o run_as campo, que mostra o usuário ou entidade de serviço cujas credenciais foram usadas para executar a carga de trabalho.
  • A usage_metadata coluna tem campos que descrevem a carga de trabalho: job_run_id, job_name, notebook_ide notebook_path.

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, job_run_idou job_name', mas com valores de consumo de DBU diferentes para cada um. A soma dessas DBUs representa coletivamente o consumo de DBU por hora para uma determinada execução de trabalho.

Nota

Para obter uma atualização sobre atribuição de carga de trabalho nula, consulte O que está por vir?.

Use orçamentos para monitorar gastos

Os administradores de conta podem configurar orçamentos para agrupar custos e configurar alertas. Consulte Usar orçamentos para monitorar os gastos da conta.

Importar um painel de uso

Os administradores de conta podem importar painéis de gerenciamento de custos para qualquer espaço de trabalho habilitado para Catálogo Unity em sua conta. Consulte Importar um painel de uso.

Encontre um trabalho ou bloco de anotações na interface do usuário

Para localizar um trabalho ou bloco de anotações na interface do usuário com base em um registro de cobrança, copie o usage_metadata.job_id ou usage_metadata.notebook_id valor do registro de uso. Essas IDs são imutáveis e podem ser usadas mesmo se o nome do trabalho ou o caminho do bloco de anotações for alterado.

Para encontrar um trabalho na interface do usuário com base em job_id:

  1. Copie o job_id do registro de uso. Para este exemplo, suponha que o ID seja 700809544510906.
  2. Navegue até a interface do usuário Fluxos de Trabalho no mesmo espaço de trabalho do Azure Databricks que o trabalho.
  3. Verifique se o filtro Somente trabalhos pertencentes a mim está desmarcado.
  4. Cole o ID (700809544510906) na barra de pesquisa Filtrar trabalhos.

Para localizar um bloco de anotações na interface do usuário com base em seu notebook_id, use as seguintes instruções:

  1. Copie o notebook_id do registro de uso. Para este exemplo, suponha que o ID seja 700809544510906.
  2. Navegue até a interface do usuário do Workspaces no mesmo espaço de trabalho do Azure Databricks que o bloco de anotações.
  3. Clique em qualquer bloco de anotações na lista.
  4. Depois de abrir o bloco de anotações, examine o URL na barra de endereço do navegador. Deve parecer com https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>.
  5. Na barra de endereço do navegador, substitua o ID do bloco de anotações pelo ID copiado na primeira etapa e exclua tudo após o ID do bloco de anotações. Deve parecer com https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906.
  6. Depois de abrir o bloco de notas, pode clicar no botão Partilhar para ver o proprietário do bloco de notas.

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 forem atendidas nos resultados da consulta. Para saber como criar alertas, consulte Criar um alerta.

Você pode adicionar alertas às consultas a seguir para monitorar orçamentos. Em cada consulta, substitua {budget} pelo orçamento escolhido.

Alertar quando qualquer gasto no espaço de trabalho exceder um limite nos últimos 30 dias

Você pode definir um alerta para ser acionado sempre que essa 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}

Alertar quando um usuário exceder o limite nos últimos 30 dias

Você pode definir um alerta para ser acionado sempre que essa 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}

Alertar quando um trabalho exceder o limite nos últimos 30 dias

Você pode definir um alerta para ser acionado sempre que essa 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 amostra

Use as seguintes consultas para obter informações sobre o uso sem servidor em sua conta:

Identifique blocos de anotações de computação sem servidor caros

Esta consulta retorna uma lista de blocos de anotações e quantas DBUs cada bloco de anotações consumiu, em ordem decrescente por 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

Identifique trabalhos de computação caros sem servidor

Esta consulta retorna uma lista de trabalhos e quantos DBUs cada trabalho consumiu, em ordem decrescente por 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 consumidos por um usuário específico

Esta consulta retorna uma lista de blocos de anotações e trabalhos que usam computação sem servidor executada por um usuário ou entidade de serviço específica e o número de DBUs consumidos 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 consumidos por cargas de trabalho que compartilham uma tag personalizada

Essa consulta retorna uma lista de trabalhos que usam computação sem servidor que compartilham a mesma marca personalizada e o número de DBUs consumidos 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