Grafana ve Prometheus Kullanarak Asp.Net Core Projelerini Nasıl Monitör Edebiliriz ?

Sefik Can Kanber
3 min readDec 31, 2021

Merhaba arkadaşlar,

Bu makalemde, yazdığımız API’lardaki trace’leri monitör edebildiğimiz Prometheus’dan ve Prometheus’u nasıl kullandığımızdan bahsedeceğim.

Grafana, açık kaynak kodlu bir veri görselleştirme web uygulamasıdır. Verilerinizi grafiklerde gösterip daha kolay yorumlamanızı sağlar.

Prometheus; Hangi portları dinlememiz gerektiğini, dinlediğimiz bu portlarda çalışan entegre sistemlerle (node_exporter vb.) neler yapabileceğimizi söyleyen bir monitoring tool’udur.

Prometheus ve Grafana Kurulumu

Prometheus ve Grafana’yı Docker üzerinden kullanacağım. Aşağıda, bu iki tool için oluşturduğum docker-compose dosyasını bulabilirsiniz.

Daha sonra, prometheus ayarlarını set etmek için yukarıda docker-compose’da da belirttiğimiz gibi docker-compose’umuzun olduğu dizinde prom isminde bir dosya oluşturalım. Ardından, içerisine prometheus.yml’ı oluşturup aşağıdaki şekilde düzenleyelim:

Artık her şey hazır! Şimdi docker-compose’umuzu çalıştırmamız yeterli.

docker-compose up -d

Yukarıdaki komutumuzun başarıyla çalışması sonrası;

port’larında çalışmaya başlayacaktır.

Şimdi basit bir api projesi oluşturalım ve projemizi bu tool’lar üzerinde monitör edelim.

dotnet new webapi -o GrafanaAndPrometheus

komutuyla bir web-api projesi oluşturalım.

Daha sonra, launchsettings.json’da ve docker-compose’umuzda belirttiğimiz gibi 5000 portunda uygulamamız çalışacak şekilde değişikliği yapalım.

“applicationUrl”: “http://localhost:5000",

Daha sonra projemize;

Install-Package prometheus-net.AspNetCore

paketini ekleyip, Program.cs içerisine gerekli olan aşağıdaki kodlarımızı ekleyelim.

app.UseRouting();
app.UseHttpMetrics();
app.MapMetrics();

Evet, her şey hazır! Şimdi projemizi çalıştıralım ve http://localhost:30090/targets url’ine gidelim.

Gördüğünüz gibi yaptığımız ayarlamalar başarılı şekilde çalışıyor.

http://localhost:5000/metrics adresine giderek Prometheus metric’lerini görebilirsiniz:

Resimdeki işaretli alanda, alınan istek sayısını gösteren “http_requests_received_total”ı görebilirsiniz.

Bu işlemi görsel olarak da görmek için http://localhost:30090/graph adresine gidip graph sekmesini seçerek de görebilirsiniz.

Bu sekmede ilk olarak;

  • Arama kutusuna http_requests_received_total ekleyelim ve istek sayısı bilgisini grafiğimizde görelim.

Ardından, http://localhost:30091 url’ine gidelim ve data source’umuzu doğru şekilde ekleyelim.

Burada, url bilgisini verirken docker üzerinden kurulumları yaptığımız için url formatımız “http://container_name:portşeklinde olmalıdır.

Daha sonra, New Dashboard>Add New Panel ile panelimizi ve sorgumuzu ekleyelim ve isim vererek kaydedelim.

--

--