Monitoring için çok fazla tool
mevcut. Graphite bu toolara iyi bir alternatif. Buradan farklı protokoller ile nasıl veri aktarılır bilgisine erişebilirsiniz.
Makinaları monitör etmenin yanında bazı olayları da gözlemlemek gerekiyor. Ben bunun için en basit şekli ile plaintext protocol
'den bahsetmek istiyorum.
Sürüm gönderme sürecinizin sonunda tek satır ile bu bilgiyi Graphite'a yani aslında Carbon
'a gönderebilirsiniz. Graphite
'in storage backend
dediğimiz deamon
'larına Carbon
deniyor.
*nix
sistemlerde nc
yani netcat
kullanarak Carbon
'a socket
bağlantısı kurup veri yollayabiliyoruz. Bağlantı kurulduktan sonra dikkat edilmesi gereken tek şey verinin şu formatta olması: <metric path> <metric value> <metric timestamp>
Bağlantı kurmaktan kastım ise; Carbon
'un plaintext backend'i için default
port
değeri 2003
. host
ve port
bilgisini nc
komutuna parametre olarak geçmek.
Şu komut bunların hepsini yapıyor.
SERVER=your-graphite-host.com
PORT=2003
echo "path.to.event 1 `date +%s`" | nc -q0 ${SERVER} ${PORT}
-q0
parametresi OpenBSD
için bağlantıdan sonra socket bağlantısının kapatılmasını söylüyor. Bu parametre GNU
için -c
Bu bilgiyi gönderdikten sonra kullanmak için grafiklere söyle birşey eklenebilir.
[
{
"target": [
"lineWidth(drawAsInfinite(release.prod.*.success),2))"
],
"title": "All Successful Prod Releases"
}
]
drawAsInfinite
release bilgilerini başka metricler ile aynı grafik üzerinde kullanmak için faydalı, çünkü dikine bir çizgi olarak gözücekler. Aşağıdaki örnek biraz daha fikir verebilir.
[
{
"target": [
"my-server-name.load.load.shortterm",
"drawAsInfinite(release.prod.web.success)"
],
"lineWidth": "2",
"hideLegend": "true"
}
]