Exponer métricas del servidor ClickHouse
Si usas ClickHouse Cloud, puedes exponer métricas a Prometheus con la integración de Prometheus.
<prometheus.handlers> can be used to make more extended handlers en el mismo puerto.
Esta sección es similar a <http_handlers> pero funciona para Protocolos de Prometheus:
Compruebe el endpoint:
API HTTP de Prometheus y PromQL
TimeSeries. Un handler gestiona la escritura remota, la lectura remota, las consultas PromQL instantáneas y las consultas PromQL de rango.
Requisitos previos
allow_experimental_time_series_table para el usuario que crea la tabla y accede a ella:
TimeSeries:
allow_experimental_time_series_table en el perfil del usuario de la API.
Configure la API de Prometheus
<defaults/> conserva los handler integrados para endpoints como /ping y para solicitudes SQL. El prefijo anterior expone estos endpoints mediante un único handler:
El ejemplo omite
database y table del handler. Cada solicitud debe incluir el parámetro de consulta table. También puede incluir database, usar un nombre de tabla completo como prometheus.metrics u omitir la base de datos para usar default. Esto permite que un único handler atienda varias tablas TimeSeries.
Para usar una tabla fija en todas las solicitudes, configúrela en el handler:
Ingeste métricas mediante escritura remota
prometheus.metrics.
Para agrupar los datos de muchas solicitudes simultáneas de remote-write en menos partes, habilite las inserciones asíncronas añadiendo la configuración async_insert a la URL (o habilitándola en el perfil de usuario):
TimeSeries, independientemente de la configuración de wait_for_async_insert: el protocolo remote-write considera duradera una escritura confirmada. Si el vaciado falla, la solicitud devuelve un error y Prometheus la reintenta.
Consultas con PromQL
promql y las funciones de tabla.
Grafana
/api/v1:
/api/v1/query o /api/v1/query_range a esta URL base y añade customQueryParameters a cada solicitud.
Solo están implementados los endpoints de consulta
/api/v1/query y /api/v1/query_range y los endpoints de metadatos /api/v1/series, /api/v1/labels y /api/v1/metadata. /api/v1/series requiere al menos un selector de series match[], admite los parámetros opcionales start, end y limit, y devuelve la unión de las series coincidentes con cada selector. /api/v1/labels acepta los mismos parámetros, con match[] como opcional, y devuelve los nombres de etiquetas ordenados de las series coincidentes (o de todas las series cuando no se proporcionan selectores). El endpoint de valores de etiquetas (/api/v1/label/<name>/values), que utiliza un origen de datos de Prometheus en Grafana para explorar etiquetas, variables de plantilla y el autocompletado del constructor de consultas, no está implementado y devuelve un error. Escriba expresiones de PromQL en el modo de código en lugar de usar el constructor de consultas.Puntos de entrada de SQL
promql y las funciones de tabla prometheusQuery y prometheusQueryRange.
Ejecute PromQL directamente con clickhouse-client:
Consultar metadatos de métricas
/prometheus/api/v1/metadata devuelve los metadatos de las métricas almacenados en la tabla de destino Metrics de la tabla TimeSeries: el tipo, el texto de ayuda y la unidad de cada familia de métricas. Admite los siguientes parámetros de Prometheus en la cadena de consulta de la URL:
La tabla de destino
Metrics predeterminada es una ReplacingMergeTree ordenada por el nombre de la familia de métricas: conserva la entrada de metadatos escrita más recientemente para cada familia de métricas. Solo se devuelven varias entradas por familia mientras la tabla de destino las almacene: antes de que se fusionen sus partes o cuando la tabla se define con un motor que las conserva.
Leer métricas mediante lectura remota
/prometheus/api/v1/read.
Configure un servidor Prometheus para que lea de la misma tabla TimeSeries: