Tovább a tartalomhoz

Query Monitor

WordPress teljesítmény és debug elemzés Query Monitor bővítménnyel.

A Query Monitor a legátfogóbb ingyenes debug és teljesítményelemző bővítmény WordPress-hez. Valós időben mutatja az adatbázis lekérdezéseket, hook-okat, feltételes függvényeket, HTTP kéréseket és sok mást.

  • Adatbázis lekérdezések - Minden SQL query részletei, ideje, hívója
  • PHP hibák - Notice, warning, error üzenetek
  • Hook-ok - Actions és filters listája
  • HTTP API hívások - Külső API kérések elemzése
  • Feltételes függvények - is_single(), is_admin() stb.
  • Szkriptek és stílusok - Betöltött JS/CSS fájlok
  • Blokkok - Gutenberg blokk információk
  • Környezet - PHP, MySQL, WordPress verzió adatok
  1. Bővítmények > Új hozzáadása
  2. Keress rá: “Query Monitor”
  3. Kattints a Telepítés most gombra
  4. Aktiváld a bővítményt
Terminál
wp plugin install query-monitor --activate
Terminál
composer require wpackagist-plugin/query-monitor --dev
wp plugin activate query-monitor

A Query Monitor panel az admin bar-on található. Kattints a megjelenő információkra (pl. “0.05s 12q”) a részletes panel megnyitásához.

Jelzés Jelentés
Zöld Minden rendben
Sárga Figyelmeztetés (lassú query-k)
Piros Hiba (PHP error, kritikus lassulás)

Minden SQL lekérdezés részletei:

  • Query - A teljes SQL utasítás
  • Time - Végrehajtási idő (ms)
  • Rows - Érintett sorok száma
  • Caller - Melyik függvény/fájl indította
  • Component - Plugin/téma/core
// wp-config.php - Lassú query küszöb beállítása
define( 'QM_DB_EXPENSIVE', 0.05 ); // 50ms felett lassú

A Query Monitor automatikusan jelzi az ismétlődő lekérdezéseket. Ezek optimalizálása jelentős teljesítményjavulást eredményezhet.

Csoportosított nézet a hívó függvények szerint - gyorsan megtalálod, melyik kód generálja a legtöbb lekérdezést.

Plugin/téma szerinti csoportosítás - azonnal látod, melyik bővítmény okoz terhelést.

Minden PHP hiba megjelenik:

  • Fatal errors - Piros háttér
  • Warnings - Narancssárga
  • Notices - Sárga
  • Deprecated - Szürke

Minden hibánál látod a teljes hívási láncot, így könnyen megtalálod a forrást.

A wp-config.php-ban beállíthatod:

// Csak saját kód hibáinak megjelenítése
define( 'QM_HIDE_CORE_WARNINGS', true );
define( 'QM_HIDE_SELF', true );

Az összes futtatott action és filter:

  • Hook név - pl. init, wp_head
  • Priority - Futási sorrend
  • Callback - Melyik függvény fut
  • Component - Plugin/téma

Használd a keresőt egy adott hook megtalálásához:

the_content
wp_enqueue_scripts
admin_init

Külön füleken láthatod az action-öket és filter-eket.

Minden külső HTTP kérés részletei:

  • URL - Cél URL
  • Method - GET, POST, stb.
  • Response - Válasz kód és idő
  • Caller - Ki indította

A piros jelzésű kérések jelentős késleltetést okoznak. Ezeket érdemes:

  • Cache-elni (Transients API)
  • Aszinkronná tenni (WP Cron)
  • Optimalizálni vagy eltávolítani

Minden betöltött JavaScript:

  • Handle - wp_enqueue_scripts azonosító
  • Source - Fájl URL
  • Dependencies - Függőségek
  • Dependents - Mi függ tőle
  • Size - Fájlméret

CSS fájlok hasonló részletekkel.

Keresd azokat a szkripteket, amelyek:

  • Minden oldalon betöltődnek, de nem kellenek
  • Duplikálva vannak
  • Elavult jQuery függőségekkel rendelkeznek

Block editor használatakor:

  • Block típusok - Használt blokkok listája
  • Block szám - Hány darab van belőlük
  • Render callback - Dinamikus blokkok

