-
Notifications
You must be signed in to change notification settings - Fork 52
Roman Lomonosov edited this page Feb 28, 2018
·
15 revisions
В адрес clickhouse.url
можно вписать любые параметры соединения, логин и пароль пользователя:
[clickhouse]
url = "http://graphite:qwerty@localhost:8123/?max_query_size=2097152&readonly=2&log_queries=1"
Наиболее полезные параметры:
- readonly=2 - Просто на всякий случай
- max_query_size=2097152
- max_ast_elements=1000000
- max_execution_time=60
- max_rows_to_read=200000000 - Полезно чтобы избежать выполнения ну очень больших запросов (на большое количество метрик и длительный промежуток времени)
Параметры указаны для graphite-web 1.1.2. В более ранних версиях они назывались по другому
CLUSTER_SERVERS = ['127.0.0.1:9090']
# Не отключать хождение в graphite-clickhouse при ошибках или таймаутах
REMOTE_RETRY_DELAY = 0
# Увеличить таймауты
FETCH_TIMEOUT = 60
FIND_TIMEOUT = 10
С параметрами по-умолчанию carbonapi может разрезать один большой запрос на много маленьких. Это очень плохо работает с ClickHouse. Надо обязательно выставлять параметры:
sendGlobsAsIs: true
maxBatchSize: 1000000
Но даже с этими параметрами carbonapi делает лишний запрос к /metrics/find/
перед /render/
. Сейчас можно отключить только патчем (в будущем появится возможность сделать это и через конфиг):
diff -Naur carbonapi/http_handlers.go carbonapi-render-find/http_handlers.go
--- carbonapi/http_handlers.go 2018-02-26 11:59:25.996573711 +0300
+++ carbonapi-render-find/http_handlers.go 2018-02-26 21:17:35.676513385 +0300
@@ -297,7 +297,7 @@
if haveCacheData {
apiMetrics.FindCacheHits.Add(1)
- } else {
+ } else if false {
apiMetrics.FindCacheMisses.Add(1)
var err error
apiMetrics.FindRequests.Add(1)