Работал ли с Graphite

«Работал ли с Graphite» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал. Graphite — это инструмент для мониторинга и визуализации метрик. В Go можно отправлять метрики через протоколы Carbon (TCP/UDP) или HTTP API.

Пример отправки метрики через Carbon (TCP):

conn, err := net.Dial("tcp", "graphite.example.com:2003")
if err != nil {
    log.Fatal(err)
}
defer conn.Close()

metric := fmt.Sprintf("app.requests.count %d %dn", 42, time.Now().Unix())
_, err = conn.Write([]byte(metric))
if err != nil {
    log.Fatal(err)
}

Также использовал библиотеки вроде go-graphite-client для удобной работы. Graphite удобен для хранения и анализа временных рядов, но требует настройки агрегации и retention-политик.