Az aktuális oldal jellemzői:

Függvény Érték
is_single() true/false
is_page() true/false
is_archive() true/false
is_admin() true/false
is_front_page() true/false

Hasznos téma és plugin fejlesztéskor a feltételek teszteléséhez.

Részletes rendszerinformációk:

  • PHP - Verzió, memória limit, max execution time
  • MySQL/MariaDB - Verzió, változók
  • WordPress - Verzió, debug mód, multisite
  • Server - OS, webszerver
memory_limit: 256M
max_execution_time: 300
upload_max_filesize: 64M
post_max_size: 64M
// Query Monitor engedélyezése
define( 'QM_ENABLE_CAPS_PANEL', true ); // Capabilities panel
// Lassú query küszöb (másodpercben)
define( 'QM_DB_EXPENSIVE', 0.05 );
// Hide self (QM saját query-jeit elrejti)
define( 'QM_HIDE_SELF', true );
// Core warnings elrejtése
define( 'QM_HIDE_CORE_WARNINGS', true );
// Symlinked plugin path
define( 'QM_SYMLINKED_PLUGINS_PATH', '/real/path/to/plugins' );
wp-config.php
define( 'QM_ENABLE_CAPS_PANEL', true );

Ez egy új panelt ad, ami az aktuális felhasználó jogosultságait mutatja.

Add-on Funkció
Debug Bar Debug Bar integráció
Memcache Memcached object cache monitoring
Redis Redis object cache monitoring
Add-on Funkció
Query Monitor Extend További panelek
QM CLI CLI parancsok

Teljesítmény optimalizálás Query Monitor-ral

Szekció neve “Teljesítmény optimalizálás Query Monitor-ral”
  1. Nyisd meg a Queries panelt
  2. Rendezd Time szerint csökkenő sorrendbe
  3. Vizsgáld meg a leglassabb query-ket
  4. Ellenőrizd az indexeket a táblákban

Keress ismétlődő lekérdezéseket:

SELECT * FROM wp_postmeta WHERE post_id = 1
SELECT * FROM wp_postmeta WHERE post_id = 2
SELECT * FROM wp_postmeta WHERE post_id = 3
...

Megoldás: update_meta_cache() vagy egy nagy query.

  1. Queries by Component nézet
  2. Rendezd Time szerint
  3. Azonosítsd a legtöbb időt használó pluginokat
  4. Fontold meg az alternatívákat vagy optimalizálást
  1. HTTP Requests panel
  2. Keress lassú vagy felesleges hívásokat
  3. Implementálj cache-elést:
function get_external_data() {
$cache_key = 'external_api_data';
$data = get_transient( $cache_key );
if ( false === $data ) {
$response = wp_remote_get( 'https://api.example.com/data' );
$data = wp_remote_retrieve_body( $response );
set_transient( $cache_key, $data, HOUR_IN_SECONDS );
}
return $data;
}

Az autentikációs cookie lehetővé teszi a frontend debug-ot bejelentkezés nélkül:

// Cookie beállítása (egyszer futtatva)
setcookie( 'wp-query_monitor_' . COOKIEHASH, wp_hash( 'query-monitor' ), 0, '/' );

Ha nem akarod az admin bar-t megjeleníteni:

add_filter( 'qm/dispatch/html', '__return_false' );

Query Monitor automatikusan naplózza az AJAX hívásokat. Az admin bar jelzi az AJAX kérések számát és idejét.

REST API végpontok lekérdezéseit is elemzi:

  1. Nyisd meg a fejlesztői eszközöket (F12)
  2. Network fül
  3. Keresd a X-QM-* header-öket

Alapértelmezetten csak adminisztrátorok látják a Query Monitor panelt.

// Szerkesztők is láthassák
add_filter( 'qm/capability', function() {
return 'edit_posts';
} );
// Csak development környezetben aktiválás
if ( 'development' !== wp_get_environment_type() ) {
add_filter( 'qm/dispatch/html', '__return_false' );
}

Query Monitor és Xdebug együtt használható mélyebb elemzéshez.

A Query Monitor adatai exportálhatók New Relic-be egyedi instrumentációval.

Ha Debug Bar is telepítve van, Query Monitor annak paneljeit is integrálja.

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások