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)
}
Эта библиотека поддерживает ряд различных операционных систем и содержит модули для различной системной информации, такой как процессор, память, диск и использование сети. Вы можете увидеть, где они включены в телеграфный проект здесь .