WordPress is a free and open-source content management system (CMS) based on PHP and MySQL. WordPress is reportedly the easiest and most popular website management or blogging system in use on the Web, supporting more than 60 million websites. Configure our plugin integrations and check the performance of WordPress servers as well WordPress plugins using a wide variety of metrics.
This document details how to configure the WordPress server performance and WordPress plugin performance plugin integrations for in-depth visibility into the performance, availability, and usage stats.
WordPress performance monitoring metrics:
Take informed troubleshooting decisions by keeping track of critical WordPress metrics including:
Apache version
"apache_version" mentions the version of Apache running on the server. Important in understanding which Apache features are available and whether an update is required or not.
Apache status
Use the metric "apache_status" and note down the status of Apache server in your WordPress server.
PHP version
The version of PHP running in your WordPress server is noted down using the metric "php_version". Important in understanding which PHP features are available and whether an update is required or not.
PHP CPU
The metric "php_cpu" gets the portion of CPU occupied by PHP processes specific to your WordPress server. It is displayed as percentage on the dashboard.
MySQL version
"mysql_version" mentions the version of MySQL database running in your WordPress server. Important in understanding which MySQL features are available and whether an update is required or not.
PHP status
Use the metric "php_status" and get the current status of PHP process in your WordPress server.
MySQL status
Status of MySQL database in your WordPress server is obtained using the metric "mysql_status".
PHP memory
The portion of memory occupied by PHP processes specific to your WordPress server. "php_mem" is displayed as percentage on the dashboard.
MySQL memory
The portion of memory occupied by MySQL queries specific to your WordPress server. "mysql_mem" is displayed as percentage on the dashboard.
Apache CPU load
The metric "apache_cpu" measures the portion of CPU used by all Apache worker threads combined. It is displayed as percentage on the dashboard.
MySQL CPU
The portion of CPU occupied by MySQL queries specific to your WordPress server. "mysql_cpu" is displayed as percentage on the dashboard.
Apache total accesses
Use the metric "apache_total_access" and get the total number of times your Apache server was accessed.
Apache total bytes
The total number of bytes count served by your Apache server is measured using the metric "apache_total_bytes".
Apache requests per second
Get the average number of requests per second recieved by the Apache server with the metric "apache_req_per_sec".
Apache bytes per request
Use the metric "apache_bytes_per_req" and get the average number of bytes present in each request served by the Apache server.
Apache bytes per second
"apache_bytes_per_sec" gives the average number of bytes per second served by the Apache server.
Apache uptime
The metric "apache_uptime" gives the total amount of time the Apache server was up and running.
Apache busy workers
The number of workers serving requests received by the Apache server is monitored using the metric "apache_busy_worker".
Apache idle workers
With the metric "apace_idle_worker" get the number of idle workers available to serve requests recieved by the Apache server.
Prerequisites
- Download and install the Site24x7 Linux server monitoring agent in the server where the WordPress application is running.
- The plugin requires 'Curl' tool to fetch the statistics. Please ensure this tool is installed before using the plugin.
- Download and install the Site24x7 Linux server monitoring agent in the server where the WordPress application is running.
- The Site24x7 plugin integration uses the http://yourwebsite.com/wp-json/wp/v2/plugins WordPress API endpoint to fetch the WordPress plugins' status. If the user disabled the WordPress API, enable it for the aforementioned endpoint.
Plugin installation:
- Create a directory with the name "wordpress", under the Site24x7 Linux Agent's plugin directory - /opt/site24x7/monagent/plugins/
- Download the file ""wordpress.sh" from our GitHub repository and place it under the "wordpress" directory
- Commands to perform the above step:
cd /opt/site24x7/monagent/plugins/
mkdir wordpress
cd wordpress
wget https://raw.githubusercontent.com/site24x7/plugins/master/wordpress/wordpress.sh
Configure Apache to support statistics
- Edit your httpd.conf file so that it enables sending statistics. As mentioned at https://httpd.apache.org/docs/2.4/mod/mod_status.html#machinereadable
- Sample code for stats setup in the file "/usr/local/apache/conf/httpd.conf":
SetHandler server-statusOrder deny,allowDeny from allAllow from 127.0.0.1 ::1< /Location>
- Restart apache server and check wether the configured URL is receiving apache statistics by opening it in a browser
WordPress plugin configuration
- Now change the following values in the plugin file (copied to agent plugin's directory earlier):
"APACHE_STATS" to "ENABLED" ("DISABLED" by default)
- Enter your stats URL as specified while configuring Apache for statistics to the variable "APACHE_STATUS_URL". The final stats URL should contain "?auto" in the end as this is required to fetch the statistics from our agent
Sample value - APACHE_STATUS_URL="http://localhost:80/server-status?auto"
Monitor additional metrics
- To monitor additional metrics, edit the "wordpress.sh" file and add the new metrics that need monitoring
- Increment the plugin version value in the file "wordpress.sh" to view the newly added metrics ( For e.g., change the default plugin version from PLUGIN_VERSION = "1" to "PLUGIN_VERSION = "2")
- Create a folder named wordpress_plugin_performance.
- Download the wordpress_plugin_performance.py and the wordpress_plugin_performance.cfg files from our GitHub repository and place them in the wordpress_plugin_performance folder.
wget https://raw.githubusercontent.com/site24x7/plugins/master/wordpress_plugin_performance/wordpress_plugin_performance.pywget https://raw.githubusercontent.com/site24x7/plugins/master/wordpress_plugin_performance/wordpress_plugin_performance.cfg
- To check if the plugin is working, execute the command below with appropriate arguments and check for a valid JSON output with applicable metrics and their corresponding values.
python3 wordpress_plugin_performance.py --url="http://<Domain or Website>/wp-json/wp/v2/plugins" --username="<Wordpress UserName>" --app_password="<Application Password>"
- Add the applicable configurations in the wordpress_plugin_performance.cfg file:
[Wordpress Plugin Process]url = "http://<Domain or Website>/wp-json/wp/v2/plugins"username = "<Wordpress UserName>"app_password = "<Application Password>"
The http://yourwebsite.com/wp-json/wp/v2/plugins is the REST API endpoint for fetching the status of the WordPress plugins. Provide the equivalent endpoint with http or https://localhost or domain name/wp-json/wp/v2/plugins. Provide an equivalent URL used for your Wordpress setup.
In the above, ensure that the WordPress username is the administrator or a user with access to the REST API. Enter the application password generated in your WordPress site at Admin login > Users > All Users > Application Passwords. Do not enter the password of the user.
Generating an application passwordIf the user doesn't have an application password, follow the below steps to generate an application password:- Open your WordPress site and log in to the wp-admin page.
- Go to Users > All Users and click the username that you want to generate the application password for.
Note: Before generating the password, ensure that the user is an administrator or a user with access to the REST API.
- Scroll down to the bottom and find the option to generate application passwords. In the appropriate fields, provide the application name and click Generate Password.
- After generating the application password, add the applicable configurations in the wordpress_plugin_performance.cfg file.
- Move the wordpress_plugin_performance folder to the Site24x7 Linux server monitoring plugin directory: /opt/site24x7/monagent/plugins/
- Log in to Site24x7.
- Navigate to Plugins and click the required monitor.
Related Articles
- Redis Monitoring
- PostGres Monitoring
- Nagios Integration
- 100+ Integrations
- Create custom plugins: Linux and Windows