O Hologres Serverless Computing cobra por jobs SQL intensivos em recursos, como aqueles com alto consumo de CPU ou memória, com base nos recursos de computação consumidos e no tempo de execução. Este tópico descreve como visualizar o consumo de recursos e entender os detalhes de faturamento.
Faturamento
O recurso Serverless Computing mede o uso de recursos de cada job SQL em Compute Unit·Hour (CU·H). O sistema calcula esse valor multiplicando os recursos consumidos pelo tempo de execução. O faturamento é liquidado por hora. A cada hora, o sistema agrega o uso de todos os jobs SQL executados no Serverless Computing na hora anterior e deduz as taxas correspondentes. Para preços unitários específicos, consulte Visão geral do faturamento.
O faturamento do Serverless Computing começou oficialmente em
July 1, 2024(horário de Pequim). Consulte as informações abaixo para monitorar o consumo de recursos do Serverless Computing e estimar sua fatura. Se necessário, ajuste a alocação de recursos dos seus jobs para evitar custos inesperados.Para obter uma lista de regiões e zonas onde o Serverless Computing está disponível, consulte Guia do Usuário do Serverless Computing.
Tanto
hologres.hg_query_logquantohologres.hg_serverless_computing_query_logretêm dados dos últimos 30 dias.
Apenas jobs SQL concluídos com sucesso são faturados. Jobs com falha não geram cobrança.
Consultar consumo de recursos
A partir da versão Hologres V2.1.18, consulte a view hologres.hg_serverless_computing_query_log para calcular o consumo de recursos das tarefas do Serverless Computing e estimar os custos com base na fórmula de faturamento para recursos serverless. Para mais informações sobre logs de consultas lentas, consulte Visualizar e analisar logs de consultas lentas.
Em versões anteriores à
Hologres V2.2.7, o log de consultas lentas registrava apenas tarefas bem-sucedidas do Serverless Computing com duração de execução superior a100ms e todas as tarefas com falha. Na versãoHologres V2.2.7e posteriores, é possível visualizar todas as tarefas do Serverless Computing.Como o faturamento envolve agregação de dados e conversão de unidades, podem ocorrer pequenas discrepâncias entre os dados do log e sua fatura final.
Permissões
Para estimar o consumo de recursos e os custos do Serverless Computing a partir do log de consultas lentas, são necessárias permissões específicas. As seções a seguir detalham as permissões obrigatórias e os métodos de autorização.
-
Consultar o volume de varredura de dados de todos os bancos de dados em uma instância
-
Opção 1: Conceder a permissão Superuser. Execute o comando a seguir:
-- Replace "Alibaba Cloud account ID" with the actual username. For a RAM user, prepend the account ID with "p4_". ALTER USER "Alibaba Cloud account ID" SUPERUSER; -
Opção 2: Adicionar o usuário ao grupo de usuários pg_read_all_stats. Use um dos comandos a seguir conforme seu modelo de permissão:
NotaAlém da permissão Superuser, o Hologres permite que membros do grupo de usuários pg_read_all_stats visualizem o volume de varredura de dados de todos os bancos de dados. Se um usuário comum precisar visualizar todos os logs, ele pode solicitar a um Superuser que lhe conceda essa permissão e o adicione ao grupo.
GRANT pg_read_all_stats TO "Alibaba Cloud account ID"; -- For the expert permission model CALL spm_grant('pg_read_all_stats', 'Alibaba Cloud account ID'); -- For the simple permission model (SPM) CALL slpm_grant('pg_read_all_stats', 'Alibaba Cloud account ID'); -- For the schema-level simple permission model (SLPM)
-
-
Visualizar o volume de varredura de dados do banco de dados atual
-
Ative o modelo de permissão simples (SPM) ou o modelo de permissão simples no nível de schema (SLPM) e adicione o usuário à função db_admin. A função db_admin pode visualizar o volume de varredura de dados do banco de dados atual. Use um dos comandos a seguir para conceder essa função:
CALL spm_grant('<db_name>_admin', 'Alibaba Cloud account ID'); -- For SPM CALL slpm_grant('<db_name>.admin', 'Alibaba Cloud account ID'); -- For SLPM Um usuário comum pode consultar o volume de varredura de dados das consultas executadas por ele próprio no banco de dados atual sob sua conta.
-
Para mais informações sobre operações de permissão, consulte Visão Geral do Gerenciamento de Permissões.
Consultar consumo de um único SQL
Use a instrução SQL a seguir para consultar o consumo detalhado de recursos de um job do Serverless Computing.
SELECT
*,
queue_time_ms, -- The time a SQL query spends waiting in the Serverless Computing queue, in milliseconds (ms).
serverless_allocated_cores, -- The number of CUs actually allocated to the current SQL query by Serverless Computing.
serverless_resource_used_time_ms, -- The duration that the SQL query actually occupies Serverless Computing resources, in milliseconds (ms).
(serverless_allocated_cores::DECIMAL(38, 4)) * (serverless_resource_used_time_ms::DECIMAL(38, 4)) AS serverless_cums
FROM
hologres.hg_serverless_computing_query_log;
Consultar consumo em um intervalo de tempo
Utilize a instrução SQL a seguir para consultar o consumo total de recursos de jobs bem-sucedidos do Serverless Computing dentro de um intervalo de tempo especificado.
SELECT
(SUM((serverless_allocated_cores::DECIMAL(38, 4)) * (serverless_resource_used_time_ms::DECIMAL(38, 4))) / 1000 / 60 / 60)::bigint AS serverless_cuh
FROM
hologres.hg_serverless_computing_query_log
WHERE
status = 'SUCCESS'
AND serverless_allocated_cores IS NOT NULL
AND serverless_resource_used_time_ms IS NOT NULL
AND query_end BETWEEN '2024-05-01 00:00:00+08'::timestamptz AND '2024-05-31 24:00:00+08'::timestamptz;-- Specify the time range.
Estimar consumo de recursos
Caso ainda não tenha ativado o Serverless Computing, mas deseje executar certas consultas SQL usando recursos serverless, execute-as primeiro na sua instância Hologres. A tabela de sistema hologres.hg_query_log contém o campo cpu_time_ms, que permite identificar o tempo de CPU consumido pelo job SQL. Em seguida, use a fórmula cpu_time_ms / 1000 / 60 / 60 para estimar aproximadamente o consumo caso a mesma consulta fosse executada com recursos serverless. O comando SQL para consultar as informações de cpu_time_ms é o seguinte:
SELECT cpu_time_ms FROM hologres.hg_query_log WHERE query_id = 'xxx';
Os recursos da instância podem ser afetados por outras cargas de trabalho, enquanto os recursos serverless são isolados. Além disso, suas capacidades de recursos podem diferir. Portanto, este método não fornece uma estimativa precisa do consumo de recursos serverless. Recomendamos selecionar alguns jobs SQL principais e seguir o Guia do Usuário do Serverless Computing para testá-los diretamente com recursos serverless. Isso permite medir o consumo real de recursos sem afetar outros jobs na sua instância.
Monitorar custos e configurar alertas
Definir um limite diário de uso
A partir do Hologres V3.1.5, é possível usar SQL para definir um limite diário no uso de recursos do Serverless Computing. Apenas um Superuser pode definir esse limite.
-- Set a limit for a database.
ALTER DATABASE <db_name> SET hg_serverless_computing_daily_max_cuh_usage_threshold = <value>;
-- Set a limit for a user.
ALTER USER <user_name> SET hg_serverless_computing_daily_max_cuh_usage_threshold = <value>;
-
Detalhes do limite
O valor padrão é -1, o que significa que nenhum limite está definido.
A unidade é CU·H.
O Hologres agrega e atualiza o uso total de recursos do Serverless Computing para a instância atual a cada 10 minutos. Portanto, pode haver um atraso de até 10 minutos na aplicação do limite.
Antes de executar uma consulta SQL, o Hologres compara o total de recursos serverless usados hoje pela instância com o limite de recursos serverless do usuário ou banco de dados atual. Se o limite for atingido, a consulta reverte automaticamente para o uso dos recursos de computação da instância. Caso o limite não tenha sido atingido, a consulta executa normalmente utilizando recursos serverless.
-
O Hologres calcula o uso diário de recursos do Serverless Computing com base no dia natural, conforme o fuso horário padrão do banco de dados atual. Execute os comandos a seguir na mesma sessão para consultar o fuso horário padrão do banco de dados atual:
-- Reset the time zone to avoid influence from the client or user's default time zone. RESET timezone; -- Query the default time zone of the current database. SHOW timezone;
-
Recomendações
Se você utiliza o recurso Hologres Serverless Computing há muito tempo, determine um limite diário de uso adequado consultando seu consumo de recursos em um intervalo de tempo específico.
Caso nunca tenha utilizado o recurso Hologres Serverless Computing, recomendamos usá-lo inicialmente até que sua carga de trabalho estabilize. Depois, com base nos seus padrões de uso, decida se deve definir um limite diário e qual valor seria apropriado.
Se não quiser que as consultas SQL revertam para os recursos de computação da instância quando o limite do Serverless Computing for atingido, execute o comando a seguir para fazê-las falhar imediatamente. Este parâmetro só pode ser definido por um Superuser.
-- Set the parameter at the database level.
ALTER DATABASE <db_name> SET hg_serverless_computing_enable_fallback_when_exceed_cuh_threshold = false;
-- Set the parameter at the user level.
ALTER USER <user_name> SET hg_serverless_computing_enable_fallback_when_exceed_cuh_threshold = false;
O valor padrão é
true. Quando o limite é excedido, as consultas SQL revertem automaticamente para o uso dos recursos da instância.Este parâmetro pode ser definido como
false. Se o limite for excedido, a consulta SQL falha imediatamente e retorna o seguinte erro:serverless computing is not available due to exceeding cuh usage threshold, please adjust the threshold or trun off serverless computing for current query.
Análise de custos
Utilize o módulo em Expenses and Costs para monitorar e analisar os custos dos recursos de computação do Hologres.
Faça login em Expenses and Costs. No painel de navegação à esquerda, clique em .
Na página Cost Analysis, na seção à direita, selecione Billing Item. Em seguida, selecione um Cost Type e uma Time Granularity conforme suas necessidades.
Na área Filter Conditions à direita, selecione o Billing Item apropriado com base no seu tipo específico de recurso.
Para mais informações, consulte Análise de Custos.
Alertas de gastos
Use o Alibaba Cloud Expenses and Costs para gerenciar orçamentos e definir alertas para gastos de pagamento conforme o uso em produtos específicos e determinadas regiões. Para mais informações, consulte Alertas de Despesas.
Alertas para duração de SQL único
O Hologres suporta métricas de tempo de execução para o Serverless Computing. Recomendamos criar regras de alerta com base nos seus casos de uso de negócios para evitar custos inesperados.
Por exemplo, para a métrica Longest duration among running Serverless Computing queries, recomendamos a seguinte regra de alerta:
Aviso: "A 'Longest duration among running Serverless Computing queries' é maior ou igual a 3.600.000 milissegundos por 5 períodos consecutivos (1 período = 1 minuto)."
Para mais informações, consulte Melhores práticas de monitoramento e alertas.
Tópicos relacionados
Para uma visão geral do recurso Serverless Computing, consulte Serverless Computing.
Para instruções sobre como usar o recurso Serverless Computing, consulte Guia do Usuário do Serverless Computing.