Skip to main content

Exponha métricas do servidor ClickHouse

Se você estiver usando o ClickHouse Cloud, poderá expor métricas para o Prometheus usando a integração com o Prometheus.
Configure uma porta dedicada quando um servidor Prometheus precisar coletar as próprias métricas do ClickHouse:
A seção <prometheus.handlers> pode ser usada para criar handlers mais avançados na mesma porta. Esta seção é semelhante a <http_handlers>, mas funciona com protocolos Prometheus:
Configurações: Verifique o endpoint:

API HTTP do Prometheus e PromQL

O ClickHouse implementa a API HTTP do Prometheus em uma tabela TimeSeries. Um handler atende a gravação remota, a leitura remota, consultas PromQL instantâneas e consultas PromQL de intervalo.

Pré-requisitos

Habilite a configuração allow_experimental_time_series_table para o usuário que cria e acessa a tabela:
Crie um banco de dados e uma tabela TimeSeries:
Para solicitações à API HTTP, habilite allow_experimental_time_series_table no perfil do usuário da API.

Configure a API do Prometheus

Configure um manipulador roteado por prefixo na porta HTTP principal do ClickHouse:
<defaults/> preserva os handlers integrados para endpoints como /ping e solicitações SQL. O prefixo acima expõe esses endpoints por meio de um único handler: O exemplo omite database e table do handler. Cada solicitação deve fornecer o parâmetro de consulta table. Ela também pode fornecer database, usar um nome de tabela qualificado, como prometheus.metrics, ou omitir o banco de dados para usar default. Isso permite que um único handler atenda a várias tabelas TimeSeries. Para usar uma tabela fixa em todas as solicitações, configure-a no handler:
Uma tabela configurada no handler não pode ser substituída por parâmetros da solicitação. Configurações de roteamento e do handler:

Faça a ingestão de métricas com gravação remota

O ClickHouse oferece suporte ao protocolo gravação remota do Prometheus. Configure o Prometheus para gravar no handler:
O Prometheus envia amostras para a tabela prometheus.metrics. Para agrupar dados de várias solicitações simultâneas de gravação remota em menos partes, habilite as inserções assíncronas adicionando a configuração async_insert à URL (ou habilitando-a no perfil de usuário):
O ClickHouse confirma uma solicitação assíncrona de gravação remota somente depois que os dados são gravados em todas as tabelas internas da tabela TimeSeries, independentemente da configuração wait_for_async_insert: o protocolo de gravação remota considera uma gravação confirmada como durável. Se a gravação falhar, a solicitação retorna um erro e o Prometheus tenta novamente.

Consulta com PromQL

Use o endpoint de consulta instantânea para avaliar uma expressão PromQL em um momento específico:
Use o endpoint de consulta por intervalo para avaliar uma expressão em um intervalo de tempo:
Consulte os recursos do PromQL compatíveis para ver a lista de funções e operadores de agregação usados pela API HTTP, pelo dialeto promql e pelas funções de tabela.

Grafana

Configure uma fonte de dados do Prometheus com a URL base terminando antes de /api/v1:
O Grafana acrescenta /api/v1/query ou /api/v1/query_range a esta URL base e adiciona customQueryParameters a cada solicitação.
Apenas os endpoints de consulta /api/v1/query e /api/v1/query_range e os endpoints de metadados /api/v1/series, /api/v1/labels e /api/v1/metadata estão implementados. /api/v1/series requer pelo menos um seletor de séries match[], oferece suporte aos parâmetros opcionais start, end e limit e retorna a união das séries correspondentes a cada seletor. /api/v1/labels aceita os mesmos parâmetros, com match[] sendo opcional, e retorna os nomes de rótulos ordenados das séries correspondentes (ou de todas as séries quando nenhum seletor é informado). O endpoint de valores de rótulos (/api/v1/label/<name>/values), usado por uma fonte de dados Prometheus no Grafana para navegar por rótulos, variáveis de Template e preenchimento automático no construtor de consultas, não está implementado e retorna um erro. Escreva expressões PromQL no modo de código em vez de usar o construtor de consultas.

Pontos de entrada SQL

O ClickHouse usa o mesmo conversor de PromQL para a API HTTP, o dialeto promql e as funções de tabela prometheusQuery e prometheusQueryRange. Execute PromQL diretamente com o clickhouse-client:
Use as funções de tabela para incorporar PromQL a uma consulta SQL:

Consultar metadados de métricas

O endpoint /prometheus/api/v1/metadata retorna os metadados das métricas armazenados na tabela de destino Metrics da tabela TimeSeries: o tipo, o texto de ajuda e a unidade de cada família de métricas. Ele aceita os seguintes parâmetros do Prometheus na string de consulta da URL: A tabela de destino Metrics padrão é uma ReplacingMergeTree ordenada pelo nome da família de métricas: ela mantém a entrada de metadados gravada mais recentemente para cada família de métricas. Várias entradas por família são retornadas apenas enquanto a tabela de destino as armazena — antes da mesclagem de suas partes ou quando a tabela é definida com um mecanismo que as preserva.

Leia métricas com leitura remota

O ClickHouse oferece suporte ao protocolo de leitura remota do Prometheus em /prometheus/api/v1/read. Configure um servidor Prometheus para ler da mesma tabela TimeSeries:
Última modificação em 28 de agosto de 2026