Proporcionar el contexto de traza a ClickHouse
clickhouse-client encabezados de contexto de traza conformes con la recomendación Trace Context mediante las opciones --opentelemetry-traceparent y --opentelemetry-tracestate.
Si no se proporciona un contexto de traza padre, o si el contexto de traza proporcionado no cumple con el estándar W3C mencionado anteriormente, ClickHouse puede iniciar una nueva traza, con una probabilidad controlada por la configuración opentelemetry_start_trace_probability.
Propagación del contexto de traza
- Consultas a servidores remotos de ClickHouse, como cuando se usa el motor de tabla Distributed.
- Función de tabla url. La información del contexto de traza se envía en las cabeceras HTTP.
Trazado de solicitudes de ClickHouse Keeper
Habilitar el trazado de Keeper
Tipos de spans de Keeper
zookeeper.create— Crear un nodozookeeper.get— Obtener los datos del nodozookeeper.set— Establecer los datos del nodozookeeper.remove— Eliminar un nodozookeeper.list— Enumerar los nodos hijoszookeeper.exists— Comprobar si existe un nodozookeeper.multi— Ejecutar varias operaciones de forma atómicazookeeper.client.requests_queue— Tiempo empleado en poner en cola las solicitudes antes de enviarlas
keeper.receive_request— Recepción y análisis de la solicitud del clientekeeper.dispatcher.requests_queue— Puesta en cola de solicitudes en el dispatcherkeeper.write.pre_commit— Preprocesamiento de solicitudes de escritura antes del commit de Raftkeeper.write.commit— Procesamiento de solicitudes de escritura después del commit de Raftkeeper.read.wait_for_write— Solicitudes de lectura en espera de escrituras de las que dependenkeeper.read.process— Procesamiento de solicitudes de lecturakeeper.dispatcher.responses_queue— Puesta en cola de respuestas en el dispatcherkeeper.send_response— Envío de la respuesta al cliente
Muestreo y rendimiento
Trazado del propio ClickHouse
trace spans para cada consulta y para algunas etapas de ejecución de la consulta, como la planificación de consultas o las consultas distribuidas.
Para que sea útil, la información de trazado debe exportarse a un sistema de monitorización compatible con OpenTelemetry, como Jaeger o Prometheus. ClickHouse evita depender de un sistema de monitorización concreto y, en su lugar, solo proporciona los datos de trazado a través de una tabla del sistema. La información de OpenTelemetry sobre trace spans requerida por el estándar se almacena en la tabla system.opentelemetry_span_log.
La tabla debe estar habilitada en la configuración del servidor; consulte el elemento opentelemetry_span_log en el archivo de configuración predeterminado config.xml. Está habilitada de forma predeterminada.
Las etiquetas o atributos se guardan como dos arrays paralelos que contienen las claves y los valores. Use ARRAY JOIN para trabajar con ellos.
Log-query-settings
Integración con sistemas de monitoreo
http://localhost:9411, en formato JSON v2 de Zipkin: