Я хотел бы настроить statsd / graphite, чтобы я мог регистрировать приложения JS, работающие на устройствах HTML (т.е. не в изолированной среде LAN и, возможно, с большим объемом входящих данных, которые я не контролирую напрямую).
Мои ограничения:
Короче говоря, путь к данным: [клиент] - (http) -> [http2statsd] - (udp) -> [statsd] - (tcp) -> [graphite] - (nfs) -> [filer]
Мои выводы на данный момент:
Поэтому мне было интересно, есть ли у кого-нибудь опыт и лучшие практики, которыми можно поделиться для надежного развертывания statsd / graphite?
Существует прокси-сервер statsd с согласованным хешированием, который позволяет распределять трафик statsd между несколькими агрегаторами statsd, каждый из которых использует свой собственный набор имен показателей. Это важный элемент масштабируемости в вашей архитектуре, позволяющий масштабировать процессы statsd.
Графит также сложен, но, надеюсь, вам не понадобится бесконечный масштаб, и вы сможете выполнять точную разбивку по сервису или другому статическому параметру.
Самая сложная часть - это масштабирование веб-приложения, и это во многом зависит от ваших самых сложных запросов к графу. Однако вы всегда можете предварительно агрегировать данные для получения самых сложных графиков и избавиться от большей части нагрузки.
Я довольно давно использую HostedGraphite, чтобы избежать всей этой боли, эти ребята реализовали свой собственный бэкэнд Riak для Carbon и делают все масштабирование там.