каков случай использования statsd gauge? - PullRequest
0 голосов
/ 26 августа 2018

Я изо всех сил пытаюсь понять о концепции датчика в statsd. Пожалуйста, объясните, как это работает, и приведите несколько примеров, когда это может быть полезно.

документ мне не совсем понятен

Установите значение датчика.

stat: название датчика, чтобы установить. значение: текущее значение калибровать. rate: частота дискретизации, с плавающей точкой от 0 до 1. Отправит только Данные этот процент времени. Сервер statsd не принимает частота выборки с учетом датчиков. Используйте с осторожностью. дельта: или не считать это дельта-значение или абсолютное значение. Смотрите датчик введите более подробно.

1 Ответ

0 голосов
/ 28 августа 2018

Датчик просто отражает состояние вашей системы или какой-либо показатель, который вы вообще не хотите агрегировать.

Позвольте привести несколько примеров.

1) В вашей программе вы можете использовать какой-то специфичный для языка API, чтобы узнать, сколько памяти использует этот процесс. Например, на Голанге мы можем сделать:

var stat runtime.MemStats
runtime.ReadMemStats(&stat)
heapAlloc := memStat.HeapAlloc
heapInuse := memStat.HeapInuse
heapObjects := memStat.HeapObjects
statsd.Gauge("machine01.memory.heap.alloc", heapAlloc)
statsd.Gauge("machine01.memory.heap.inuse", heapInuse)
statsd.Gauge("machine01.memory.heap.objects, heapObjects)

Для простоты вы можете рассматривать эти метрики как использование памяти, когда ваш код вызывает API времени выполнения. Таким образом, вы можете отправлять в StatsD датчики, потому что каждый из них может точно показать вам использование памяти за 10 секунд, что является периодом сброса по умолчанию в StatsD. Кроме того, вам не нужно использовать какой-либо метод агрегирования для этих метрик, потому что агрегация, как и сумма, не имеет никакого смысла.

Помимо вышеприведенного случая, у него так много вариантов использования для использования, как загрузка процессора, загрузка системы ОС, количество потоков в вашем процессе, количество онлайн-соединений на вашем сервере, количество активных транзакций прямо сейчас. в вашей торговой системе.

2) Иногда мы также можем использовать датчик, чтобы отслеживать время, когда что-то произошло. Как,

res, err := something()
if err != nil {
   statsd.Gauge("machine01.something.error", time.Now().Unix())
}

Так что, как только произошла ошибка, вы можете увидеть это, взглянув на строку своей графической панели. А также, вы можете анализировать и получать частоту появления событий, глядя на форму линии.

...