* Edit and translate Отредактировал английскую версию текстов документов и перевел изменения на русский язык. * Update trace_log.md Исправляю битые ссылки. * Fixing broken links Исправил битые ссылки. * Fixing broken links Поправил битую ссылку, добавив раздел в русскую версию. Co-authored-by: Dmitriy <sevirov@yandex-team.ru>
15 KiB
system.query_log
Содержит информацию о выполняемых запросах, например, время начала обработки, продолжительность обработки, сообщения об ошибках.
!!! note "Внимание"
Таблица не содержит входных данных для запросов INSERT
.
Настойки логгирования можно изменить в секции серверной конфигурации query_log.
Можно отключить логгирование настройкой log_queries = 0. По-возможности, не отключайте логгирование, поскольку информация из таблицы важна при решении проблем.
Период сброса данных в таблицу задаётся параметром flush_interval_milliseconds
в конфигурационной секции query_log. Чтобы принудительно записать логи из буффера памяти в таблицу, используйте запрос SYSTEM FLUSH LOGS.
ClickHouse не удаляет данные из таблица автоматически. Смотрите Введение.
Таблица system.query_log
содержит информацию о двух видах запросов:
- Первоначальные запросы, которые были выполнены непосредственно клиентом.
- Дочерние запросы, инициированные другими запросами (для выполнения распределенных запросов). Для дочерних запросов информация о первоначальном запросе содержится в столбцах
initial_*
.
В зависимости от статуса (столбец type
) каждый запрос создаёт одну или две строки в таблице query_log
:
- Если запрос выполнен успешно, создаются два события типа
QueryStart
иQueryFinish
. - Если во время обработки запроса возникла ошибка, создаются два события с типами
QueryStart
иExceptionWhileProcessing
. - Если ошибка произошла ещё до запуска запроса, создается одно событие с типом
ExceptionBeforeStart
.
Столбцы:
type
(Enum8) — тип события, произошедшего при выполнении запроса. Значения:'QueryStart' = 1
— успешное начало выполнения запроса.'QueryFinish' = 2
— успешное завершение выполнения запроса.'ExceptionBeforeStart' = 3
— исключение перед началом обработки запроса.'ExceptionWhileProcessing' = 4
— исключение во время обработки запроса.
event_date
(Date) — дата начала запроса.event_time
(DateTime) — время начала запроса.event_time_microseconds
(DateTime) — время начала запроса с точностью до микросекунд.query_start_time
(DateTime) — время начала обработки запроса.query_start_time_microseconds
(DateTime64) — время начала обработки запроса с точностью до микросекунд.query_duration_ms
(UInt64) — длительность выполнения запроса в миллисекундах.read_rows
(UInt64) — общее количество строк, считанных из всех таблиц и табличных функций, участвующих в запросе. Включает в себя обычные подзапросы, подзапросы дляIN
иJOIN
. Для распределенных запросовread_rows
включает в себя общее количество строк, прочитанных на всех репликах. Каждая реплика передает собственное значениеread_rows
, а сервер-инициатор запроса суммирует все полученные и локальные значения. Объемы кэша не учитываюся.read_bytes
(UInt64) — общее количество байтов, считанных из всех таблиц и табличных функций, участвующих в запросе. Включает в себя обычные подзапросы, подзапросы дляIN
иJOIN
. Для распределенных запросовread_bytes
включает в себя общее количество байтов, прочитанных на всех репликах. Каждая реплика передает собственное значениеread_bytes
, а сервер-инициатор запроса суммирует все полученные и локальные значения. Объемы кэша не учитываюся.written_rows
(UInt64) — количество записанных строк для запросовINSERT
. Для других запросов, значение столбца 0.written_bytes
(UInt64) — объём записанных данных в байтах для запросовINSERT
. Для других запросов, значение столбца 0.result_rows
(UInt64) — количество строк в результате запросаSELECT
или количество строк в запросеINSERT
.result_bytes
(UInt64) — объём RAM в байтах, использованный для хранения результата запроса.memory_usage
(UInt64) — потребление RAM запросом.query
(String) — текст запроса.exception
(String) — сообщение исключения, если запрос завершился по исключению.exception_code
(Int32) — код исключения.stack_trace
(String) — stack trace. Пустая строка, если запрос успешно завершен.is_initial_query
(UInt8) — вид запроса. Возможные значения:- 1 — запрос был инициирован клиентом.
- 0 — запрос был инициирован другим запросом при выполнении распределенного запроса.
user
(String) — пользователь, запустивший текущий запрос.query_id
(String) — ID запроса.address
(IPv6) — IP адрес, с которого пришел запрос.port
(UInt16) — порт, с которого клиент сделал запросinitial_user
(String) — пользователь, запустивший первоначальный запрос (для распределенных запросов).initial_query_id
(String) — ID родительского запроса.initial_address
(IPv6) — IP адрес, с которого пришел родительский запрос.initial_port
(UInt16) — порт, с которого клиент сделал родительский запрос.interface
(UInt8) — интерфейс, с которого ушёл запрос. Возможные значения:- 1 — TCP.
- 2 — HTTP.
os_user
(String) — имя пользователя операционной системы, который запустил clickhouse-client.client_hostname
(String) — имя сервера, с которого присоединился clickhouse-client или другой TCP клиент.client_name
(String) — clickhouse-client или другой TCP клиент.client_revision
(UInt32) — ревизия clickhouse-client или другого TCP клиента.client_version_major
(UInt32) — старшая версия clickhouse-client или другого TCP клиента.client_version_minor
(UInt32) — младшая версия clickhouse-client или другого TCP клиента.client_version_patch
(UInt32) — патч clickhouse-client или другого TCP клиента.http_method
(UInt8) — HTTP метод, инициировавший запрос. Возможные значения:- 0 — запрос запущен с интерфейса TCP.
- 1 —
GET
. - 2 —
POST
.
http_user_agent
(String) — HTTP заголовокUserAgent
.quota_key
(String) — «ключ квоты» из настроек квот (см.keyed
).revision
(UInt32) — ревизия ClickHouse.thread_numbers
(Array(UInt32)) — количество потоков, участвующих в обработке запросов.ProfileEvents.Names
(Array(String)) — счетчики для изменения различных метрик. Описание метрик можно получить из таблицы system.events(#system_tables-eventsProfileEvents.Values
(Array(UInt64)) — метрики, перечисленные в столбцеProfileEvents.Names
.Settings.Names
(Array(String)) — имена настроек, которые меняются, когда клиент выполняет запрос. Чтобы разрешить логирование изменений настроек, установите параметрlog_query_settings
равным 1.Settings.Values
(Array(String)) — значения настроек, которые перечислены в столбцеSettings.Names
.
Пример
SELECT * FROM system.query_log LIMIT 1 \G
Row 1:
──────
type: QueryStart
event_date: 2020-09-11
event_time: 2020-09-11 10:08:17
event_time_microseconds: 2020-09-11 10:08:17.063321
query_start_time: 2020-09-11 10:08:17
query_start_time_microseconds: 2020-09-11 10:08:17.063321
query_duration_ms: 0
read_rows: 0
read_bytes: 0
written_rows: 0
written_bytes: 0
result_rows: 0
result_bytes: 0
memory_usage: 0
current_database: default
query: INSERT INTO test1 VALUES
exception_code: 0
exception:
stack_trace:
is_initial_query: 1
user: default
query_id: 50a320fd-85a8-49b8-8761-98a86bcbacef
address: ::ffff:127.0.0.1
port: 33452
initial_user: default
initial_query_id: 50a320fd-85a8-49b8-8761-98a86bcbacef
initial_address: ::ffff:127.0.0.1
initial_port: 33452
interface: 1
os_user: bharatnc
client_hostname: tower
client_name: ClickHouse
client_revision: 54437
client_version_major: 20
client_version_minor: 7
client_version_patch: 2
http_method: 0
http_user_agent:
quota_key:
revision: 54440
thread_ids: []
ProfileEvents.Names: []
ProfileEvents.Values: []
Settings.Names: ['use_uncompressed_cache','load_balancing','log_queries','max_memory_usage','allow_introspection_functions']
Settings.Values: ['0','random','1','10000000000','1']
Смотрите также
- system.query_thread_log — в этой таблице содержится информация о цепочке каждого выполненного запроса.