Sentry 是一个面向开发者的错误跟踪和性能监控平台,它帮助开发者快速定位和解决应用程序中的问题。通过可读的堆栈跟踪和可疑提交,Sentry 可以将错误和性能问题直接链接到有问题的代码行,从而提供更准确的错误定位 。
Sentry 的一些关键特点和功能:
- 错误跟踪:Sentry 可以自动检测应用程序中的错误,并提供详细的错误信息,包括堆栈跟踪和用户上下文 。
- 性能监控:Sentry 提供详细的性能监控,帮助开发者识别应用程序中的慢速和资源密集操作 。
- 事件聚合:Sentry 将相似的错误聚合到一个问题中,便于识别和分析应用程序中的模式 。
- 问题跟踪:Sentry 允许开发者跟踪问题并将其分配给团队成员进行解决。
- 实时警报:Sentry 在检测到新错误时提供实时警报,使开发者能够迅速响应问题 。
- 源代码管理集成:Sentry 可以与源代码管理工具集成,使开发者能够直接查看有问题的代码行 。
Sentry安装
-
Docker安装:
- 安装Docker: 安装Docker教程
- docker-compose安装:
yum install docker-compose
-
安装命令
-
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- 问题讨论: CSRF Verification Failed
- 安装指定版本(推荐):
-
cd self-hosted
-
安装: ./install.sh
-
等待安装完成,执行(需要再目录 self-hosted 下 ): docker compose up -d
-
创建账户: docker-compose run --rm web createuser --superuser --force-update
-
-
- 登录若遇到下图情况, 等待浏览器加载即可
- 登录若遇到下图情况, 等待浏览器加载即可
钉钉集成
- 插件: sentry-dingding
- 集成步骤
- 进入安装目录 : cd /opt/sentry/self-hosted/sentry
- 创建文件: vim enhance-image.sh
- 文件赋权: chmod 755 enhance-image.sh
- 文件编辑: 打开文件后,添加依赖
pip install sentry-dingding
- 进入安装目录 : cd /opt/sentry/self-hosted/sentry
#!/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 界面查看集成插件
-
项目中启用插件
- 启用
- 配置钉钉Token
- 启用
整合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中