望遠鏡アプリケーションのデバッグツール
- 望遠鏡の更新
- カスタマイズデータ移行
- 構成 #データ変更
- ##ダッシュボードの承認
- フィルター
- #単一フィルター
- #バッチ フィルター
- 利用可能なリスナー
- キャッシュ監視 イベント監視
- ##例外監視
- ##ゲート監視
- #プロセス監視
- ログ監視
- 電子メール監視
- モデル監視
- メッセージ通知モニタリング
- データクエリモニタリング
- Redis モニタリング
- リクエスト モニター
- スケジュール モニター
- はじめに
- インストール
- ##ダッシュボードの承認 #フィルタリング
- ##利用可能監視
- キャッシュ監視
- コマンド監視
- ストレージ監視
- イベント監視
- ##例外監視
- ##ゲート監視
- プロセス監視
- ログ監視##メール監視
- ##モデル監視
- メッセージ通知モニタリング
- データクエリモニタリング
- Redisモニタリング
- ##リクエストモニタリング
- スケジュール監視
- はじめに Larave Telescope は、Laravel フレームワークのエレガントなデバッグ アシスタントです。 Telescope は、アプリケーションに送られるリクエスト、例外、ログ エントリ、データベース クエリ、キューに入れられたジョブ、電子メール、通知、キャッシュ操作、スケジュールされたタスク、変数ダンプなどに関する洞察を提供します。 Telescope は、ローカルの Laravel 開発環境に最適です。
Laravel Telescope
composer require laravel/telescopeTelescope をインストールした後、それを使用できます。 Artisan
telescope:install コマンドで拡張機能インスタンスを構成します。 Telescope をインストールした後、
移行 コマンドも実行する必要があります:
php artisan telescope:install php artisan migrateUpdate TelescopeTelescope を更新するときは、ロードされた Telescope インスタンスを再構成する必要があります:
php artisan telescope:publish特定の環境にのみインストールしますTelescope をローカル開発を支援する目的でのみ使用する予定の場合。 Telescope は、
--dev フラグを使用してインストールできます:
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 職人のベンダー:パブリッシュ --tag=telescope-migrations
コマンドを使用して、デフォルトの移行をエクスポートできます。
Telescope を使用するには、メインの構成ファイルは
config/telescope.php にあります。この構成ファイルを使用すると、リスナー オプションを構成できます。各構成オプションにはその目的の説明が含まれているため、必ずこのファイルをよく参照してください。 必要に応じて、
構成オプションを使用して Telescope のデータ収集を完全に無効にすることができます: 'enabled' => env('TELESCOPE_ENABLED', true),
データを変更すると、
telescope_entries テーブルにレコードを非常に迅速に蓄積できます。この問題を軽減するには、Artisan を使用して telescope:prune
コマンドを毎日実行する必要があります:
デフォルトでは、24 時間より古いデータがすべてフェッチされます。コマンドを呼び出すときに $schedule->command('telescope:prune')->daily();
オプションを使用して、Telescope データが保持される期間を決定できます。たとえば、次のコマンドは 48 時間前に作成されたすべてのレコードを削除します: $schedule->command('telescope:prune --hours=48')->daily();
Telescope in
/telescope でダッシュボードを表示します。デフォルトでは、local
環境でのみこのダッシュボードにアクセスできます。 app/Providers/TelescopeServiceProvider.php
ファイルには、gate
メソッドがあります。この承認は、非ローカル
環境での Telescope へのアクセスを制御します。 Telescope のインストールとアクセスの必要に応じて、この権限制限を自由に変更できます: /**
* 註冊 Telescope Gate。
*
* 使用 Gate 决定谁可以在非本地环境中访问 Telescope。
*
* @return void
*/
protected function gate(){
Gate::define('viewTelescope', function ($user) {
return in_array($user->email, [
'taylor@laravel.com',
]);
});
}
単一アイテムのフィルタリング
TelescopeServiceProvider
に登録された filter
コールバックを通じて、Telescope によって記録されたデータをフィルタリングできます。デフォルトでは、このコールバックは、local
環境内のすべてのデータと、例外、プロセスの中断、スケジュールされたタスク、および他のすべての環境内のデータを、監視対象フラグ
/** * 注册应用服务。 * * @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(); }); }#バッチ フィルタリング
filter コールバックは 1 つのエントリのデータをフィルタリングしますが、このコールバックの
filterBatch メソッドを使用してコールバックを登録できます。特定のリクエストまたはコンソール コマンドのすべてのデータをフィルターします。コールバックが
true を返した場合、すべてのデータが Telescope によって記録されます:
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(); }); }); }利用可能なリスナーWhen in control Telescopeリスナーは、プラットフォームがコマンドを実行するかリクエストを処理するときにアプリケーション データを収集します。項目のリストをカスタマイズして、
config/telescope.php 構成ファイルでリスニングを有効にすることができます:
'watchers' => [ Watchers\CacheWatcher::class => true, Watchers\CommandWatcher::class => true, ... ],一部のリスナーでは、追加のカスタマイズ オプションを提供することもできます:
'watchers' => [ Watchers\QueryWatcher::class => [ 'enabled' => env('TELESCOPE_QUERY_WATCHER', true), 'slow' => 100, ], ... ],キャッシュ リスナーキャッシュ リスナーは、キャッシュ キーがヒット、ミス、更新、または忘れられたときにデータを記録します。 コマンド リスニングコマンド リスナーは、アーティザン コマンドが実行されるたびに、引数、オプション、終了コード、および出力をログに記録します。特定のコマンドをリスナーによる記録から除外する場合は、
config/telescope.php ファイルの
ignore オプションでコマンドを指定できます:
'watchers' => [ Watchers\CommandWatcher::class => [ 'enabled' => env('TELESCOPE_COMMAND_WATCHER', true), 'ignore' => ['key:generate'], ], ... ],データ リスニングデータ リスナーは、Telescope にデータ変数を記録して表示します。 Laravel を使用する場合、グローバル
dump 関数を使用して変数を出力できます。変数を出力するには、ブラウザでデータ リスナー タブが開かれている必要があります。そうしないと、リスナーはこの出力を無視します。
例外リスナーは、アプリケーションによってスローされた報告可能な例外のデータとスタック トレースを記録します。
ゲート リスナーは、アプリケーションのゲートおよびポリシー チェックのデータと結果を記録します。リスナーによるロギングから特定の機能を除外したい場合は、
config/telescope.php ファイルの ignore_abilities
オプションでそれらの機能を指定できます: 'watchers' => [
Watchers\GateWatcher::class => [
'enabled' => env('TELESCOPE_GATE_WATCHER', true),
'ignore_abilities' => ['viewNova'],
],
...
],
プロセス リスナーは、アプリケーションによってディスパッチされたジョブのデータとステータスを記録します。
ログ モニターは、アプリケーションによって書き込まれたすべてのログのログ データを記録します。メール モニター
メール モニターを使用すると、電子メールとその関連データのブラウザー内プレビューを表示できます。電子メールを .eml
ファイルとしてダウンロードすることもできます。
モデル監視
create
、updated
、モデルがリストア
または deleted
イベントにスケジュールされている場合、モデル オブザーバーはモデルの変更を記録します。リスナーの events
オプションを使用して、どのモデル イベントをログに記録するかを指定できます:
'watchers' => [ Watchers\ModelWatcher::class => [ 'enabled' => env('TELESCOPE_MODEL_WATCHER', true), 'events' => ['eloquent.created*', 'eloquent.updated*'], ], ... ],
メッセージ通知リスナー
# #Message 通知リスナーは、アプリケーションによって送信されたすべての通知を記録します。通知によって電子メールが送信され、メール リスナーが有効になっている場合は、電子メールを [メール モニター] 画面でプレビューすることもできます。 データ クエリ リスナーデータ クエリ リスナーは、アプリケーションによって実行されたすべてのクエリの生の SQL、バインディング、および実行時間を記録します。また、オブザーバーは、100 ミリ秒より遅いクエリをslow としてマークします。オブザーバーの
slow オプションを使用して、低速クエリのしきい値をカスタマイズできます:
'watchers' => [ Watchers\QueryWatcher::class => [ 'enabled' => env('TELESCOPE_QUERY_WATCHER', true), 'slow' => 50, ], ... ],Redis listen
Redis Redis リスナーが適切に機能するには、イベントを有効にする必要があります。 Redis イベントを有効にするには、Redis リスナーは、アプリケーションによって実行されたすべての Redis コマンドを記録します。キャッシュに Redis を使用する場合、Redis リスナーはキャッシュ コマンドも記録します。app/Providers/AppServiceProvider.php
ファイルの
bootメソッドで
Redis::enableEvents()を呼び出します。
リクエスト リスナーは、アプリケーションによって処理されたリクエストに関連付けられたリクエスト、ヘッダー、セッション、および応答データを記録します。
size_limit (KB 単位) オプションを使用して応答データを制限できます: 'watchers' => [
Watchers\RequestWatcher::class => [
'enabled' => env('TELESCOPE_REQUEST_WATCHER', true),
'size_limit' => env('TELESCOPE_RESPONSE_SIZE_LIMIT', 64),
],
...
],
スケジュール リスナープログラマは、アプリケーションによって実行されるスケジュールされたタスクのコマンドと出力を記録します。
この記事は、
LearnKu.com