Краткий ответ: это настраивается, но поведение по умолчанию — это то, что вам нужно (кеш удаляется между циклами сброса).
Длинный ответ: statsd на самом деле не отчитывается перед графитом. Однако он может загрузить плагин, который будет это делать (и он поставляется с таким плагином).
Важно понимать, что хотя плагины могут сообщать об успешной или неудачной инициализации, у них нет обратного вызова или другого варианта обратной связи для событий сброса. Плагин графита регистрирует 2 события, статус и сброс (https://github.com/etsy/statsd/blob/master/backends/graphite.js строка 230), из которых flush — единственное событие, сообщающее о метриках.
Регистр графитового плагина для события сброса. Во время события сброса узел EventEmitter будет вызывать все зарегистрированные плагины с копией кэшированных статистических данных. Каждому плагину отправляется отдельная копия без гарантии порядка. Вы можете увидеть, как это происходит, если посмотрите на https://github.com/etsy/statsd/blob/master/stats.js, строка 32, где вы увидите, что metrics_hash создается и заполняется, а затем используется для создания события сброса (строка 122).
Сам кеш удаляется сразу после заполнения копии (строки 77-120). Как вы можете видеть в коде, вы можете изменить это поведение по умолчанию для определенного типа метрики (время, датчики, счетчики, наборы), добавив запись в файл конфигурации. Например, чтобы сохранить кэш счетчика, вы должны добавить deleteCounters = true в свою конфигурацию. Обратите внимание, что эта конфигурация всегда будет хранить кешированные метрики, независимо от успеха или неудачи любого плагина.
person
polo
schedule
20.06.2013