Partilhar via


Monitore o custo da computação sem servidor

Este artigo explica como usar a tabela do sistema de uso faturável para monitorar o custo do uso de computação sem servidor.

Você pode monitorizar o uso da computação sem servidor para cadernos e trabalhos consultando a tabela do sistema de uso passível de cobrança (system.billing.usage), que inclui atributos de utilizador e tarefas relacionados aos custos de computação sem servidor. Os campos aplicáveis incluem:

  • A coluna identity_metadata inclui o campo run_as, que mostra o usuário ou 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_ide notebook_path.

Observação

Devido à nossa arquitetura distribuída, pode ver múltiplos registos associados a uma dada carga de computação serverless num determinado período de tempo. Por exemplo, pode ver vários registos com o mesmo job_id, job_run_id, ou job_name com valores de consumo DBU diferentes para cada um. A soma destes DBUs representa o consumo horário de DBUs para uma determinada execução de tarefas nesse intervalo de tempo.

Funcionalidades adicionais cobradas como sem servidor

Há vários recursos do Azure Databricks que aproveitam a computação sem servidor em segundo plano, mas não exigem que sua conta seja habilitada para computação sem servidor para notebooks, fluxos de trabalho e pipelines declarativos do Lakeflow Spark.

Os seguintes recursos são cobrados sob a SKU de trabalhos sem servidor:

  • Salas limpas: A sala limpa específica relacionada ao uso é registrada em usage_metadata.central_clean_room_id.

Use orçamentos para monitorar gastos

Os administradores de conta podem configurar 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 espaço de trabalho habilitado para Catálogo Unity em sua conta. Consulte Importar um painel de utilização.

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

Para localizar uma tarefa ou bloco de anotações na interface do utilizador com base num registo de faturação, copie o valor do usage_metadata.job_id ou usage_metadata.notebook_id do registo 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 registo de utilização. Para este exemplo, suponha que o ID seja 700809544510906.
  2. Navegue até a interface do usuário Jobs & Pipelines no mesmo espaço de trabalho do Azure Databricks que o trabalho.
  3. Selecione o filtro Acessível por mim .
  4. Cole o ID (700809544510906) na barra de pesquisa Filtrar trabalhos .

Para localizar um bloco de anotações na IU com base em seu notebook_id, siga os seguintes passos:

  1. Copie o notebook_id do registo de utilização. Para este exemplo, suponha que o ID seja 700809544510906.
  2. Navegue até a interface Áreas de Trabalho no mesmo espaço de trabalho do Azure Databricks que o notebook.
  3. Clique em qualquer caderno 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 caderno pelo ID que copiou na primeira etapa e remova tudo o que estiver a seguir ao ID do caderno. 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}

Exemplos de consultas

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

Classificar blocos de anotações sem servidor com base no gasto total

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,
  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

Classificar trabalhos sem servidor com base no gasto total

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,
  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

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.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 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.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