Рубрики
Без рубрики

Часовой с пружинным ботинком

После написания этой статьи я пересмотрел свой подход. Подробности см. в этой последующей статье. То… Помечен как java, sentry, spring, reporting.

После написания этой статьи я пересмотрел свой подход. Подробности см. в этой последующей статье . Приведенный ниже подход по-прежнему работает, с некоторыми оговорками.

Мы тестируем Sentry для оповещения об ошибках в Focused Labs, и я хотел настроить его в своем бэкэнде Spring Boot. По большей части Sentry было очень легко добавить в проект, но я столкнулся с несколькими небольшими проблемами с интеграцией Spring Boot, которыми я хотел поделиться с сообществом.

Я буду краток, вот что у меня получилось:

build.gradle.kts :

implementation("io.sentry:sentry-spring-boot-starter:1.7.30")
implementation("io.sentry:sentry-logback:1.7.30")

В некоторых сценариях это может привести к повторяющимся ошибкам. Официальные документы предостерегают от включения как sentry-spring (который извлекается с помощью sentry-spring-boot-starter ), так и sentry-logback . Что имеет смысл, поскольку интеграция Spring с Sentry обрабатывает исключения и отправляет их в Sentry, а интеграция Logback просматривает журналы, а затем отправляет их в Sentry.

Мы используем GraphQL в нашем бэкэнде, поэтому поведение sentry-spring не улавливало наши исключения, поскольку они улавливают исключительно ошибки в контексте контроллера MVC. Тем не менее, потенциально исключение будет одновременно регистрироваться и перехватываться обработчиком исключений Sentry, что приведет к повторяющейся ошибке. Если это станет проблемой, мне придется пересмотреть свои зависимости.

Вот почему я беспокоюсь о часовой-пружинный-загрузочный-стартер

приложение.yaml :

---
sentry:
  dsn: ''
  stacktrace:
    app-packages:
      - com.mypackage
spring:
  profiles:
    active: dev
--------
spring:
  profiles: dev
sentry:
  enabled: false
  environment: dev
--------
spring:
  profiles: production
sentry:
  environment: production

Сладкий, сладкий ЯМЛ.

Благодаря поддержке конфигурации в/| sentry-spring-boot-starter Я могу просто найти свою конфигурацию Sentry прямо рядом с остальной частью моей конфигурации Spring Boot.

logback-spring.xml :


    
    
        
            WARN
        
    

    
        
        
        
    

Используя include здесь, я могу перейти к конфигурации журнала загрузки Spring по умолчанию и переопределить только то, что мне абсолютно необходимо. В этом случае добавление дополнительного добавляется к root logger.

И это все! Это выглядит просто, когда изложено здесь, но потребовалось несколько итераций, чтобы все заработало. Надеюсь, это поможет другим людям в том же процессе.

Оригинал: “https://dev.to/focusedlabs/sentry-with-spring-boot-1jko”