Sentry 入门
官网
可以使用官方SaaS版服务(功能有限),也可私有化部署
可以在官网注册,注册时可能需要翻墙,其他功能国内正常访问
功能
Sentry 是一个开源的应用内监控框架,可以帮助快速跟踪异常、诊断、修复线上问题,以及优化代码性能
可以跟踪前端到后端所有的服务中低性能 API 调用、数据库查询问题
操作流程
大概的操作流程参考如下:
-
注册
-
创建项目,获取 DSN
-
在本地应用内集成对应的 sentry sdk
-
运行应用并主动产生异常,sentry sdk 自动上报 sentry 服务
-
登录 sentry web 服务并查看 issues
-
收到异常邮件通知
集成平台
Platforms
sentry 针对多种语言及框架提供了 SDK,可直接在应用中方便集成。
Python
Python Platform
以Python为例,sentry 提供了 Django、ASGI、Celery、Tornado等多种框架的 SDK
安装 sdk:
$ pip install --upgrade sentry-sdk
Django 应用可以通过以下代码直接集成sentry功能,应用内的异常信息即可直接上报至 sentry服务:
import sentry_sdk from sentry_sdk.integrations.django import DjangoIntegration sentry_sdk.init( dsn="https://examplePublicKey@o0.ingest.sentry.io/0", integrations=[DjangoIntegration()], # Set traces_sample_rate to 1.0 to capture 100% # of transactions for performance monitoring. # We recommend adjusting this value in production, traces_sample_rate=1.0, # If you wish to associate users to errors (assuming you are using # django.contrib.auth) you may enable sending PII data. send_default_pii=True, # By default the SDK will try to use the SENTRY_RELEASE # environment variable, or infer a git commit # SHA as release, however you may want to set # something more human-readable. # release="myapp@1.0.0", )
产品模块
Organizations 组织
组织包含多个团队
Teams 团队
团队包含多个项目
Projects 项目
Sentry 是以项目对信息进行分组的,必须创建一个项目,每个应用绑定到一个项目(通过DSN),所有的应用内异常信息会上报到DSN对应的项目
Environments 环境
每个项目可以有多个环境,比如生成、测试、开发等
Issues 问题
问题页展示所有的异常信息, 可以根据项目、环境、时间、状态、所属责任人等条件进行过滤,可以查看每个issue的详情,
issue详情可以查看代码行级别的定位及上下文信息
Alerts 告警
可以创建、查看、应用告警规则(新的问题、出现频率、状态变更等)
如果项目绑定了一个或多个告警规则,且应用上报的信息满足规则,则触发告警通知
通知的方式默认为 邮件,也可以手动开启 Slack 等其他 Sentry 支持的方式
Performance Monitoring 性能监控
性能监控页展示展示了不同的 Transaction 即接口 的耗时、方法、TPM、P50、P95、失败率、用户等一些指标,可用通过项目、环境、时间、接口等多种条件多虑展示
Discover 发现
发现页默认展示 事件、错误、事务等信息的一个概览趋势,也可以自定义增加新的发现模块
Dashboard 仪表盘
可以查看多个项目对性能和错误数据,默认提供错误数、问题数、事件、影响用户、状态、错误地图等组件
也可以自定义新增仪表盘,定制仪表变需要展示的信息
私有化部署
硬件环境
私有化最低配置
-
4 核CPU
-
8 GB 内存
-
20 GB 硬盘