망원경 애플리케이션 디버깅 도구
- 망원경 업데이트
- 맞춤형 데이터 마이그레이션
- 구성
- 대시보드 인증
- 필터링
- 싱글 필터링
- 일괄 필터링
- 모니터링 가능
- 데이터 모니터링
- 예외 모니터링
- Gate 모니터링
- 프로세스 모니터링
- 로그 모니터링
- 메일 모니터링
- 모델 모니터링
- 메시지 알림 모니터링
- 데이터 쿼리 모니터링
- Redis 모니터링
- 요청 모니터링
- 모니터링 예약
Laravel Telescope
Introduction
Larave Telescope는 Laravel 프레임워크를 위한 우아한 디버깅 도우미입니다. Telescope는 애플리케이션으로 들어오는 요청, 예외, 로그 항목, 데이터베이스 쿼리, 대기 중인 작업, 이메일, 알림, 캐시 작업, 예약된 작업, 변수 덤프 등에 대한 통찰력을 제공합니다. Telescope는 로컬 Laravel 개발 환경의 훌륭한 동반자입니다.
Installation
Composer를 사용하여 Laravel 프로젝트에 Telescope 확장 프로그램을 설치할 수 있습니다.
composer require laravel/telescope
Telescope를 설치한 후 Artisan에서
telescope:install
명령을 사용하여 확장 프로그램을 구성할 수 있습니다. 사례. Telescope를 설치한 후migration
명령도 실행해야 합니다:telescope:install
命令来配置扩展实例。安装 Telescope 后,还应运行migrate
命令:php artisan telescope:install php artisan migrate
更新 Telescope
更新 Telescope 时,您应该重新配置加载 Telescope 实例:
php artisan telescope:publish
仅在特定环境中安装
如果您打算仅使用 Telescope 来协助您的本地开发。可以使用
--dev
标志安装 Telescope:composer require laravel/telescope --dev
运行
telescope:install
后,您应该从app
配置文件中删除TelescopeServiceProvider
服务提供注册。相反,在AppServiceProvider
的register
方法中手动注册服务:use Laravel\Telescope\TelescopeServiceProvider; /** * 注册应用服务。 * * @return void */public function register(){ if ($this->app->isLocal()) { $this->app->register(TelescopeServiceProvider::class); } }
定制数据迁移
如果您不打算使用 Telescope 的默认迁移,则应该在
AppServiceProvider
的register
方法中调用Telescope::ignoreMigrations
方法。您可以使用php artisan vendor:publish --tag=telescope-migrations
命令导出默认迁移。配置
使用 Telescope,其主要配置文件将位于
config/telescope.php
。此配置文件允许您配置监听程序选项,每个配置选项都包含其用途说明,因此请务必彻底浏览此文件。如果需要,您可以使用
enabled
配置选项完全禁用 Telescope 的数据收集:'enabled' => env('TELESCOPE_ENABLED', true),
数据修改
有了数据修改,
telescope_entries
表可以非常快速地累积记录。为了缓解这个问题,你应该使用 Artisan 每天运行telescope:prune
命令:$schedule->command('telescope:prune')->daily();
默认情况下,将获取超过 24 小时的所有数据。在调用命令时可以使用
hours
选项来确定保留 Telescope 数据的时间。例如,以下命令将删除 48 小时前创建的所有记录:$schedule->command('telescope:prune --hours=48')->daily();
仪表板授权
Telescope 在
/telescope
处显示仪表板。默认情况下,您只能在本地
环境中访问此仪表板。在你的app/Providers/TelescopeServiceProvider.php
文件中,有一个gate
/** * 註冊 Telescope Gate。 * * 使用 Gate 决定谁可以在非本地环境中访问 Telescope。 * * @return void */ protected function gate(){ Gate::define('viewTelescope', function ($user) { return in_array($user->email, [ 'taylor@laravel.com', ]); }); }
Update Telescope
Telescope를 업데이트할 때 로드된 Telescope 인스턴스를 재구성해야 합니다:/** * 注册应用服务。 * * @return void */ public function register(){ $this->hideSensitiveRequestDetails(); Telescope::filter(function (IncomingEntry $entry) { if ($this->app->isLocal()) { return true; } return $entry->isReportableException() || $entry->isFailedJob() || $entry->isScheduledTask() || $entry->hasMonitoredTag(); }); }
에서만 특정 환경
에 설치하십시오. Telescope를 로컬 개발 지원 목적으로만 사용하려는 경우. 망원경은--dev
플래그를 사용하여 설치할 수 있습니다:use Illuminate\Support\Collection; /** * 注册应用服务。 * * @return void */ public function register(){ $this->hideSensitiveRequestDetails(); Telescope::filterBatch(function (Collection $entries) { if ($this->app->isLocal()) { return true; } return $entries->contains(function ($entry) { return $entry->isReportableException() || $entry->isFailedJob() || $entry->isScheduledTask() || $entry->hasMonitoredTag(); }); }); }
telescope:install
을 실행한 후app
구성에서를 제거해야 합니다. 파일 TelescopeServiceProvider
서비스 제공업체 등록. 대신AppServiceProvider
의register
메소드에서 서비스를 수동으로 등록하세요.'watchers' => [ Watchers\CacheWatcher::class => true, Watchers\CommandWatcher::class => true, ... ],
맞춤형 데이터 마이그레이션
Telescope의 기본 마이그레이션을 사용할 계획이 없다면
🎜AppServiceProvider
의register
메서드에서Telescope::ignoreMigrations
메서드를 호출해야 합니다. .php artisan Vendor:publish --tag=telescope-migrations
명령을 사용하여 기본 마이그레이션을 내보낼 수 있습니다.구성
🎜Telescope를 사용하기 위한 주요 구성 파일은config/telescope.php
에 있습니다. 이 구성 파일을 사용하면 리스너 옵션을 구성할 수 있으며, 각 구성 옵션에는 해당 목적에 대한 설명이 포함되어 있으므로 이 파일을 자세히 살펴보시기 바랍니다. 🎜🎜원하는 경우enabled
구성 옵션을 사용하여 Telescope의 데이터 수집을 완전히 비활성화할 수 있습니다: 🎜'watchers' => [ Watchers\QueryWatcher::class => [ 'enabled' => env('TELESCOPE_QUERY_WATCHER', true), 'slow' => 100, ], ... ],
🎜🎜🎜데이터 수정
🎜 데이터 수정을 통해telescope_entries
테이블에 레코드가 매우 빠르게 축적될 수 있습니다. 이 문제를 완화하려면 Artisan을 사용하여 매일telescope:prune
명령을 실행해야 합니다. 🎜'watchers' => [ Watchers\CommandWatcher::class => [ 'enabled' => env('TELESCOPE_COMMAND_WATCHER', true), 'ignore' => ['key:generate'], ], ... ],
🎜기본적으로 24시간보다 오래된 모든 데이터를 가져옵니다. 망원경 데이터가 보존되는 기간을 결정하기 위해 명령을 호출할 때hours
옵션을 사용할 수 있습니다. 예를 들어 다음 명령은 48시간 전에 생성된 모든 레코드를 삭제합니다. 🎜'watchers' => [ Watchers\GateWatcher::class => [ 'enabled' => env('TELESCOPE_GATE_WATCHER', true), 'ignore_abilities' => ['viewNova'], ], ... ],
🎜🎜🎜🎜Dashboard Authorization🎜🎜Telescope/telescope
에서 대시보드를 표시합니다. 기본적으로 이 대시보드는로컬
환경에서만 액세스할 수 있습니다.app/Providers/TelescopeServiceProvider.php
파일에는gate
메서드가 있습니다. 이 승인은 🎜비로컬🎜 환경에서 Telescope에 대한 액세스를 제어합니다. 망원경 설치 및 액세스에 필요한 경우 이 권한 제한을 자유롭게 수정할 수 있습니다. 🎜'watchers' => [ Watchers\ModelWatcher::class => [ 'enabled' => env('TELESCOPE_MODEL_WATCHER', true), 'events' => ['eloquent.created*', 'eloquent.updated*'], ], ... ],
🎜🎜🎜🎜🎜Filtering🎜🎜🎜🎜🎜단일 항목 필터링
TelescopeServiceProvider
에 등록된filter
콜백을 통해 Telescope에서 기록한 데이터를 필터링할 수 있습니다. 기본적으로 이 콜백은로컬
환경의 모든 데이터뿐만 아니라 예외, 프로세스 중단, 예약된 작업 및 기타 모든 환경의 모니터링 플래그가 있는 데이터를 기록합니다.TelescopeServiceProvider
中注册的filter
回调来过滤 Telescope 记录的数据。默认情况下,此回调会记录本地
环境中的所有数据以及所有其他环境中的异常、进程中断、计划任务和带有受监控标记的数据:'watchers' => [ Watchers\QueryWatcher::class => [ 'enabled' => env('TELESCOPE_QUERY_WATCHER', true), 'slow' => 50, ], ... ],
批量过滤
虽然
filter
回调过滤单个条目的数据,但您可以使用filterBatch
方法注册一个回调,该回调过滤给定请求或控制台命令的所有数据。如果回调返回true
,则所有数据都由 Telescope 记录:'watchers' => [ Watchers\RequestWatcher::class => [ 'enabled' => env('TELESCOPE_REQUEST_WATCHER', true), 'size_limit' => env('TELESCOPE_RESPONSE_SIZE_LIMIT', 64), ], ... ],
可用的监听
当在控制台执行命令或处理请求时,Telescope 监听器会收集应用程序数据。您可以在
rrreeeconfig/telescope.php
配置文件中自定义要启用监听项的列表:一些监听器还允许您提供其他自定义选项:
rrreee缓存监听
当缓存键被命中、遗漏、更新和遗忘时,缓存监听器会记录数据。
命令监听
只要执行 Artisan 命令,命令监听器就会记录参数、选项、退出代码和输出。如果您想排除监听器记录的某些命令,您可以在
rrreeeconfig/telescope.php
文件的ignore
选项中指定命令:数据监听
数据监听器在 Telescope 中记录并显示您的数据变量。使用 Laravel 时,可以使用全局
dump
函数输出变量。必须在浏览器中打开数据监听器选项卡,才能进行输出变量,否则监听器将忽略此次输出。事件监听
事件监听器记录应用程序调度的任何事件的有效负载、监听器和广播数据。事件监听器忽略了 Laravel 框架的内部事件。
异常监听
异常监听器记录应用程序引发的任何可报告异常的数据和堆栈跟踪。
Gate 监听
Gate 监听器记录您的应用程序的 Gate 和策略检查的数据和结果。如果您希望将某些能力排除在监听器的记录之外,您可以在
config/telescope.php
文件的ignore_abilities
rrreeefilter
콜백이 단일 항목에 대한 데이터를 필터링하는 동안filterBatch
메서드를 사용하여 전체 항목으로 필터링하는 콜백을 등록할 수 있습니다. 특정 요청이나 콘솔 명령에 대한 데이터입니다. 콜백이true
를 반환하면 모든 데이터는 Telescope에 의해 기록됩니다:사용 가능한 감시자
콘솔 Telescope에 있는 경우 리스너는 명령을 실행하거나 요청을 처리할 때 애플리케이션 데이터를 수집합니다.config/telescope.php
구성 파일에서 청취를 활성화하도록 항목 목록을 사용자 정의할 수 있습니다: rrreee일부 리스너에서는 추가 사용자 정의 옵션을 제공할 수도 있습니다:rrreee
Cache Watcher캐시 감시자는 캐시 키가 적중, 누락, 업데이트 및 잊혀졌을 때 데이터를 기록합니다.
🎜🎜🎜🎜Command Watcher🎜🎜 명령 감시자는 Artisan 명령이 실행될 때마다 인수, 옵션, 종료 코드 및 출력을 기록합니다. 특정 명령이 리스너에 의해 기록되지 않도록 제외하려면config/telescope.php
파일의ignore
옵션에서 명령을 지정할 수 있습니다: 🎜rrreee🎜< a name="dump-watcher">🎜🎜🎜Data Watcher🎜🎜데이터 감시자는 Telescope에 데이터 변수를 기록하고 표시합니다. Laravel을 사용할 때 전역dump
함수를 사용하여 변수를 출력할 수 있습니다. 변수를 출력하려면 브라우저에 데이터 리스너 탭이 열려 있어야 합니다. 그렇지 않으면 리스너가 이 출력을 무시합니다. 🎜🎜🎜🎜🎜이벤트 감시자 🎜🎜이벤트 감시자는 애플리케이션에서 전달한 모든 이벤트의 페이로드, 리스너 및 브로드캐스트 데이터를 기록합니다. 이벤트 리스너는 Laravel 프레임워크 내부 이벤트를 무시합니다. 🎜🎜🎜🎜🎜Exception Watcher🎜🎜Exception Watcher는 애플리케이션에서 발생하는 보고 가능한 모든 예외의 데이터 및 스택 추적을 기록합니다. 🎜🎜🎜🎜🎜Gate watcher 🎜🎜Gate watcher는 애플리케이션의 Gate 및 정책 검사 데이터와 결과를 기록합니다. 특정 기능이 리스너에 의해 기록되지 않도록 제외하려면config/telescope.php
파일의ignore_abilities
옵션에서 해당 기능을 지정할 수 있습니다: 🎜rrreee🎜🎜 🎜 🎜🎜프로세스 리스너🎜🎜프로세스 리스너는 애플리케이션에서 전달한 모든 작업의 데이터와 상태를 기록합니다. 🎜🎜🎜🎜🎜🎜로그 모니터 🎜🎜로그 모니터는 애플리케이션이 작성한 모든 로그에 대한 로그 데이터를 기록합니다. 🎜🎜🎜🎜🎜Mail Monitor
Mail Monitor를 사용하면 이메일 및 관련 데이터의 브라우저 내 미리 보기를 볼 수 있습니다. 이메일을
.eml
파일로 다운로드할 수도 있습니다..eml
文件。模型监听
只要调度了模型的
rrreeecreate
、updated
、restored
或deleted
事件,模型观察器就会记录模型更改。您可以通过监听器的events
选项指定应记录哪些模型事件:消息通知监听
消息通知监听器记录您的应用程序发送的所有通知。如果通知触发了电子邮件并且您启用了邮件监听器,则电子邮件也可以在邮件监视器屏幕上进行预览。
数据查询监听
数据查询监听器记录应用程序执行的所有查询的原始 SQL、绑定和执行时间。观察者还将任何慢于 100 毫秒的查询标记为
rrreeeslow
。您可以使用观察者的slow
选项自定义慢查询阈值:Redis 监听
必须启用 Redis 事件才能使 Redis 监听器正常运行。您可以通过在
app/Providers/AppServiceProvider.php
文件的boot
方法中调用Redis::enableEvents()
来启用 Redis 事件。Redis 监听器记录您的应用程序执行的所有 Redis 命令。如果您使用 Redis 进行缓存,Redis 监听器也会记录缓存命令。
请求监听
请求监听器记录与应用程序处理的任何请求相关联的请求、标头、会话和响应数据。您可以通过
size_limit
모델의
rrreee메시지 알림 리스너는 모든 알림을 기록합니다. 응용 프로그램에서 보냈습니다. 알림이 이메일을 트리거하고 메일 수신기가 활성화된 경우 메일 모니터 화면에서 이메일을 미리 볼 수도 있습니다.생성
,업데이트
및복원
이벤트가 예정되거나삭제
되면 모델 관찰자가 모델 변경을 기록합니다. 리스너의events
옵션을 통해 기록해야 하는 모델 이벤트를 지정할 수 있습니다.
- 데이터 수정
- 이벤트 모니터링
느림
으로 표시합니다. 감시자의 slow
옵션을 사용하여 느린 쿼리 임계값을 사용자 정의할 수 있습니다. 🎜rrreee🎜🎜🎜🎜Redis watcher🎜🎜Redis 이벤트를 활성화해야 합니다. 작동하려면 Redis 리스너가 정상적으로 실행 중입니다.🎜Redis 리스너는 애플리케이션에서 실행되는 모든 Redis 명령을 기록합니다. 캐싱에 Redis를 사용하는 경우 Redis 리스너는 캐시 명령도 기록합니다. 🎜🎜🎜🎜🎜요청 감시자 🎜🎜요청 감시자는 애플리케이션에서 처리하는 모든 요청과 관련된 요청, 헤더, 세션 및 응답 데이터를 기록합니다.app/Providers/AppServiceProvider.php
파일의boot
메서드에서Redis::enableEvents()
를 호출하여 Redis 이벤트를 활성화할 수 있습니다. 🎜
size_limit
(KB 단위) 옵션을 통해 응답 데이터를 제한할 수 있습니다. 🎜rrreee🎜🎜🎜🎜🎜Schedule Listener 🎜🎜Schedule 리스너는 애플리케이션에서 실행하는 모든 예약된 작업의 명령과 출력을 기록합니다. 🎜🎜이 글은 🎜LearnKu.com🎜 웹사이트에 처음 게시되었습니다. 🎜🎜