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;
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;
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.
Para obter mais informações sobre como usar uma função de conta personalizada para monitorar o orçamento da conta, consulte Criação de uma função personalizada para monitorar o orçamento da conta.
Para obter mais informações sobre como usar uma função de conta personalizada para monitorar orçamentos personalizados, consulte Criação de uma função personalizada para monitorar um orçamento personalizado.
Faça login no Snowsight.
Selecione Admin » Cost Management.
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 (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 Budgets ou
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()
);
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';
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()
);
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';
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');
+-----------------------------------------------------------------------+
| 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.