Monitoramento de orçamentos

Este tópico descreve como monitorar os gastos do orçamento e identificar o orçamento que rastreia o uso de crédito de um recurso específico.

Criação de uma função personalizada para monitorar orçamentos

Você pode delegar o monitoramento de orçamento criando uma função personalizada que pode ser usada por usuários não administradores para monitorar orçamentos.

Criação de uma função personalizada para monitorar o orçamento da conta

Você pode criar uma função personalizada para permitir que usuários não administradores da conta monitorem o orçamento da conta. Para obter uma lista completa de privilégios e funções que devem ser concedidos a uma função para monitorar o orçamento da conta, consulte Funções e privilégios do Budgets.

Exemplo

Nota

Somente um administrador de conta pode executar as instruções neste exemplo.

Por exemplo, criar uma função account_budget_monitor e conceder à função a capacidade de exibir o uso de crédito ao orçamento da conta:

USE ROLE ACCOUNTADMIN;

CREATE ROLE account_budget_monitor;
 
GRANT APPLICATION ROLE SNOWFLAKE.BUDGET_VIEWER TO ROLE account_budget_monitor;

GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE account_budget_monitor;
Copy

Criação de uma função personalizada para monitorar um orçamento personalizado

Você pode criar uma função personalizada para permitir que usuários não administradores de conta monitorem orçamentos personalizados. Para obter uma lista completa de privilégios e funções que devem ser concedidos a uma função para monitorar um orçamento personalizado, consulte Funções e privilégios do Budgets.

Exemplo

Nota

Apenas um proprietário de orçamento (uma função com o privilégio OWNERSHIP) pode executar as instruções neste exemplo.

Use a função de proprietário do orçamento para conceder à função personalizada budget_monitor a capacidade de monitorar o orçamento my_budget no esquema budgets_db.budgets_schema:

USE ROLE custom_budget_owner;

GRANT USAGE ON DATABASE budgets_db TO ROLE budget_monitor;

GRANT USAGE ON SCHEMA budget_db.budgets_schema TO ROLE budget_monitor;

GRANT SNOWFLAKE.CORE.BUDGET ROLE budgets_db.budgets_schema.my_budget!VIEWER
  TO ROLE budget_monitor;

GRANT DATABASE ROLE SNOWFLAKE.USAGE_VIEWER TO ROLE budget_monitor;
Copy

Monitoramento de orçamentos

Você pode monitorar orçamentos usando o Snowsight ou SQL.

Como usar o Snowsight para monitorar os orçamentos

Você pode visualizar os gastos atuais e históricos do orçamento usando a página Budgets em Snowsight.

Nota

Somente um usuário com a função ACCOUNTADMIN ou uma função com os privilégios e função necessários pode monitorar orçamentos usando o Snowsight.

  1. Faça login no Snowsight.

  2. Selecione Admin » Cost Management.

  3. Selecione Budgets.

Na exibição Current Month de um orçamento, você pode revisar o uso de crédito por dia até o dia atual. Você pode ver se pode exceder seu orçamento do mês. O gráfico de barras continua até o fim do mês com o uso de crédito projetado com base no uso real de crédito no mês. A linha Spending limit indica o limite de gastos no qual uma notificação de orçamento é acionada.

Selecione Ícone de relógio (meses a serem exibidos) para filtrar a exibição por Current Month ou períodos mais longos.

Você pode comparar Spend (uso atual de crédito) com Interval (tempo restante do mês atual) para ver se seus gastos estão ultrapassando seu orçamento mensal.

Você pode filtrar a exibição selecionando Ícone de Budgets Budgets ou Ícone de recursos Resources:

  • Você pode selecionar um orçamento personalizado na exibição Budgets para obter detalhes sobre um orçamento específico.

    Nota

    A lista Service Type para um orçamento personalizado inclui um tipo Unused Resources. Este tipo de serviço é exibido quando um objeto em um orçamento não tem dados de uso de crédito para exibir. Isso pode acontecer se o objeto não tiver uso de crédito para custos de computação ou se você adicionou recentemente um objeto a um orçamento e a tarefa em segundo plano sem servidor ainda não foi executada.

  • Na exibição Resources, você pode filtrar e classificar por Service Type, objeto Name e Credit Usage.

Como usar os comandos SQL para monitorar os orçamentos

Para monitorar o orçamento da conta, você deve ter os privilégios necessários. Para obter mais informações, consulte Criação de uma função personalizada para monitorar o orçamento da conta.

Use a função account_budget_monitor para visualizar o histórico de gastos do orçamento da conta:

USE ROLE account_budget_monitor;

CALL snowflake.local.account_root_budget!GET_SPENDING_HISTORY(
  TIME_LOWER_BOUND => DATEADD('days', -7, CURRENT_TIMESTAMP()),
  TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
Copy

Você pode monitorar o histórico de gastos por tipo de serviço. Para visualizar o histórico de gastos do recurso sem servidor de otimização de pesquisa para o orçamento da conta em um período de oito meses, execute as seguintes instruções:

USE ROLE account_budget_monitor;

SELECT *
   FROM table(snowflake.local.account_root_budget!GET_SERVICE_TYPE_USAGE_V2(
         '2025-05', '2025-12'))
   WHERE service_type = 'SEARCH_OPTIMIZATION';
Copy

Para monitorar um orçamento personalizado, você deve ter os privilégios necessários. Para obter mais informações, consulte Criação de uma função personalizada para monitorar um orçamento personalizado.

Use a função budget_monitor para visualizar o histórico de gastos de um orçamento personalizado. Por exemplo, para visualizar o histórico de gastos do orçamento personalizado na_finance_budget no esquema budgets_db.budgets_schema, execute as seguintes instruções:

USE ROLE budget_monitor;

CALL budgets_db.budgets_schema.na_finance_budget!GET_SPENDING_HISTORY(
  TIME_LOWER_BOUND => DATEADD('days', -7, CURRENT_TIMESTAMP()),
  TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
Copy

Você pode monitorar o histórico de gastos por tipo de serviço. Por exemplo, para visualizar o histórico de gastos em um período de um ano para as exibições materializadas inclusas no orçamento, execute as seguintes instruções:

USE ROLE budget_monitor;

SELECT *
   FROM table(budgets_db.budgets_schema.na_finance_budget!GET_SERVICE_TYPE_USAGE_V2(
         '2025-05', '2025-12'))
   WHERE service_type = 'MATERIALIZED_VIEW';
Copy

Para obter mais informações, consulte Métodos do Budget.

Identificação dos orçamentos que rastreiam um recurso

Se quiser determinar quais orçamentos rastreiam um recurso, chame a função SYSTEM$SHOW_BUDGETS_FOR_RESOURCE.

Por exemplo:

SELECT SYSTEM$SHOW_BUDGETS_FOR_RESOURCE('TABLE', 'my_db.my_schema.my_table');
Copy
+-----------------------------------------------------------------------+
| SYSTEM$SHOW_BUDGETS_FOR_RESOURCE('TABLE', 'MY_DB.MY_SCHEMA.MY_TABLE') |
|-----------------------------------------------------------------------|
| [BUDGETS_DB.BUDGETS_SCHEMA.MY_BUDGET]                                 |
+-----------------------------------------------------------------------+

A função retorna o orçamento ao qual o recurso foi adicionado. Ela considera os orçamentos que incluem o recurso por qualquer um dos seguintes motivos:

  • O recurso foi adicionado diretamente ao orçamento.

  • O recurso tem a combinação tag/valor que foi adicionada ao orçamento.

  • O recurso pertence a um objeto (por exemplo, banco de dados) que foi adicionado ao orçamento.