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.
<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:
Verifique o endpoint:
API HTTP do Prometheus e PromQL
TimeSeries. Um handler atende a gravação remota, a leitura remota, consultas PromQL instantâneas e consultas PromQL de intervalo.
Pré-requisitos
allow_experimental_time_series_table para o usuário que cria e acessa a tabela:
TimeSeries:
allow_experimental_time_series_table no perfil do usuário da API.
Configure a API do Prometheus
<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:
Faça a ingestão de métricas com gravação remota
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):
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
promql e pelas funções de tabela.
Grafana
/api/v1:
/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
promql e as funções de tabela prometheusQuery e prometheusQueryRange.
Execute PromQL diretamente com o clickhouse-client:
Consultar metadados de métricas
/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
/prometheus/api/v1/read.
Configure um servidor Prometheus para ler da mesma tabela TimeSeries: