Go dilinde yazılmış bir load avarage hook sistemi

Merhabalar,

Bazı zamanlarda load balancer tetiklemek için referans olarak request sayısı yerine sunucu yükünü referans almamız gerekebiliyor. Bu tür durumlarda sunucu yükü belirlenen eşik kuralına ulaşınca bir request atan basit bir uygulama geliştirdik.

Açık kaynak kodlu bu yazılım MIT lisansına sahiptir.

Kurulum için GO kurulu olan bir bilgisayarın gopath içerisinde ilgili dizine uygulamayı çekerek

bash deploy.sh IPADRESINIZ

şeklinde kurulumu tamamlayabilirsiniz. Kurulum tamamlandığında uygulama bir servis olarak çalışacaktır.

systemctl status loadhook

şeklinde servisi görüntüleyebilir, kapatabilir ve yeniden başlatabilirsiniz.

Configurasyon dosyası /etc/loadhook.conf dizininde olacaktır.

Deployment sonrası loadhook.conf dosyasını kendinize göre uyarlayabilirsiniz.

Örnek;

load_limit=10

Load seviyesinin 10 ve üzeri olmasında hook tetiklenecektir.

webhook=“http://examlple.com/api/load?key=value

Hook tetiklendiğinde request atacağı URL adresini belirtmeniz gerekir.

method=“POST”

Hook tetiklendiğinde webhook üzerindeki URL adresine hangi method ile request yapılacağı bu kısımda belirlenir.

insecure=true

Eğer ki TLS doğrulamaya ihtiyacınız yok ise bu özelliği aktif edebilirsiniz.

standby=60000

Milisaniye cinsinden belirlenen standby alanı request yapıldıktan sonra yeniden bir işlem yapmak için bekleme süresini belirtir. Eğer ki bu süre zarfında load düşer ve tekrar yükselir ise standby süresi içerisinde ise yeni bir request yapılmaz.

Umarım uygulama faydalı olur.

Mutlu günler.

9 Likes

Ellerine sağlık Osman hocam.