Contributors: qriouslad
Donate link: https://bowo.io/dotorg-sponsor-sd
Tags: system monitor, wordpress components, action filter hooks, server info, developer
Requires at least: 4.8
Tested up to: 6.7
Stable tag: 2.8.15
Requires PHP: 5.6
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Central dashboard to monitor various WordPress components, processes and data, including the server.
This plugin provides a central dashboard to monitor various WordPress components, processes and data, including server hardware, software and resource usage. Pairs well with Query Monitor to help you do some solid dev work.
"A must-have for serious WordPress developers." ~Jeff Starr
"A power tool for WordPress site builders and plugin/theme developers that will save a ton of time." ~Ivan Arnaudov
"Hands down one of the best plugins for developers. Keep up the good work!" ~Abracadabra DGTL
Despite having 20 WordPress modules and 4 server modules, the single-page dashboard loads fast as queries are optimized and most modules employ fast AJAX loading of data. It does not weight down wp-admin, and nothing is loaded on the front-end. Install, activate and let it sit there ready to summon the info/data you need.
To preview the module screenshots more easily, please scroll down the github repo. Here's a rundown of the available modules...
- Site health status
- Quick stats of active theme and plugins
- Permalink structure
- Search engine visibility
- Timezone and current time
- Your IP address
- Software info
- Uptime
- Data size
- Index size
- List of WP core tables with data/index size and number of rows/records of each table
- List of tables created/used by themes and plugins with the origin theme/plugin, data/index size and number of rows/records of each table
- Key database info, e.g. innodb_buffer_pool_size
- Detailed specifications
- List of post types and posts count for each
- List of taxonomies and terms count for each
- Comment count
- List of old slugs and the corresponding posts
- List of media types and files count for each
- List of allowed mime types and the corresponding file extensions
- List of registered image sizes
- Media handling info, e.g. max file upload size
- Root path
- Directory size and total number of files in WP installation, wp-admin, wp-includes, wp-content directory, uploads directory, plugins directory, themes directories
- Filesystem permissions
- List of public custom fields
- List of private custom fields, i.e. keys that start with an undersocre _
- List of user roles and users count for each
- List of roles and capabilities. Including custom roles and custom capabilities.
- Total number of options
- Total number and size of autoloaded options
- Filterable list of options from WordPress core with ID, autoload, size and type info
- Filterable list of options from plugins and theme with ID, autoload, size and type info
- List of 10 autoloaded options with the largest size
- AJAX loading of option value with interactive tree viewer for array and object value types
- Total number of transients
- Total number and size of autoloaded transients
- List of transients with expiration, including time left to expiry
- List of expired transients
- List of transients that do not expire
- AJAX loading of transient value with interactive tree viewer for array and object value types
- Status of persistent object cache backend
- Stats of cache hit ratio
- List of global groups
- List of non-persistent groups
- List and viewer (AJAX) of cached items in the global $wp_object_cache variable
- List and viewer (AJAX) of cached items in memory. Currently supporting Redis and Memcached backends.
- Diagnostics info (if available)
- List of cron event hooks and recurrences, categorized by core vs non-core
- List of rewrite rules
- List of shortcodes and renderers (callback functions)
- Filterable list of action and filter hooks from WordPress core with description, originating file path and link to WordPress Code Reference for each hook
- List of action and filter hooks from the active theme, with description, originating file path and link to file preview in the theme file editor
- List of action and filter hooks from active plugins, with description, originating file path and link to file preview in the plugin file editor
- List of classes from WordPress core with methods, originating file path, and link to WordPress Code Reference for each class
- List of classes from the active theme with methods, originating file path, and link to preview the file in the theme file editor
- List of classes from active plugins with methods, originating file path, and link to preview the file in the plugin file editor
- Filterable list of functions from WordPress core with the originating file path and link to WordPress Code Reference for each function
- List of functions from the active theme with the originating file path and link to preview the file in the theme file editor
- List of functions from active plugins with the originating file path and link to preview the file in the plugin file editor
- Categorized list of global variables defined by WordPress
- List of PHP super globals
- List of global variables defined by themes and plugins
- List of defined constants by WordPress core (categorized), as well as by theme and plugins
- Documentation of each constant from WordPress core
- wp-config.php viewer, including path and writeability info.
- .htaccess viewer
- REST API viewer
- robots.txt viewer
- Link to sitemap
- Viewer for URLs, paths and fragments from various WP core functions and CONSTANTS like get_template_directory_uri() and ABSPATH, as well as those generated by PHP $_SERVER superglobal such as $_SERVER['REQUEST_URI']
- Link to recent posts RSS feed
- Link to recent comments RSS feed
- Page Access log. A simple logger of which pages are being accessed by site visitors. Disabled by default.
- PHP Errors log using native WP_DEBUG constants and a custom name and location for the debug log file for better security. Disabled by default.
- Email Delivery log: will log emails that the WordPress app has sent / tried sending and provide a way to quickly view and search through them. Disabled by default.
- Server operating system
- Web server software
- Server IP address
- Server hostname
- Server location
- Server timezone and current date time
- Server uptime
- Server CPU load average: last 15 minutes, last 5 minutes, last 1 minute
- RAM usage
- Disk usage
- CPU type
- CPU count and cores count
- Total RAM
- Total disk space
- PHP version
- PHP user
- Key info: max execution time, max input time, max input vars, memory limit, post max size, upload max size, cURL version, allow_url_fopen, fsockopen, SoapClient, DOMDocument, GZip, SUHOSIN, Imagick
- Extensions loaded
- Disabled functions
- Detailed PHP specification from phpinfo()
- List of relevant tools (plugins) and references (articles) for each module
- Requires shell_exec and exec functions enabled for some modules to work properly. e.g. the Hooks > Active Plugins tool.
- There's an MU (must-use) plugin that unloads all other plugins for admin-ajax calls initiated from the dashboard, so these calls stay fast no matter how complex and big your site is.
- The longest first load is probably the Hooks > Active Plugins tool, which scans action and filter hooks from all active plugins on the site. The more plugins are active, the longer it takes. If your server/hosting has a low execution time limit, you may need to load the module two or three times for the scan to complete. Once complete, subsequent loads of the module should be much much faster.
- This plugin has been tested to work with servers powered by NGINX, Apache and Litespeed, and also sites using PHP 7+ and 8+.
About 260 dev hours have been spent towards v2.6.2 so far.
- A nice review would be great!
- Give feedback and help improve future versions.
- Github repo to contribute code.
- Sponsor my work.
- Tell your colleagues about System Dashboard.
- Debug Log Manager: Log PHP, database and JavaScript errors via WP_DEBUG with one click. Conveniently create, view, filter and clear the debug.log file.
- Variable Inspector: Inspect PHP variables on a central dashboard in wp-admin for convenient debugging.
- Code Explorer: Fast directory explorer and file/code viewer with syntax highlighting.
- Database Admin: Securely manage your WordPress website's database with a clean and user-friendly interface based on a custom-themed Adminer app. Only available on Github.
- Admin and Site Enhancements helps you to easily enhance various admin workflows and site aspects while replacing multiple plugins doing it.
- Flexible Scroll Top and Floating Share Buttons is a lightweight combo with minimalist UI.
- WordPress Newsboard: The latest news, articles, podcasts and videos from 100+ WordPress-focused sources.
- WordPress Newsboard: The latest news, articles, podcasts and videos from 100+ WordPress-focused sources.
- The dashboard
- WordPress overview & the Database module
- Post Types & Taxonomies module
- Media module
- Directories module
- Custom Fields module
- Users module
- Options module
- Transients module
- Cron module
- Rewrite Rules module
- Shortcodes module
- Hooks module
- Classes module
- Functions module
- Globals module
- Constants module
- Viewer module
- Server overview and Monitor module
- Hardware module
- PHP module
System Dashboard was built with: WordPress Plugin Boilerplate | wppb.me | CodeStar framework
-
[SECURITY FIX] Page Access Log - Fix unauthenticated stored XSS vulnerability as reported by Bob, a security researcher for WPScan and Jetpack.
-
[FIXED] Disk Usage - fix fatal error in a certain scenario as reported by Rob M..
-
[UPDATED] Codestar framework update from v2.2.8 to v2.3.1. This should fix deprecation notices as reported by @mbrsolution.
- [FIXED] Fixed PHP fatal error caused by undefined function introduced in the last release. Props to Adrien R. for reporting the issue.
- [FIXED] Fixed PHP deprecation notice on detecting server CPU type and a PHP fatal error on displaying total server RAM. Props to @darrenford77 for reporting the issue.
- [FIXED] Fixed PHP deprecation notices and a fatal error on detection of server used RAM. Props to @darrenford77 for reporting the issue.
-
[FIXED] Fixed PHP Fatal Error on detection of server uptime. Props to @darrenford77 for reporting the issue.
-
[FIXED] Fixed Warning Error on detection process of server OS. Props to @darrenford77 for reporting the issue.
- [SECURITY] Patched a Stored XSS vulnerability by X-Forward-For Header Injection. The vulnerability was responsibly disclosed by Dmitrii Ignatyev from Clean Talk inc on October 20, 2023. Apologies if this took me a while to get around to as I was fully occupied with the launch of ASE Pro.
- Improved: implement a more generic and robust method to get database server info used in the "Database >> System & Uptime section". Now uses the WP core method $wpdb->db_server_info(). Props to Adrien R. for the nudge to further improve this and help with providing technical details to help achieve that.
-
[IMPORTANT][SECURITY] Fixed vulnerabilities that caused sensitive data to be accessible by non-administrators via ajax requests. The vulnerability was responsibly disclosed by Dmitrii Ignatyev from Clean Talk inc on October 20, 2023. Apologies if this took me a while to get around to as I was fully occupied with the launch of ASE Pro.
-
Fixed: PHP fatal error - mysqli_get_server_info(): Argument #1 ($mysql) must be of type mysqli, bool given. Props to Adrien R. for reporting the issue.
-
Fixed: PHP fatal error - Class "Redis" not found. Props to Julian Song for reporting this.
- Fixed: PHP fatal error - Uncaught TypeError: Unsupported operand types: string / int. Props to @pressimize for reporting it.
- Fixed: PHP fatal error for certain scenario in getting server location. Props to @malaga16 for reporting it and also @clouddevelopment for another report of it
- Fixed: several PHP warnings. Props to @alx359 for reporting it and @shawfactor for another report.
- Improve compatibility with localhost installation. Following up on reports by @enterprisebranding and @brasofilo.
- [SPONSORSHIP] If you like or have benefited from this plugin in your personal project(s), paid work and/or client site(s), please kindly consider sponsoring the ongoing development and maintenance of this plugin (and my other plugins) from as little as USD 1 / month. Thank you!
- All admin notices are now suppressed, i.e. no longer shown, on the System Dashboard page
- Hooks > Core: Update action and filter hooks definition to WordPress v6.0. Include long description and "since WordPress version" info.
- Database > Themes & Plugins: Update table name <-> plugin relationships database from WP-Optimize v3.2.9.
- Logs > PHP Erros: Make it work with existing Debug Log Manager log file, or other log file path defined in WP_DEBUG_LOG constant.
- Server > Hardware: Fix formatting of Total Disk Space
- Hide "Screen Options" drawer
- Viewer >> wp-config.php: improve detection of it's location. Add path and writeability info.
- Logs > PHP Errors: now only shows distinct/unique entries
- Logs > Email Delivery: New module to log emails that the WordPress app has sent / tried sending and a way to see and filter through them quickly.
- Logs > Page Access: Now shows latest entries by default.
- Logs > Errors Log: Improve how debug log is parsed to ensure each log entry is cleanly split even when there is stack trace info included for fatal errors.
- Logs > Errors Log: Increase limit of entries being loaded to 50,000.
- Upon plugin deactivation, database tables for the Logs module are no longer dropped/deleted.
- Implemented PHP Errors log under the Logs module employing WP_DEBUG with custom debug log file name and location for better security. Turned off by default. Will automatically add the necessary WP_DEBUG constants in wp-config.php when enabled and remove them when disabled.
- Fix for PHP warning issue related to Page Access log option in wp_option table not always set, e.g. for users upgrading from older version of the plugin, as reported by @shawfactor.
- Server > Monitor: Fixed "Unsupported operand types" error on disk usage reporting. Props to @wpturnedup for reporting the error. This happened for certain managed WP hosting like Kinsta.
- Server > Hardware: Fixed "Call to undefined function" error on total disk space calculation. This happened for certain managed WP hosting like Kinsta.
- Server > PHP: Fixed "Call to undefined function" error on getting PHP current user. This happened for certain managed WP hosting like Kinsta.
- WordPress > Viewer > URLs and Paths: Fixed undefined array key error. This happened for certain managed WP hosting like Kinsta.
- Logs > Page Access: fix PHP warning issue. Props to @shawfactor.
- Logs: Convert Page Access log entries table into a data table using the DataTables jQuery plugin
- WP Overview: minor tidy up
- Tested for compatibility with WordPress 6.0
- Directories: add total number of files in each directory for Directory Sizes tool
- Directories: add check mark for 'Writeable' and cross mark for 'Not writeable' in the Filesystem Permission tool to better indicate which is the desirable status
- Logs: New module. Added Page Access logger to begin with. A simple logger of which pages are being accessed by site visitors. Turned off by default.
- Viewer: View URLs, paths and fragments from various WP core functions and CONSTANTS like get_template_directory_uri() and ABSPATH, as well as those generated by PHP $_SERVER superglobal such as $_SERVER['REQUEST_URI']
- Fix: error on plugin activation in sites with older PHP versions (up to v7.2) due to nowdoc syntax issue upon generating fast-ajax.php MU plugin. Props to @dblomster for identifying the issue and reporting it.
- Media: add list of registered image sizes
- Viewer: add links to recent posts and recent comments RSS feeds
- WP Overview: add permalink structure and search engine visibility info
- Post Types & Taxonomies: add post types labels if they're defined
- Server overview: fix location info, now properly returns 'Undetectable'. Props to @nawawijamili.
- Constants: normalize "Defined Constants" for Array, Object and Boolean values. Props to @nawawijamili.
- Polish: Remove CodeStar framework menu item under Tools
- Options: Cache query results for 10 largest autoloaded options to remove duplicate query
- CodeStar Framework: downgrade to free version v2.2.8
- Constants: Disable fast AJAX so constants from all plugins are properly listed
- Options: Add list of 10 autoloaded options with the largest size
- Reduce duplicate $wpdb queries with object caching
- Object Cache: Add list and viewer of cache items in the global $wp_object_cache variable and also in memory store (currently supporting Redis and Memcached backends)
- Reposition Viewer module after the Constants module
- NEW: Object Cache module with status of persistent object cache backend, stats of cache hit ratio, list of global groups, list of non-persistent groups and diagnostics info (if available)
- Server Overview: improve location output
- Polish: update wording for View (Themes & Plugins) Tables
- Server Overview: add hostname info
- Server Monitor: add raw value of CPU load average
- Rewrite Rules: fix TypeError in PHP 8 when rewrite_rules option is empty, e.g. fresh WP install
- Database: split tables into WP core vs themes & plugins and add counter for each category
- Database: add character set and collation info in the Key Info section
- Database: add default WP core tables for multisite if on a multisite
- Database: add detection of and link to origin theme/plugin for non-core tables
- Server > Monitor: Polish wording for disk usage stats
- Optimization: dequeue public-facing scripts and styles, which are mostly empty placeholders
- Optimization: in wp-admin, only load scripts and styles on the System Dashboard page
- Fix Server overview layout issue
- Improve indentation in Fast AJAX MU Plugin generation to fix "headers already sent" issue which maybe caused by whitespace before <?php (reference)
- Implement AJAX loading on the following modules: Classes, Functions, Post Types & Taxonomies, Media, Directories, Custom Fields, Users, Rewrite Rules, Shortcodes. This cuts down dashboard page load time to under 2 seconds (most of the time).
- Post Types & Taxonomies: Improve layout of old slugs list
- Globals: Disable usage of Fast AJAX as some globals are dependent on the full list of active plugins, e.g. shortcode_tags
- Server overview: Improve server IP detection on Apache server by using HTTP_X_SERVER_ADDR server globals
- Fix TypeError in disk usage calculation and typo in site health check function. Props to @ivanarnaudov.
- Tidy up display of RAM usage and CPUs/cores count when shell_exec is not enabled
- Improve server location detection when using Apache by using IP address from HTTP_X_SERVER_ADDR server global
- Fix missing Fast AJAX MU Plugin for those upgrading from v1.9.0
- Fix malformed Code Reference URLs for core hooks containing the '>' symbol, e.g. save_post_{$post->post_type}
- Optimize dashboard load time considerably by employing AJAX loading of module content, element and values
- Implement an MU plugin that keeps AJAX calls fast by unloading all other plugins during the AJAX calls
- Optimize DB queries considerably on the Options and Transients module
- Cron: split cron events between core and non-core
- Database, Post Types & Taxonomies, Media, Directories, Users, Rewrite Rules: tidy up layout
- Add review, feedback and donate links in dashboard header
- [NEW] Globals module: Categorized list of all WordPress core global variables, PHP super globals and non WP core globals
- Add tools and references for Rewrite Rules and Shortcodes modules
- [NEW] Rewrite Rules module
- [NEW] Shortcodes module
- Database: added DB engine info in Key Info section
- Further optimize how System Dashboard is loaded on wp-admin pages. On wp-admin pages other than the System Dashboard page, only call function that adds a 'System' sub-menu under the 'Dashboard' menu. This considerably speeds up load time across the entire wp-admin and also speed up AJAX calls from inside the System Dashboard page.
- Only load System Dashboard on wp-admin pages and optimize how it is loaded there. Only execute demanding queries on the System Dashboard page. This resulted in faster load time of admin pages that is not the System Dashboard page.
- Options: Enable filtering of options by autoload status, value size and value type
- Add search filter on the following modules: Options (core and non-core), Hooks (core), Functions (core)
- Add counter for the following modules: Custom Fields (public and private), Functions (core, themes, plugins)
- Fix: output of custom id and classes for several HTML partials in sd_html()
- Fix: miscellaneous CSS styling
- Viewer: Improve parsing of virtual robots.txt generated by WordPress. Properly detect default sitemap URL and add it to robots.txt
- WordPress > Overview: fix "division by zero" error. Props to @nawawijamili!
- Server > Monitor: Fix "non well formed numeric value encountered" errorrs. Props to @nawawijamili!
- Add reference to Options module
- Viewer: NEW module to view files. Implemented viewer for wp-config.php, .htaccess and robots.txt. Links to sitemap and REST API. Add list of tools and references.
- Add transients for several server info
- Options: Add interactive JSON tree viewer for array and object value types
- Transients: Add interactive JSON tree viewer for array and object value types
- Transients: Enable ajax loading of transient values
- Transients: Consolidate and clean up transient-related functions
- All modules: Update list of tools and references
- Hooks: Improve readability of non-core hooks list
- Options: add autoloaded options count and total size
- Options: add option size and data type
- Options: fix display of object type and XML/HTML values
- Add WordPress > Options module to inspect value of WordPress core and also plugins and theme options in the wp_options table
- General: Update shell_exec and exec check command
- Directories: add filesystem permissions info
- Database: Update database extension and client info check
- Media: Add Media Handling info
- PHP: Add Imagick and SUHOSIN checks
- Server: Add server location info
- Add site health status visual indicator (green or orange dot)
- Disable auto-registered Gutenberg block on the plugin info page
- Add site health status
- Prioritize use of myslq_ over mysql_ function
- Initial stable release
None required yet.