ошибки: requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
Сетап:
- Managed Clickhouse (Y.Cloud)
- Используется clickhouse_connect (python) через dbt-clickhouse
Настройка send_receive_timeout=500 не действует.
смотрите в настройках профиля вашего https://clickhouse.com/docs/en/operations/settings/query-complexity/#max-execution-time ну и в system.query_log поглядите как там на сервере запрос записывается
max-execution-time проверил, на 5 секундах, например, запрос отстреливается. Выставил 500. Но после 300 секунд всё равно получаю requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) Согласно логу system.query_log запросы успешно завершаются на сервере, просто на своей стороне после 300 секунд я получаю таймаут и закрытие сокета. Пока не могу понять, какая настройка за это отвечает.
а с клиентской стороны timeout пробовали выставить?
В принципе так и делаю, в конце запроса приписываю settings receive_timeout=500 , send_timeout=500 , send_progress_in_http_headers=0 , max_execution_time=500
вообще там вроде отдельно send_timeout и receive_timeout думаю имеет смысл с полным стектрейсом завести issue в репозитории dbt-clickhouse
это настройки уровная коннекта а не запроса, так что где то в параметрах коннекта задаваться должны
В коннекте profiles.yml тоже есть: clickhouse_starschema: outputs: dev: type: clickhouse schema: default host: "{{ env_var('DBT_HOST') }}" port: 8443 user: "{{ env_var('DBT_USER') }}" password: "{{ env_var('DBT_PASSWORD') }}" secure: True verify: False send_receive_timeout: 500 target: dev
Попробую issue завести тогда
по моему нет настройки send_receive_timeout есть три отдельные send_timeout, receive_timeout , connect_timeout
никто, кстати, не сталкивался, что в графане запросы отстреливаются после 30 секунд работы? таймаут датасорса выставлен в 900 секунд, не помогает
это встроенный для всех сорцов таймаут на уровне прокси графаны [dataproxy] timeout = 30 можно поменять
я поменял настройки на датасорсе, в документации на провиженинг пишут, что этот параметр подменяет настройки. в исходниках тоже вижу, как будто меняется таймаут на тот, который я задаю в датасорсе. при этом запрос отстреливает по таймауту именно графана
перечитайте еще раз мое сообщение вам grafana.ini поменять надо чтобы dataproxy не отваливался после 30 секунд но вообще если у вас запрос занимает больше 30 секунд времени, то может быть grafana не для вас а лучше использовать какой то репортинг типа https://github.com/evidence-dev/evidence ?
Обсуждают сегодня