Изоляция запросов в YQL‑агенте

Важно

Описанная ниже функциональность доступна для запросов в Query Tracker начиная с версии 0.1.2.

По умолчанию YQL‑агент запускает все запросы в потоках одного процесса. Это может приводить к утечкам памяти или сбою всех запросов из-за ошибки в одном из них.

Решить эти проблемы позволяет изоляция запросов — когда каждый запрос выполняется в отдельном процессе. Для включения этой возможности нужно переопределить конфигурацию YQL‑агента.

Подробнее про общий механизм переопределения конфигурации компонентов кластера можно прочитать в соответствующем разделе.

Как переопределить конфигурацию YQL‑агента

  1. Создайте *.yaml файл с Kubernetes ConfigMap, как описано в примере.

  2. Добавьте в ConfigMap ключ ytserver-yql-agent.yson (если его ещё нет) или отредактируйте уже существующий.

  3. В поле process_plugin_config добавьте конфигурацию:

    Пример YSON-конфигурации
    ytserver-yql-agent.yson: |
        {"yql_agent"={
            "process_plugin_config" = {  
                "enabled" = %true;
                "log_manager_template" = {
                    "abort_on_alert" = %true;
                    "compression_thread_count" = 4;
                    "rules" = [
                        {
                            "exclude_categories" = [
                                "Bus";
                                "Concurrency";
                            ];
                            "family" = "plain_text";
                            "min_level" = "debug";
                            "writers" = [
                                "debug-yql-plugin";
                            ];
                        };
                        {
                            "family" = "plain_text";
                            "min_level" = "error";
                            "writers" = [
                                "stderr-yql-plugin";
                            ];
                        };
                        {
                            "family" = "plain_text";
                            "min_level" = "info";
                            "writers" = [
                                "info-yql-plugin";
                            ];
                        };
                    ];
                    "writers" = {
                        "debug-yql-plugin" = {
                            "file_name" = "/yt/yql-agent-slots-root-path/yql-agent.debug.log";
                            "type" = "file";
                        };
                        "info-yql-plugin" = {
                            "file_name" = "/yt/yql-agent-slots-root-path/yql-agent.log";
                            "type" = "file";
                        };
                        "stderr-yql-plugin" = {
                            "file_name" = "/yt/yql-agent-slots-root-path/yql-agent.error.log";
                            "type" = "file";
                        };
                    };
                };
                "slot_count" = 8;
                "slots_root_path" = "/yt/yql-agent-slots-root-path";
            };
    
            // другие параметры YQL-агента
    
        };}
    
    
  4. Добавьте ссылку на ConfigMap в спецификацию Ytsaurus, как описано в разделе Переопределение конфигурации.