Monitorar o custo da computação sem servidor

Este artigo explica como usar a tabela do sistema de uso faturável (Public Preview) para monitorar o custo de seu uso do serverless compute .

É possível monitorar o uso do serverless compute para Notebook e fluxo 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 do serverless compute . Os campos aplicáveis incluem:

  • A coluna identity_metadata inclui o campo run_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 e notebook_id.

Considerações sobre registros de uso sem servidor

Ao analisar o uso do site 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 os mesmos job_id e job_run_id, 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 Job.

  • O senhor também pode ver registros com o consumo DBU faturado usando um serverless SKU, mas com valores nulos para run_as, job_id, job_run_id e notebook_id. Representam custos associados a recursos compartilhados que não são diretamente atribuíveis a nenhuma carga de trabalho específica. À medida que o senhor aumentar o uso do serverless compute e adicionar mais cargas de trabalho, a proporção desses custos compartilhados em sua conta diminuirá, pois eles serão compartilhados entre mais cargas de trabalho.

Painel de observabilidade de custos

Para ajudá-lo a começar a monitorar seus custos serverless, download o seguinte painel de observabilidade de custos do Github. Consulte serverless dashboard de observabilidade de custos.

serverless painel de observabilidade do faturamento

Depois de acessar download o arquivo JSON, importe o dashboard para o seu workspace. Para obter instruções sobre a importação de painéis, consulte Importar um arquivo de painel.

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 alertas, consulte Criar um alerta.

O senhor pode adicionar alerta às seguintes consultas para monitorar os orçamentos. Em cada consulta, substitua {budget} pelo orçamento escolhido.

alerta quando qualquer gasto do workspace exceder um limite nos últimos 30 dias

O senhor 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", "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

O senhor 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", "NOTEBOOKS")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.identity_metadata.run_as
HAVING
   list_cost > {budget}

alerta quando um Job excede o limite nos últimos 30 dias

O senhor 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 percepções sobre o uso do serverless em seu account:

Identifique os caros serverless compute Notebook

Essa consulta retorna uma lista de Notebook e quantos DBUs cada Notebook consumiu, em ordem decrescente pelo 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 os caros serverless compute Job

Essa consulta retorna uma lista de trabalhos e a quantidade de DBUs que cada Job consumiu, em ordem decrescente pelo 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 determinado usuário

Essa consulta retorna uma lista de Notebook e Job que usam serverless compute execução por um determinado usuário ou entidade de serviço, 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 consumidas por cargas de trabalho que compartilham uma tag personalizada

Essa consulta retorna uma lista de trabalhos que usam serverless compute que compartilham o mesmo tag personalizado 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