Skip to main content
Cuando clickhouse-server se bloquea durante el inicio o el apagado, los puertos habituales no aceptan conexiones y no se le puede preguntar al servidor qué está haciendo. Un puerto de introspección es un listener TCP de protocolo nativo que se inicia antes de que el servidor comience a adjuntar tablas y se detiene únicamente después de que finalice la desvinculación de las tablas. Durante estos intervalos, un operador puede conectarse a él con un clickhouse-client estándar y ejecutar consultas como SHOW PROCESSLIST, SELECT * FROM system.stack_trace o SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' SLEEP ENTRY 0.5.

Configuración

Un puerto de introspección es un endpoint de protocolo componible marcado con <introspection>true</introspection>. De forma predeterminada, no hay ningún puerto de introspección configurado:
Como endpoint de protocolo componible normal, admite todo lo que admite un endpoint: host, port, description, una lista de permitidos de networks, default_database y el encapsulamiento en capas tls y proxy1. El indicador introspection es una propiedad del endpoint —la entrada que incluye el port— y no se hereda mediante referencias impl, por lo que una capa puede compartirse entre un endpoint de introspección y uno normal. La pila debe terminar en una capa tcp, ya que la semántica descrita a continuación la implementa el controlador del protocolo nativo. Marcar un endpoint cuya pila contiene una capa http, mysql, postgres, prometheus o interserver se rechaza con INVALID_CONFIG_PARAMETER al inicio, en lugar de generar un puerto que deje de responder justo cuando se necesite.

Comportamiento

  • Las consultas permitidas son SELECT, SHOW, DESCRIBE, EXPLAIN, EXISTS, KILL QUERY, SYSTEM, SET y USE. El resto, incluidas las sentencias DDL y las consultas que modifican datos, se rechaza con QUERY_IS_PROHIBITED, ya que el puerto permanece abierto mientras el servidor aún no se ha inicializado por completo o se está apagando.
  • SYSTEM RELOAD CONFIG y SYSTEM RELOAD USERS se rechazan con QUERY_IS_PROHIBITED hasta que el servidor se haya iniciado por completo, ya que recargar la configuración durante el inicio puede alterar el orden de inicialización.
  • Las consultas en estos puertos omiten max_concurrent_queries y el planificador de cargas de trabajo, igual que SHOW PROCESSLIST.
  • Las conexiones son atendidas por un grupo de subprocesos dedicado, por lo que el agotamiento del grupo de conexiones habitual no afecta a estos puertos. El tamaño del grupo se determina mediante max_connections.
  • Las conexiones se aceptan incluso cuando el servidor rechaza conexiones habituales debido a una sobrecarga de CPU.
  • Se aplican la autenticación y la autorización habituales: conectarse a este puerto no concede derechos de acceso adicionales. Sin embargo, se eliminan los límites de concurrencia mencionados anteriormente, por lo que debe enlazarlo a una dirección a la que solo puedan acceder los operadores.
  • Estos puertos no están sujetos a SYSTEM START LISTEN / SYSTEM STOP LISTEN (incluidos ALL y CUSTOM) ni se reconfiguran al recargar la configuración.
Última modificación el 26 de agosto de 2026