> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Порт собственного протокола, обслуживающий запросы во время запуска или остановки сервера, когда обычные порты не принимают подключений.

# Порт интроспекции

Когда `clickhouse-server` зависает при запуске или остановке, обычные порты не принимают подключений, и невозможно узнать, что делает сервер.

Порт интроспекции — это TCP-слушатель собственного протокола, который запускается до того, как сервер начинает подключать таблицы, и останавливается только после завершения отключения таблиц. В эти периоды оператор может подключиться к нему с помощью стандартного клиента `clickhouse-client` и выполнять такие запросы, как `SHOW PROCESSLIST`, `SELECT * FROM system.stack_trace` или `SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' SLEEP ENTRY 0.5`.

<div id="configuration">
  ## Конфигурация
</div>

Порт интроспекции — это конечная точка [компонуемого протокола](/docs/ru/concepts/features/configuration/server-config/composable-protocols), помеченная `<introspection>true</introspection>`. По умолчанию порт интроспекции не настроен:

```xml theme={null}
<protocols>
    <introspection_native>
        <type>tcp</type>
        <introspection>true</introspection>
        <description>introspection native protocol (tcp)</description>
        <host>127.0.0.1</host>
        <port>9010</port>
    </introspection_native>

    <introspection_native_secure>
        <type>tls</type>
        <impl>introspection_native</impl>
        <introspection>true</introspection>
        <description>secure introspection native protocol (tcp_secure)</description>
        <host>127.0.0.1</host>
        <port>9011</port>
    </introspection_native_secure>
</protocols>
```

Поскольку это обычная компонуемая конечная точка протокола, она поддерживает всё, что поддерживает конечная точка: `host`, `port`, `description`, список разрешённых `networks`, `default_database`, а также обёртку в слои `tls` и `proxy1`.

Флаг `introspection` является свойством конечной точки — записи, содержащей `port`, — и не наследуется по ссылкам `impl`, поэтому один слой можно использовать как для конечной точки интроспекции, так и для обычной.

Стек должен завершаться слоем `tcp`, поскольку описанная ниже семантика реализована обработчиком собственного протокола. Пометка конечной точки, стек которой содержит слой `http`, `mysql`, `postgres`, `prometheus` или `interserver`, при запуске отклоняется с ошибкой `INVALID_CONFIG_PARAMETER`, а не приводит к появлению порта, который перестаёт отвечать именно тогда, когда он нужен.

| Ключ            | Описание                                                                                    |
| --------------- | ------------------------------------------------------------------------------------------- |
| `introspection` | Помечает компонуемую конечную точку протокола как порт интроспекции. По умолчанию: `false`. |

<div id="behavior">
  ## Поведение
</div>

* Разрешены запросы `SELECT`, `SHOW`, `DESCRIBE`, `EXPLAIN`, `EXISTS`, `KILL QUERY`, `SYSTEM`, `SET` и `USE`. Все остальные, включая DDL и запросы, изменяющие данные, отклоняются с ошибкой `QUERY_IS_PROHIBITED`, поскольку порт открыт, когда сервер ещё не полностью инициализирован либо уже завершает работу.
* `SYSTEM RELOAD CONFIG` и `SYSTEM RELOAD USERS` отклоняются с ошибкой `QUERY_IS_PROHIBITED` до полного запуска сервера, поскольку перезагрузка конфигурации во время запуска может нарушить порядок инициализации.
* Запросы через эти порты обходят `max_concurrent_queries` и планировщик рабочих нагрузок, как и `SHOW PROCESSLIST`.
* Соединения обслуживаются выделенным пулом потоков, поэтому исчерпание обычного пула соединений не влияет на эти порты. Размер пула задаётся параметром `max_connections`.
* Соединения принимаются, даже если сервер отказывает в обычных соединениях из-за перегрузки CPU.
* Применяются стандартные механизмы аутентификации и авторизации: подключение к этому порту не предоставляет дополнительных прав доступа. Однако оно снимает указанные выше ограничения параллелизма, поэтому привяжите его к адресу, доступному только операторам.
* На эти порты не распространяется действие `SYSTEM START LISTEN` / `SYSTEM STOP LISTEN` (включая `ALL` и `CUSTOM`), и при перезагрузке конфигурации они не перенастраиваются.
