Пришлось на собственном опыте опробовать, насколько Graphite модульный.
При 200k metricsReceived
наш Graphite, работающий на довольном старом сервере
на обычных дисках, начал помирать. Carbon-cache постоянно был в топе потребления
ресурсов, ни о какой отзывчивости в работе сервера речи вообще не шло.
“Хватит это терпеть!” - подумал я, и начал в который раз искать советы по тюнингу carbon для высокой производительности. В очередной раз ничего нового не найдя, я решил попробовать давно приглянувшийся мне проект go-carbon.
Особенно подкупало то, что мне ничего не придется менять - go-carbon поддерживает
все те же конфиги для storage-schemas
и aggregation-schemas
, что и родной
carbon-cache.
Так что я остановил carbon-cache и запустил go-carbon.
Эффект превзошел все ожидания: все заработало сразу, лаг появления новых метрик на графиках пропал, отзывчивость сервера вернулась в норму.
Вот вам график updateOperations
, до и после:
При этом go-carbon еще умеет перечитывать конфиги на лету!
В общем, радости моей нет предела, серьезная проблема производительности мониторинга решилась за 5 минут. Даже если вы еще не уперлись в производительность carbon-cache, можно заменить его на go-carbon хотя-бы ради нормального reload конфигов.