• 项目监控之sentry X


    github: https://github.com/getsentry/sentry

     

    1.什么是sentry?

    当我们完成一个业务系统的上线时,总是要观察线上的运行情况,对于每一个项目,我们都没办法保证代码零BUG、零报错,即便是经历过测试,因为测试永远无法做到100%覆盖,用户也不会总是按照我们所预期的进行操作,在上线后也会出现一些你预料不到的问题,而这种情况下,广大的用户其实才是最好的测试者。当生产环境中产生了一个 bug 时,如何做到迅速报警,找到问题原因,修复后又如何在线上验证?此时我们需要一个高效的错误监控系统。sentry扮演着一个错误收集的角色,将你的项目和sentry结合起来,无论谁在项目使用中报错,sentry都会第一次时间通知开发者,我们需要在系统异常时主动对其进行收集上报,出现了什么错误,错误出现在哪,帮你记录错误,以制定解决方案并进行优化迭代。

    sentry是一个基于Django构建的现代化的实时事件日志监控、记录和聚合平台,主要用于如何快速的发现故障。支持几乎所有主流开发语言和平台,并提供了现代化UI,它专门用于监视错误和提取执行适当的事后操作所需的所有信息,而无需使用标准用户反馈循环的任何麻烦。官方提供了多个语言的SDK.让开发者第一时间获悉错误信息,并方便的整合进自己和团队的工作流中.官方提供saas版本免费版支持每天5000个event.

    sentry支持自动收集和手动收集两种错误收集方法.我们能成功监控到vue中的错误、异常,但是还不能捕捉到异步操作、接口请求中的错误,比如接口返回404、500等信息,此时我们可以通过Sentry.caputureException()进行主动上报。使用sentry需要结合两个部分,客户端与sentry服务端;客户端就像你需要去监听的对象,比如公司的前端项目,而服务端就是给你展示已搜集的错误信息,项目管理,组员等功能的一个服务平台。

    这个平台可以自己搭建,也可以直接使用sentry提供的平台(注册可用),当然如果是公司项目,当然推荐自己搭建.

    [安装]

    安装较为较为简单,略过

    [使用]

    PHP

      Yii2:

    安装:
    composer require notamedia/yii2-sentry
    
    配置:
    return [
        'components' => [
            'log' => [
                'traceLevel' => YII_DEBUG ? 3 : 0,
                'targets' => [
                    [
                        'class' => 'notamedia\sentry\SentryTarget',
                        'dsn' => 'http://2682ybvhbs347:235vvgy465346@sentry.io/1',
                        'levels' => ['error', 'warning'],
                        // Write the context information (the default is true):
                        'context' => true,
                        // Additional options for `Sentry\init`:
                        'clientOptions' => ['release' => 'my-project-name@2.3.12']
                    ],
                ],
            ],
        ],
    ];
    
    
    使用:
    \Yii::error('message', 'category');

    更多使用:https://github.com/notamedia/yii2-sentry

    Python

      Django:

    [安装]
    pip install --upgrade sentry-sdk
    
    [配置]
    配置文件(settings.py)中添加:
    import sentry_sdk
    from sentry_sdk.integrations.django import DjangoIntegration
    
    sentry_sdk.init(
        dsn="http://0576e29050c84754a9b8ed43de558741@47.106.98.206:9000/5",
        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
    environment="dev" # 添加环境变量 )


    urls.py中
    from django.urls import path
    
    def trigger_error(request):
        division_by_zero = 1 / 0
    
    urlpatterns = [
        path('sentry-debug/', trigger_error),
        # ...
    ]
     
  • 相关阅读:
    万亿级大数据平台的建设实践
    Java开发中的23种设计模式
    FileZilla更新服务器文件后浏览器没有刷新的一种常见情况
    Docker PHP7官方镜像安装Redies扩展
    Docker PHP7官方镜像安装Redies扩展
    Docker PHP7官方镜像安装Redies扩展
    Docker PHP7官方镜像安装Redies扩展
    iOS9.2.1 App从AppStore上下载闪退问题
    iOS9.2.1 App从AppStore上下载闪退问题
    iOS9.2.1 App从AppStore上下载闪退问题
  • 原文地址:https://www.cnblogs.com/xingxia/p/sentry.html
Copyright © 2020-2023  润新知