Query Monitor

説明

Query Monitor は WordPress 開発者向けのツールパネルです。データベースクエリ、PHP エラー、フックとアクション、ブロックエディターのブロック、読み込まれた JavaScript とスタイルシート、HTTP API 呼び出しなどがデバッグ可能になります。

さらに上級者向けの機能として、Ajax 呼び出し、REST API 呼び出し、ユーザー権限チェックなどのデバッグも可能です。それぞれの出力がどのテーマやプラグインからされているのかを絞り込んだり、どのプラグイン、テーマ、関数が悪いパフォーマンスを出しているのかを素早く突き止めることができます。

Query Monitor は役立つ情報を見せることに注力しており、たとえばデータベースクエリーはプラグイン、テーマ、関数ごとにグループ分けして表示されます。管理バーに現在のページの概要を表示し、メニュー項目を選択すれば完全なデバッグ情報が表示されます。

より詳しい情報は、Query Monitor のサイトを見てください。

それぞれのページ読み込みで表示される概要はこちらです:

  • データベースクエリー、遅いクエリー、重複クエリー、エラーのあるクエリー。クエリーの種類 (SELECT, UPDATE, DELETE など)、関連するコンポーネント (プラグイン、テーマ、WordPress コア)、呼び出している関数、そしてそれぞれを組み合わせフィルタリングも可能。
  • The template filename, the complete template hierarchy, and names of all template parts that were loaded or not loaded.
  • PHPエラーとその関連するコンポーネント、コールスタック、警告を管理バーに表示。
  • WordPress 5.0 以上または Gutenberg プラグインを使っている場合はブロックと投稿本文に含まれる関連プロパティー。
  • 一致するリライトルール、関連するクエリー文字列とクエリー変数。
  • 読み込まれた JavaSrcript とスタイルシート、その依存関係および壊れてしまった依存関係についての警告。
  • 言語設定とそれぞれのテキストドメインで読み込まれた翻訳ファイル (MO ファイル)。
  • レスポンスコード付きの HTTP API リクエスト、関連するコンポーネント、所要時間、失敗あるいはエラーのあるリクエストだった場合の警告。
  • ユーザーの権限チェックとその結果、権限チェックに渡されたあらゆる変数。
  • PHP、データベース、WordPress、Web サーバーに関する詳細な環境情報。
  • is_single(), is_home() のような WordPress 条件分岐関数の値。
  • 更新された Transient。

おまけ:

  • リダイレクトが起きると Query Monitor はコールスタックを含んだ HTTP ヘッダーを追加するので、お好きな HTTP インスペクターやブラウザーの開発者ツールでリダイレクトを発生させたものをトレースすることができます。
  • ページ内で jQuery から実行された Ajax リクエストのレスポンスはヘッダーに様々なデバッグ情報を含んでいます。PHP エラーもデヴェロッパーコンソールに出力されます。
  • 認証されたユーザーが Query Monitor の出力を見る権限を持つ場合、WordPress REST API への認証済みリクエストはヘッダーに様々なデバッグ情報を含みます。

初期設定だと、Query Monitor の出力はシングルサイトで管理者、マルチサイトで特権管理者にだけ表示されます。

さらに、ログインしていないとき (もしくは管理者以外でログイン中のとき) でも Query Monitor の出力を見ることができるよう認証用の Cookie を設定することができます。詳しくは設定パネルを見てください。

プライバシー声明

Query Monitor is private by default and always will be. It does not persistently store any of the data that it collects. It does not send data to any third party, nor does it include any third party resources.

Query Monitor のプライバシー声明の全文はこちらで読むことができます

スクリーンショット

  • 管理バーのメニュー
  • コンポーネントごとにデータベースクエリーを集計
  • 権限チェック
  • データベースクエリー
  • フックとアクション
  • HTTP API リクエスト
  • 関数からの呼び出しごとにまとめられたデータベースクエリー

FAQ

Query Monitor の出力は誰が閲覧できますか。

初期設定だと、Query Monitor の出力はシングルサイトで管理者、マルチサイトで特権管理者にだけ表示されます。

さらに、ログインしていないとき (もしくは管理者以外でログイン中のとき) でも Query Monitor の出力を見ることができるよう認証用の Cookie を設定することができます。詳しくは設定パネルを見てください。

Query Monitor 自体はページの生成時間やメモリー消費に影響を与えますか?

簡潔に言うと、そうですが、少しだけです。

長い回答: Query Monitor はページの生成時間にわずかな影響しか与えません。他のプラグイン同様、WordPress のフックを利用しているからです。サイトの複雑さにもよりますが、概ね 10ms から 100ms の間といった、わずかな影響しか与えません。

Query Monitor のメモリ使用量は概ねページ生成に使用されるメモリの 10% です。

Query Monitor のアドオンプラグインはありますか。

Query Monitor のアドオンプラグインのリストはこちらです。

さらに、Query Monitor は Debug Bar プラグインのアドオンを透過的にサポートしています。Debug Bar のアドオンがインストールされている場合、Debug Bar を無効化するだけで Query Monitor にそのアドオンの情報が表示されます。

新機能の提案やバグレポートはどこで受け付けていますか。

wordpress.org のサポートフォーラムではなく、Query Monitor の GitHub リポジトリにあるイシュートラッカーを使ってください。その方がイシューの進捗を追いかけるのに適しています。

Query Monitor は WordPress.com VIP Go でも使えますか?

Yep! However, a user needs to be granted the view_query_monitor capability to see Query Monitor even if they’re an administrator.

`wpdb` のインスタンスを複数利用しています。追加したインスタンスの情報を Query Monitor に表示するにはどうしたらよいですか?

You’ll need to hook into the qm/collect/db_objects filter and add an item to the array containing your wpdb instance. For example:

add_filter( 'qm/collect/db_objects', function( $objects ) {
    $objects['my_db'] = $GLOBALS['my_db'];
    return $objects;
} );

Your wpdb instance will then show up as a separate panel, and the query time and query count will show up separately in the admin toolbar menu. Aggregate information (queries by caller and component) will not be separated.

スタックトレースをクリックして私のエディターでファイルを開くことはできますか?

Yes! You can enable this on the Settings panel.

寄付を受け付けていますか。

いいえ、寄付は受け付けていません。このプラグインがお気に召したのなら、レビューを残してください。お友達にも伝えてくださいね!

評価

2020年3月10日
This plugin is really great. I use it for development and also for bugs fixing. Helped me a lot on many websites. Thank you team!
2020年3月4日
I work on complex sites with many added layers of functionality, many interlinked custom post types and custom taxonomies etc. , where I find QueryMonitor very helpful and quick to track down problems. The coloring in the menu bar warns directly for errors or notices without impacting the layout. I can track down queries, slow queries, timeouts, api calls, an indication of page load time, the whole call stack if there is an error. Also while optimizing queries it is quick to point to problem code. Seriously I could not live without it. Sure there are many ways to get the same info, but QM has it all in one place.
2020年1月29日
Hi ! Many THANKS to you ! Thx to this tool I have been able to understand why my woocommerce site was so slow... 8 seconds to display a page was awful... now it loads instant, with no time ! Just because of a request left after some modification...
2020年1月20日
Brilliant - shows the good, the bad, the ugly. More importantly, it helps quickly isolate where to work to get the performance improvements you are looking for.
329件のレビューをすべて表示

貢献者と開発者

Query Monitor はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“Query Monitor” は13ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“Query Monitor” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

Query Monitor の変更履歴は、GitHub のリリースページをご覧ください。