Skip to content

EwayJSC/sentry-java-integration

Repository files navigation

Các bước tích hợp sentry

1. Chọn logging framework

Sentry hỗ trợ một số logging framework như java.util.logging/Log4j 2.x/Logback/... Xem chi tiết tại đây: https://docs.sentry.io/clients/java/integrations/#logback

Project này đang sử dụng logback, các bước config bao gồm:

  • Thêm sentry-logback dependency vào build.gradle
    compile 'io.sentry:sentry-logback:1.7.30'
  • Tạo file logback.xml trong thư mục resources
    <configuration>
        <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <appender name="Sentry" class="io.sentry.logback.SentryAppender">
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>WARN</level>
            </filter>
            <encoder>
                <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <root level="INFO">
            <appender-ref ref="Console"/>
            <appender-ref ref="Sentry"/>
        </root>
    </configuration>

2. Config sentry

Có 3 cách để config các thuộc tính của Sentry:

Cách 1: Qua file sentry.properties

stacktrace.app.packages=io.x10.projectexample
dsn=https://06bb609eb55b49aebbce0497613b5082:6588b52febb1418f9d28b4f07090ff9b@sentry.eway.vn/77
environment=dev

Cách 2: Qua Java Environment Variables

Truyền giá trị các biến mà Sentry hỗ trợ với prefix sentry.

java -Dsentry.environment=production -Drelease=1.0 -jar build/libs/project-example-0.0.1-SNAPSHOT.jar

Cách 3: Qua biến môi trường

Biến môi trường mà Sentry có thể parse được chính là tên biến viết hoa kèm prefix SENTRY ở đầu, với các dấu . thay bằng _. Ví dụ sample.rate sẽ là SENTRY_SAMPLE_RATE

SENTRY_DSN=https://06bb609eb55b49aebbce0497613b5082:6588b52febb1418f9d28b4f07090ff9b@sentry.eway.vn/77 \ 
java -jar build/libs/project-example-0.0.1-SNAPSHOT.jar 

Các biến thường sử dụng

  • dsn: unique URI cho mỗi project - lấy giá trị này từ mục cài đặt trong sentry project
  • stacktrace.app.packages: Biến này giúp sentry highlight package của project này trên giao diện
  • release: định danh version hiện tại nhằm mục đích filter hoặc report lỗi theo bản release
  • environment: định danh môi trường, có thể dùng để filter alert - chỉ email khi environment = production
  • servername: tên server - có thể dùng để định danh node khi chạy nhiều container giúp tìm ra node gây lỗi (VD: servername=adflex-pro-306)
  • tags: các cặp key-value tuỳ chỉnh, ví dụ như commit hash. Truyền vào nhiều tag với pattern: tags=tag1:value1,tag2:value2

Xem thêm tại đây: https://docs.sentry.io/clients/java/config/#configuration-via-the-dsn

Chạy thử

Tạo project sentry tại sentry.io

Build project

gradle build

Chạy project

java -Dsentry.dsn=${YOUR_DSN} sentry.enviroment=production -jar build/libs/project-example-0.0.1-SNAPSHOT.jar

Hoặc sử dụng System Environment Variable

SENTRY_DSN=${YOUR_DSN} SENTRY_ENVIRONMENT=production java -jar build/libs/project-example-0.0.1-SNAPSHOT.jar

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages