Sentry实时错误追踪系统使用说明


在这里插入图片描述

一、Sentry简介

Sentry(哨兵)是一款应用错误跟踪系统,对软件系统运行过程中产生的错误日志进行收集从而实现监控告警。通过对应用的错误进行实时追踪并统一跟进,提高对错误的治理能力。让业务场景下自己发现Bug的速度快于用户报告Bug的速度。

使用场景描述:线上应用程序触发了一个bug,Sentry会立即发现错误,并通过邮件或其他基于通知规则的集成通知到相关责任人员,这个通知可以把我们引入到这个报错的Dashboard,为我们提供了快速分类问题所需的上下文,如:频率、用户影响、代码那一部分受到影响以及哪个团队可能是问题的所有者。进入报错详情会显示帮助我们调试的详细信息,比如堆栈跟踪、堆栈本地信息、前面的事件、可能导致问题的提交以及在错误发生时捕获的定制数据。我们还可以在JIRA或GitLab Issue等项目管理工具中自动开始跟踪问题。

那么,Sentry的原理是怎么样的呢?首先,应用要集成Sentry的SDK,然后在应用发生错误是将错误信息发送给Sentry服务端。Sentry的服务端分为web、cron、worker这几个部分,应用(客户端)发生错误后将错误信息上报给web,web处理后放入消息队列或Redis内存队列,worker从队列中消费数据进行处理,总体架构如下:

在这里插入图片描述

根据语言和框架的不同,我们可以选择自动或自定义设置特殊的错误类型报告给Sentry服务端。Sentry支持的语言类型很多,大体如下图所示,基本上主流的语言和框架都是支持的:

在这里插入图片描述

二、注册与登陆

1. 用户测试

用户在sentry登陆页面,点击注册按钮,使用自己的公司邮箱注册账号,完成后通知管理员将自己添加到对应的团队和项目当中。

在这里插入图片描述

2. 激活用户

管理员登陆到Sentry在“Admin/Users”界面中点击对应的用户

在这里插入图片描述

进到用户详情页面,勾选“激活/Active”以及其它授权,点击“保存更改”即可

在这里插入图片描述

3. 添加member

项目管理员可以将用户添加到团队/team,左菜单栏点击“Settings"-“Teams”-"Add Members”中添加已有用户到Team,如果用户不在系统中也可以点击“Add Member”邀请用户注册

在这里插入图片描述

输入新成员的行内邮箱,设置角色,并设置要加入的Team,点击“Add Member”即可

在这里插入图片描述

被邀请用户会收到邀请邮件,如下图所示,点击“Join your team”

在这里插入图片描述

并在浏览器弹出窗口中点击“创建新账号“,并在登录页面点击”注册”使用被邀请的邮箱注册账户即可

在这里插入图片描述

三、创建项目及配置告警

1. 创建项目

在设置或者主页当中都可以找到创建项目按钮,在创建项目页面输入项目名称和所属的团队Team,点击”创建项目即可

在这里插入图片描述

为项目选择对应的语言或框架,并输入项目的名称、注册到所在的团队Team,点击“Create Project"即可

在这里插入图片描述

进入项目配置页面,系统会给出接入指引

在这里插入图片描述

2. 应用告警配置

接下来,我们按照上一页指引,在自己的项目当中配置Sentry告警机制即可,大家可以自行建项目测试。这里几个建议:

(1)Sentry DSN配置从环境变量读取,线上配置DSN环境变量,避免线下开发调试模式频繁触发告警;

(2)配置项目的运行环境,方便线上将告警按照环境区分,环境配置规则:DEV/FAT/UAT/PROD。

以python flask应用为例:

import os
import sentry_sdk
from flask import Flask
from sentry_sdk.integrations.flask import FlaskIntegration

app = Flask(__name__)

sentry_sdk.init(
    dsn=os.environ.get('SENTRY_DSN'),
    environment=os.environ.get('RUNTIME_ENV', 'DEV'),
    integrations=[FlaskIntegration()],
)

如果不小心关闭了指引页面也没关系,指引可以在项目的”Settings"-"Error Tracking"中再次看到

3. 告警邮件

一旦线上触发了应用程序的报错,相关责任人会收到告警邮件,在邮件中会有该报错的一些基础信息,并可以点击”View on Sentry"在浏览器中进入Sentry页面查看详细信息

在这里插入图片描述

四、Sentry WEB使用

1. 查看项目列表

进入Sentry主页中点击左边栏”Project/项目“菜单,进入到项目列表

在这里插入图片描述

2. 查看报错Issue列表

上图中点击对应的Project项目,或者顶部下拉选择对应的项目,进入告警list页面,默认是Unresolved Issue List,可以筛选,也可以勾选对应的Issue设置是否解决、告警忽略等功能,并可以在右上角选择不同环境下的告警(如FAT/UAT)

在这里插入图片描述

3. 设置已解决及告警忽略
  • 如果某个Issue已经处理解决,在上图Issue列表中选择Issue并点击顶部栏”Resolved“按钮即可;
  • 如果某类型的告警频繁触发而你想要忽略它,在上图Issue列表中选择Issue并点击顶部栏的"Ignore"即可。
4. 查看Issue报错详情

点击Issue可以进去报错详情,可以看到详细的报错信息,如报错代码、Runtime信息以及一些Tag信息

在这里插入图片描述

5. 设置中文显示

用户登录系统后可以在右上角点开”Sentry“-”User Settings“,默认就是Account Detail页面,在Language栏下拉框中选择”Simplified Chinese“,提示成功后刷新页面即可。

在这里插入图片描述

6. 用户反馈

Sentry提供了在遇到错误时收集来自用户的其他反馈的功能。这在通常可能呈现简单错误页面(经典的500.html)的情况下尤其有用,这样可以将该反馈和报错Issue结合起来更有利于分析解决该报错。要收集反馈,可以使用可嵌入的JavaScript小部件,然后可以根据需要向用户显示,效果如下图所示:

在这里插入图片描述

在项目Project页面顶部选择“User-Feedback"的Tab页面,按照提示操作即可,需要对前后端代码都做一小点改动即可完成:

在这里插入图片描述

7. 集成GitLab

Sentry的GitLab集成可通过使用GitLab提交中的数据来帮助您更快地发现和修复错误。另外,您可以通过直接从Sentry创建GitLab Issue来简化分类过程。

(1)选择Issue

在这里插入图片描述

(2)进入到Issue报错页面右侧面板上的“链接的问题/Linked Issues”,然后单击“Link GitLab Issue

在这里插入图片描述

(3)创建GitLab Issue事件

  • 方法一:在弹出窗口“Create”选项卡中填写详细信息,然后单击“Create Issue”

在这里插入图片描述

  • 方法二:在弹出窗口单击“Link”选项卡,按名称搜索问题,然后单击“链接问题”。目前无法按号码搜索问题
    在这里插入图片描述

(4)解除与GitLab Issue关联

在Issue报错页面右边栏Linked Issues中点击X 即与GitLab Issue解除关联Unlink

在这里插入图片描述

8. 集成JIRA

Sentry可以集成JIRA,将Sentry中的错误与您的Jira问题联系起来。

具体可以参考文档:https://docs.sentry.io/workflow/integrations/global-integrations/#jira

9. 项目周报

每周Sentry会发送周报Weekly Report给到管理员邮箱,提供一些数据支持,也都可以在Sentry的Dashboard中查看。

参考资料:


  1. Sentry 官方文档

  2. centos7 docker方式部署sentry

  3. Sentry 入门实战

  4. Sentry服务-- 日志追踪的神器3:生产实战篇
    在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Sentry和Ranger是CDH中常用的细粒度授权管理工具,下面分别介绍它们的使用方法: 1. Sentry使用 (1)安装和配置Sentry 首先需要在CDH集群中安装和配置Sentry服务。具体安装和配置步骤可以参考CDH文档中的说明。 (2)创建角色和授权 可以使用Sentry提供的命令行工具或Web界面来创建角色和授权。例如,以下命令可以创建一个名为“finance_analyst”的角色,并将其授权访问表“my_table”: ``` $ sentry --command create-role --role finance_analyst $ sentry --command grant --role finance_analyst --privilege "server=server1->db=my_database->table=my_table->action=select" ``` (3)验证授权 创建角色和授权之后,可以使用授权用户的身份来验证授权是否生效。例如,可以使用以下命令来验证用户“user1”是否可以访问表“my_table”: ``` $ beeline -u jdbc:hive2://localhost:10000 -n user1 -e "select * from my_table" ``` 2. Ranger的使用 (1)安装和配置Ranger 首先需要在CDH集群中安装和配置Ranger服务。具体安装和配置步骤可以参考CDH文档中的说明。 (2)创建策略和条件 可以使用Ranger提供的Web界面来创建策略和条件。例如,可以创建一个策略,仅允许特定用户访问表“my_table”。在创建策略时,可以指定访问条件,例如“user=user1”。 (3)验证授权 创建策略之后,可以使用授权用户的身份来验证授权是否生效。例如,可以使用以下命令来验证用户“user1”是否可以访问表“my_table”: ``` $ beeline -u jdbc:hive2://localhost:10000 -n user1 -e "select * from my_table" ``` 综上所述,Sentry和Ranger的使用方法都比较简单,可以根据实际需求选择合适的工具来管理Hive数据表的访问权限。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值