Как плагин для телеграфа типа [[input.mem]] извлекает данные? - PullRequest
0 голосов
/ 30 октября 2019

Когда нам нужна статистика, связанная с памятью, мы добавляем плагин ввода в файл telegraf.conf.

[[inputs.mem]] 
  • Для статистики приложения мы сохраняем ввод как statsd, мы передаем статистику из приложения, используя UDP, в телеграф, используяего хост и порт.
[[inputs.statsd]]

Может кто-нибудь объяснить, как [[inputs.mem]] входные плагины получают данные, связанные с памятью? Потому что в этом случае никто не передает данные телеграфу.

1 Ответ

0 голосов
/ 10 ноября 2019

Telegraf извлекает системные данные, используя системные библиотеки, написанные для Go. В настоящее время он использует библиотеку gopsutil . Ссылка на эту библиотеку выше содержит пример того, как ее можно использовать в любой программе Go.

func main() {
    v, _ := mem.VirtualMemory()

    // almost every return value is a struct
    fmt.Printf("Total: %v, Free:%v, UsedPercent:%f%%\n", v.Total, v.Free, v.UsedPercent)

    // convert to JSON. String() is also implemented
    fmt.Println(v)
}

Эта библиотека поддерживает ряд различных операционных систем и содержит модули для различной системной информации, такой как процессор, память, диск и использование сети. Вы можете увидеть, где они включены в телеграфный проект здесь .

...