İlk olarak, Python’da Prometheus’un sağladığı
prometheus_client kütüphanesini kullanmak en pratik yoldur. Bu kütüphane, metrikleri tanımlama, güncelleme ve HTTP endpoint üzerinden sunma işlemlerini kolayca gerçekleştirir. Metrikleri tanımladıktan sonra, genellikle bir HTTP sunucusu kurar ve belirli bir portta bu metrikleri expose edersiniz. Örneğin, CPU kullanımı veya özel uygulama metrikleri gibi.
Örneğin, yeni bir gauge metriği oluşturup güncellemek için şu adımlar izlenir:
prometheus_client kütüphanesini yükle: pip install prometheus_client- Metrikleri tanımla ve güncelle:
1234567891011121314import psutil
from prometheus_client import Gauge, start_http_server
cpu_usage = Gauge('custom_cpu_usage', 'CPU kullanım oranı')
def collect_metrics():
cpu = psutil.cpu_percent()
cpu_usage.set(cpu)
if [b]name[/b] == '[b]main[/b]':
start_http_server(8000)
while True:
collect_metrics()
time.sleep(5)
Burada,
start_http_server ile belirlediğiniz portta metrikleriniz erişilebilir hale gelir. Bu noktada önemli olan, metrikleri düzenli olarak güncelleyerek gerçek zamanlı izleme sağlamaktır.
Hata ve performans sorunlarını önlemek adına, metrikleri doğru yapıda ve thread-safe şekilde güncellemek, ayrıca endpoint erişim güvenliğine dikkat etmek gerekir. Ayrıca, exporter’ınızı Prometheus konfigürasyonunuza eklemeden önce, uygun port ve endpoint erişim izinlerini ayarlamak önemlidir.
Kendi özel exporter’ınızı geliştirmek, sisteminizin veya uygulamanızın performansını detaylı ve gerçek zamanlı izleme imkanını artırır. Sizce, hangi metrikleri toplamak ve izlemek en çok fayda sağlar? Kendi deneyimleriniz veya karşılaştığınız sorunlar nelerdir?