Pular para o conteúdo principal

Expondo métricas

Se você estiver usando o ClickHouse Cloud, poderá expor métricas para o Prometheus usando a integração com o Prometheus.
O ClickHouse pode expor suas próprias métricas para coleta pelo Prometheus:
<prometheus>
    <port>9363</port>
    <endpoint>/metrics</endpoint>
    <metrics>true</metrics>
    <asynchronous_metrics>true</asynchronous_metrics>
    <events>true</events>
    <errors>true</errors>
    <histograms>true</histograms>
    <dimensional_metrics>true</dimensional_metrics>
</prometheus>

A seção `<prometheus.handlers>` pode ser usada para criar handlers mais avançados.
Esta seção é semelhante a [<http_handlers>](/concepts/features/interfaces/http), mas funciona para protocolos prometheus:

```xml
<prometheus>
    <port>9363</port>
    <handlers>
        <my_rule_1>
            <url>/metrics</url>
            <handler>
                <type>expose_metrics</type>
                <metrics>true</metrics>
                <asynchronous_metrics>true</asynchronous_metrics>
                <events>true</events>
                <errors>true</errors>
                <histograms>true</histograms>
                <dimensional_metrics>true</dimensional_metrics>
            </handler>
        </my_rule_1>
    </handlers>
</prometheus>
Configurações:
NameDefaultDescription
portnenhumPorta usada para servir o protocolo de exposição de métricas.
endpoint/metricsEndpoint HTTP para a coleta de métricas pelo servidor Prometheus. Começa com /. Não deve ser usado com a seção <handlers>.
url / headers / methodnenhumFiltros usados para encontrar um handler correspondente para uma requisição. Semelhantes aos campos com os mesmos nomes na seção <http_handlers>.
metricstrueExpõe métricas da tabela system.metrics.
asynchronous_metricstrueExpõe os valores atuais das métricas da tabela system.asynchronous_metrics.
eventstrueExpõe métricas da tabela system.events.
errorstrueExpõe o número de erros por código de erro ocorridos desde a última reinicialização do servidor. Essas informações também podem ser obtidas em system.errors.
histogramstrueExpõe métricas de histograma de system.histogram_metrics
dimensional_metricstrueExpõe métricas dimensionais de system.dimensional_metrics
Verifique (substitua 127.0.0.1 pelo endereço IP ou hostname do seu servidor ClickHouse):
curl 127.0.0.1:9363/metrics

Protocolo remote-write

O ClickHouse oferece suporte ao protocolo remote-write. Os dados recebidos por esse protocolo são gravados em uma tabela TimeSeries (que deve ser criada previamente).
<prometheus>
    <port>9363</port>
    <handlers>
        <my_rule_1>
            <url>/write</url>
            <handler>
                <type>remote_write</type>
                <database>db_name</database>
                <table>time_series_table</table>
            </handler>
        </my_rule_1>
    </handlers>
</prometheus>
Configurações:
NameDefaultDescription
portnenhumPorta usada para expor o protocolo remote-write.
url / headers / methodnenhumFiltros usados para encontrar um handler correspondente para uma requisição. Semelhante aos campos de mesmo nome na seção <http_handlers>.
tablenenhumO nome de uma tabela TimeSeries para gravar os dados recebidos pelo protocolo remote-write. Esse nome também pode conter, opcionalmente, o nome de um banco de dados.
databasenenhumO nome de um banco de dados onde está localizada a tabela especificada na configuração table, caso ele não esteja especificado na configuração table.

Protocolo remote-read

O ClickHouse oferece suporte ao protocolo remote-read. Os dados são lidos de uma tabela TimeSeries e enviados por esse protocolo.
<prometheus>
    <port>9363</port>
    <handlers>
        <my_rule_1>
            <url>/read</url>
            <handler>
                <type>remote_read</type>
                <database>db_name</database>
                <table>time_series_table</table>
            </handler>
        </my_rule_1>
    </handlers>
</prometheus>
Configurações:
NomePadrãoDescrição
portnenhumPorta para atender ao protocolo remote-read.
url / headers / methodnenhumFiltros usados para encontrar um handler correspondente para uma solicitação. Semelhante aos campos com os mesmos nomes na seção <http_handlers>.
tablenenhumO nome de uma tabela TimeSeries para ler os dados a serem enviados pelo protocolo remote-read. Esse nome também pode, opcionalmente, conter o nome de um banco de dados.
databasenenhumO nome de um banco de dados onde está localizada a tabela especificada na configuração table, caso ele não esteja especificado na configuração table.

Configuração de vários protocolos

É possível especificar vários protocolos em um único lugar:
<prometheus>
    <port>9363</port>
    <handlers>
        <my_rule_1>
            <url>/metrics</url>
            <handler>
                <type>expose_metrics</type>
                <metrics>true</metrics>
                <asynchronous_metrics>true</asynchronous_metrics>
                <events>true</events>
                <errors>true</errors>
                <histograms>true</histograms>
                <dimensional_metrics>true</dimensional_metrics>
            </handler>
        </my_rule_1>
        <my_rule_2>
            <url>/write</url>
            <handler>
                <type>remote_write</type>
                <table>db_name.time_series_table</table>
            </handler>
        </my_rule_2>
        <my_rule_3>
            <url>/read</url>
            <handler>
                <type>remote_read</type>
                <table>db_name.time_series_table</table>
            </handler>
        </my_rule_3>
    </handlers>
</prometheus>
Última modificação em 10 de junho de 2026