Laravel 集成 Sentry 搭建本地服务

386 阅读1分钟

版本信息

Mac OS X version 10.15.7
Laravel version 8.20.1
PHP version 7.3.21
Docker version 20.10.2
docker-compose version 1.27.4

安装docker

1.通过链接:https://desktop.docker.com/mac/stable/Docker.dmg 
    下载 Docker Desktop for Mac
2.下载完后安装并点击运行docker
3.运行docker后打开终端输入是否启动成功
    docker --version  // 查看docker 版本信息

安装docker-compose

1. 这里推荐使用 Python 的 pip 管理工具来安装 docker-compose
    sudo pip3 install -U docker-compose // 我这里系统默认的是pip3
2. 使用下面命令测试是否安装成功
    docker-compose --version  // 查看docker-compose版本信息

搭建Sentry本地服务

1. 从 GitHub 上面获取最新的 sentry
   git clone https://github.com/getsentry/onpremise.git
2. 进入 clone 下来的目录执行
   mkdir -p data/{sentry,postgres} 
3. 获取项目的key,并记录下该key值
   docker-compose run --rm web config generate-secret-key // 该过程可能会提示你docker缺少一些volume,按提示创建即可
4. 复制获取到的 key 字符串,编辑 docker-compose.yml
5. 在 docker-compose.yml 找到:environment 在其下方添加
    SENTRY_SECRET_KEY: 4g!#0nd)&d%ni3(-m*z42kci74x8w)06#y=xdp_j&rkoz6ux7p // 项目key值
   SENTRY_MEMCACHED_HOST: memcached
   SENTRY_REDIS_HOST: redis
6. 然后执行安装文件
   ./install.sh
7. 创建项目的 superuser
   docker-compose run --rm web upgrade // 该过程会输入 用户邮箱 和密码等一些信息
8. 开启 sentry 服务
   docker-compose up -d 
9. 输入:http://localhost:9000 访问sentry

laravel集成Sentry服务

1. 引入 laravel-sentry 包
 composer require sentry/sentry-laravel
 
2. 在 App/Exceptions/Handler.php中 添加 sentry report
  public function report(Throwable $exception)
  {
    if ($this->shouldReport($exception) && app()->bound('sentry')) {
        app('sentry')->captureException($exception);
    }

    parent::report($exception);
  }
 
3. 发布 sentry 配置
  php artisan sentry:publish --dsn=http://5b39d8e08b094d89b580fcf84b240efc@localhost:9000/2 // 你的sentry项目的dsn秘钥 可在sentry的project找到对应的dsn
  
4. 编写代码进行测试