Sentry集成钉钉

237 阅读2分钟

Sentry 是一个面向开发者的错误跟踪和性能监控平台,它帮助开发者快速定位和解决应用程序中的问题。通过可读的堆栈跟踪和可疑提交,Sentry 可以将错误和性能问题直接链接到有问题的代码行,从而提供更准确的错误定位 。

Sentry 的一些关键特点和功能:

  1. 错误跟踪:Sentry 可以自动检测应用程序中的错误,并提供详细的错误信息,包括堆栈跟踪和用户上下文 。
  2. 性能监控:Sentry 提供详细的性能监控,帮助开发者识别应用程序中的慢速和资源密集操作 。
  3. 事件聚合:Sentry 将相似的错误聚合到一个问题中,便于识别和分析应用程序中的模式 。
  4. 问题跟踪:Sentry 允许开发者跟踪问题并将其分配给团队成员进行解决。
  5. 实时警报:Sentry 在检测到新错误时提供实时警报,使开发者能够迅速响应问题 。
  6. 源代码管理集成:Sentry 可以与源代码管理工具集成,使开发者能够直接查看有问题的代码行 。

Sentry安装

  • Docker安装:

  • 安装命令

    • cd /opt

    • mkdir sentry

    • chmod 755 sentry

    • 克隆Sentry

      • 安装指定版本(推荐):git clone -b 23.12.1 --single-branch https://github.com/getsentry/self-hosted.git
      • 安装最新版本(不推荐,存在CSRF Verification Failed问题: git clone https://github.com/getsentry/self-hosted.git
    • cd self-hosted

    • 安装: ./install.sh

    • 等待安装完成,执行(需要再目录 self-hosted 下 ): docker compose up -d

    • 创建账户: docker-compose run --rm web createuser --superuser --force-update

  • 访问 :xxx.xxx.xxx.xxx:9000/

    • 登录若遇到下图情况, 等待浏览器加载即可
      image.png
  • 参考资料:
    Self-Hosted Sentry
    Docker私有化部署Sentry

钉钉集成

  • 插件: sentry-dingding
  • 集成步骤
    • 进入安装目录 : cd /opt/sentry/self-hosted/sentry
      • 创建文件: vim enhance-image.sh
      • 文件赋权: chmod 755 enhance-image.sh
      • 文件编辑: 打开文件后,添加依赖 pip install sentry-dingding
#!/bin/bash
# Enhance the base $SENTRY_IMAGE with additional dependencies, plugins - see https://github.com/getsentry/self-hosted#enhance-sentry-image
apt-get update
apt-get install -y gcc libsasl2-dev python-dev libldap2-dev libssl-dev
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sentry-dingding
  • 进入安装目录 : cd opt/sentry/self-hosted

    • 停止: docker compose down
    • 重新build: ./install.sh
    • 启动: docker compose up -d
  • Sentry 界面查看集成插件
    image.png

  • 项目中启用插件

    • 启用
      image.png
    • 配置钉钉Token image.png

整合Logback

参看文档:Sentry integration Logback

jar包引入

<dependency>
  <groupId>io.sentry</groupId>
  <artifactId>sentry-logback</artifactId>
  <version>7.6.0</version>
</dependency>

整合logback

  • 添加Sentry配置

    <appender name="Sentry" class="io.sentry.logback.SentryAppender">
          <options>
              <dsn>http://xxx@xxx.xx.xx.xxx:9000/2</dsn>
          </options>
          <encoder>
              <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
          </encoder>
      </appender>
    
    • 默认配置日志级别为ERROR,调整日志级别参数

      <!-- Optionally change minimum Event level. Default for Events is ERROR -->
      <minimumEventLevel>WARN</minimumEventLevel>
      <!-- Optionally change minimum Breadcrumbs level. Default for Breadcrumbs is INFO -->
      <minimumBreadcrumbLevel>DEBUG</minimumBreadcrumbLevel>
      
  • 日志输出到Sentry

    <root level="INFO">
      <appender-ref ref="Sentry" />
    </root>
    
  • 效果
    ERROR级别的日志将被发送到Sentry中 image.png