Docker ile Sentry Kurulumu ve Spring Boot için Kullanımı

elifcan cakmak
Kod Gemisi
Published in
3 min readMar 1, 2018

Sentry, açık kaynaklı bir hata takip aracı. Sentry ile geliştiricilerinize zaman kaybetmeden logdaki hatalara göz atabileceği bir ortam sunabilirsiniz. Böylece geliştirdiğiniz uygulamalardaki sorunları da en kısa zamanda, son kullanıcıdan geri bildirim beklemek zorunda kalmadan çözebilir ve son kullanıcıya çok daha iyi bir deneyim sağlayabilirsiniz.

Docker ile Sentry Kurulumu

Öncelikle Sentry deposunu klonlamanız gerekiyor.

git clone https://github.com/getsentry/onpremise.git
mv onpremise sentry
cd sentry

Bu aşamadan sonra datayı kaybetmemek amacıyla mount edebilmek için lokalimizde bir data dizini oluşturup içinde sentry ve postgres isimli iki dizin oluşturuyoruz.

mkdir -p data/{sentry,postgres}

Ardından bir secret key oluşturuyoruz. Bunu da aşağıdaki komutla yapabiliriz.

docker-compose run --rm web config generate-secret-key

Burada ekrana basılan secret key’i docker-compose.yml dosyasına yapıştırıyoruz.

Ardından aşağıdaki komutla database’i oluşturuyoruz.

docker-compose run --rm web upgrade

Bu esnada bir kullanıcı oluşturmamız gerekiyor.

Bu kullanıcıyı superuser yaparak admin işlemlerini gerçekleştirebiliriz. Bundan sonra aşağıdaki komutla tüm servisleri ayağa kaldırıyoruz.

docker-compose up -d

Ardından Sentry’ye localhost:9000 portundan erişebiliriz.

Burada kurulumları tamamlıyoruz.

Spring Boot ile Sentry Kullanımı

Sentry arayüzünden projemizi oluşturuyoruz.

Projenin ayarlarından Client Keys (DSN) bölümüne gidiyoruz ve buradaki DSN bilgisini kopyalıyoruz. Bu bilgiyi daha sonra Spring uygulamamızı ayağa kaldırırken kullanacağız.

Ardından Spring projemizin pom.xml dosyasına aşağıdaki dependency’leri ekliyoruz.

<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry</artifactId>
<version>${sentry.version}</version>
</dependency>
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-logback</artifactId>
<version>${sentry.version}</version>
</dependency>

Yine pom.xml dosyasında properties altına aşağıdaki şekilde Sentry versiyon bilgisini ekliyoruz.

<sentry.version>1.5.3</sentry.version>

Bu aşamadan sonra src/main/resources altına aşağıdaki gibi bir logback.xml dosyası oluşturup ekliyoruz.

<configuration>
<appender name="Sentry" class="io.sentry.logback.SentryAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>

<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<include resource="org/springframework/boot/logging/logback/file-appender.xml"/>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="Sentry"/>
</root>
</configuration>

Son olarak uygulamamızı ayağa kaldırırken aşağıdaki komutla çalıştırıyoruz.

java -jar -Dsentry.dsn=http://115b0a1e3bd44a2dba11c093cf5105be:6f4627693489184183339c7e9b0c6@localhost:9000/2 -jar app.jar

Bu aşamadan sonra uygulamadaki hatalar projenin issues alanına düşmeye başlayacaktır.

Sentry ile yalnızca java projelerin değil, diğer bir çok dille yazılmış projelerin de hata takibini yapabilirsiniz. Resmi dokümanlara linkten ulaşabilirsiniz.

--

--