Kinsta’s APM tool helps you identify PHP performance bottlenecks on your WordPress site without having to sign up for third-party monitoring services like New Relic.

Available at no additional charge on all plans, the APM tool can be really useful when it comes to troubleshooting your website. The APM tool is designed to capture timestamped information about your WordPress site’s PHP processes, MySQL database queries, external HTTP calls, and more.

With the APM data, you can dig into specific slow page loads to identify the root cause of the issue.

Keep in mind that Kinsta’s APM tool is specifically designed to help you monitor WordPress sites, so using it to monitor a site running on another CMS or framework may result in inaccurate results. Thus, we only recommend using it for WordPress sites.

The APM tool is currently in open beta, so we recommend proceeding with caution. If the APM tool causes an issue with your site, please submit a bug report via the official beta feedback form.

APM Tool Terminology

Before we dive into how to use the APM tool, let’s define a few important terms that will be used later on.

APM

APM, short for “Application Performance Monitoring” is a tool that gives you insight into the performance statistics and trends of an application. Kinsta’s APM tool provides you with actionable data about the performance of your WordPress site.

Request

In the context of the APM tool, a request refers to a visit to your WordPress site that requires PHP execution to render. A request URL can include various query string parameters and triggers a corresponding transaction.

For example, a request to yourdomain.com/wp-cron.php?arg=1&arg2=2 would trigger a /wp-cron.php transaction.

Transaction

A transaction refers to the backend activity that occurs to serve a request to your WordPress site. For example, the transaction for a request to /wp-login.php contains the individual PHP processes that generate your WordPress site’s login page.

Span

A span refers to an individual process in a transaction. A single transaction may consist of hundreds of spans arranged hierarchically.

For example, a transaction that generates an account page for a WooCommerce customer may consist of a span that breaks down into multiple database query spans.

Transaction Sample

A transaction sample refers to a selected instance out of many requests to a specific transaction endpoint (e.g. /single.php, /wp-cron.php, etc.). In the APM tool, you’ll have three samples to choose from.

For example, the APM tool may record dozens of /wp-cron.php transactions. In this case, the APM tool will pick out the slowest transaction and call it a transaction sample.

Transaction Trace

A transaction trace is a complete timeline of all processes that occurred in a transaction sample. In our APM tool, a transaction trace is represented by a list of spans with its corresponding duration and timestamp information.

Transaction trace timeline for a transaction sample.

Transaction trace timeline for a transaction sample.

Stack Trace

A stack trace is a detailed process breakdown for an individual span. Stack traces are useful for in-depth debugging. They contain very detailed information about the PHP code that was executed, down to a specific PHP file and line of code.

A stack trace for a span.

A stack trace for a span.

How to Enable Kinsta’s APM Tool

By default, the APM tool is disabled. Since the APM tool requires additional server resources, we recommend only enabling it when you’re actively troubleshooting a performance issue on your WordPress site.

To enable the APM tool, access your MyKinsta dashboard, navigate to your site’s “Monitoring” page, and click Enable Performance Monitoring.

Enable the APM tool in MyKinsta.

Enable the APM tool in MyKinsta.

After enabling the APM tool, our monitoring agent will start logging PHP transaction data for subsequent requests to your site.

How to Select a Monitoring Time Frame

By default, the APM tool provides monitoring data from the past 60 minutes. However, the monitoring time frame is customizable, and you can choose between the options below.

To change this setting, click on the time frame dropdown and select an option.

Change the APM tool monitoring time frame.

Change the APM tool monitoring time frame.

How to Refresh the Kinsta APM Tool

Kinsta’s APM tool displays performance monitoring data based on the set time frame (e.g. past 30 minutes, past 60 minutes, etc.). To prevent confusion, the APM tool does not automatically refresh data. To refresh the APM tool and display the latest data from the selected time frame, click on the “Refresh” button next to “Performance Monitoring” at the top of the APM tool page.

Use the “Refresh” button to update APM data.

Use the “Refresh” button to update APM data.

How to Read APM Tool Insights

Since the data logging does not start until after the APM tool has been enabled, you’ll need to give it some time to gather performance data for your site. We recommend waiting 5-10 minutes before inspecting the monitoring data.

After that, here are some key insights to look at.

APM Tool – Overall Transaction Time

The “Overall Transaction Time” bar graph gives you a visual representation of transaction time data from the selected timeframe. Each bar consists of a multicolor breakdown of PHP, MySQL, Redis, and External transaction times. The “Overall Transaction Time” graph also shows the selected timeframe’s average transaction time in the upper right corner.

The “Overall Transaction Time” bar graph.

The “Overall Transaction Time” bar graph.

APM Tool – Slowest Transactions

The top ten slowest PHP transactions will appear in the “Slowest transactions” section of the page, which is split into six columns – ”Transaction”, “Total Duration (%)”, “Total Duration”, “Max Duration”, “Avg. Duration”, and “Rate Per Min”.

  1. Transaction – displays the transaction endpoint of slow requests that consumed the most PHP time (e.g. /wp-cron.php, /wp-json, etc.).
  2. Total Duration (%) – the percentage of time consumed by a transaction endpoint within the selected timeframe. The duration percentage is calculated with the “Duration (Time)” values, so it also does not represent the duration of an individual transaction sample.
  3. Total Duration – the total amount of time consumed by a transaction endpoint within the selected timeframe. Note that the duration refers to the sum of the duration of all requests to a particular endpoint, and does not represent the duration of an individual transaction sample.
  4. Max Duration – the slowest transaction sample duration from the selected timeframe.
  5. Avg. Duration – the average of all transaction sample durations from the selected timeframe.
  6. Rate Per Min – the number of times a transaction has run on average per minute in the selected timeframe.
Slowest transactions in the Kinsta APM tool.

Slowest transactions in the Kinsta APM tool.

APM Tool – Transaction Sample

If you click on a transaction in the “Slowest Transactions” list, you’ll be presented with a modal containing up to three transaction samples from the selected timeframe.

  1. Slowest Sample – the slowest transaction sample for a given transaction endpoint.
  2. 95th Percentile – a transaction in the 95th percentile (95% of transactions are faster than this transaction sample).
  3. 50th Percentile – a transaction in the 50th percentile (50% of transactions are faster than this transaction sample), also referred to as the median. You can think of this as the typical duration as there are exactly the same amount of slower and faster samples than this.
The transaction sample modal in the Kinsta APM tool.

The transaction sample modal in the Kinsta APM tool.

If there is enough monitoring data, the APM tool will display three transaction samples. If there is not enough data, you may see one or two samples. For example, the “slowest sample” and “95th percentile” sample may refer to the same transaction sample.

The “Transaction Samples” modal also shows useful information about each transaction sample including the timestamp, transaction endpoint, request URL, and duration.

If you click on a transaction sample in the modal, you’ll be brought to a dedicated page for the selected sample. This “Transaction Sample” page includes the sample’s timestamp, transaction endpoint, URL, duration, HTTP status code, and a full transaction trace timeline.

Transaction info in the Kinsta APM tool.

Transaction info in the Kinsta APM tool.

  1. Timestamp – the date and time of the transaction sample.
  2. Transaction – the PHP endpoint of the transaction sample (e.g. /wp-cron.php, /single.php, etc.).
  3. URL – the specific URL of the transaction sample.
  4. Duration – the duration of the transaction sample in milliseconds.
  5. Result – the HTTP status code of the transaction. If you see a “HTTP 200” result, it means the transaction was slow, but ultimately successful. However, if you see a “HTTP 503” result, it could mean the transaction timed out.

Each transaction sample has its own permalink or unique URL. This makes it easy to reference and share a specific transaction sample with your colleagues or the Kinsta support team.

Transaction sample permalink.

Transaction sample permalink.

APM Tool – Transaction Trace Timeline

In addition to basic transaction info, the Kinsta APM tool also gives you a more detailed transaction trace timeline. Within the transaction trace timeline, you can see a step-through presentation of spans – PHP processes, MySQL database queries, and external calls for a particular transaction sample.

Each span also has its associated duration and relative timestamp, so you can quickly identify the longest and most problematic part of the request.

Relative to the total duration of the transaction sample, we are showing:

These highlights are always referred to the relative duration of the span in its own sample’s context. So if you’re seeing anything red, always take into account that it’s always compared to that given sample (and your site or web app might not be slow as a whole as you first thought).

Need a blazing-fast, secure, and developer-friendly hosting for your client sites? Kinsta is built with WordPress developers in mind and provides plenty of tools and a powerful dashboard. Check out our plans

Note that for MySQL and Redis queries, we do not include spans shorter than 0.001 ms. For non-database-related spans, the threshold is 1 ms. We purposely exclude short spans because recording a high number of fast elements can impact the performance of your site, and does not provide very useful data.

The transaction trace timeline in the Kinsta APM tool.

The transaction trace timeline in the Kinsta APM tool.

This detailed trace timeline is very useful for troubleshooting performance issues because it helps you pinpoint exactly what the bottleneck is.

For example, you may notice that the /wp-admin/admin-ajax.php is caused by long API requests to social network APIs. Armed with this knowledge, you can then continue testing your site with your social plugin disabled to see if it makes a difference.

Similarly, if you see a slow transaction to /wp-cron.php that contains repetitive HTTP requests initiated by a cache preloading plugin, you can act quickly on that information and disable the cache preloading functionality.

Span Details

If you click on a span in the transaction trace timeline, you’ll be able to see a detailed overview with a complete stack trace and associated information.

For example, if you click on a MySQL query span, you’ll see the database query that was executed along with the stack trace. By inspecting the span details, you can gain a deeper level of insight into PHP transactions on your WordPress site.

Span details in the transaction space timeline.

Span details in the transaction space timeline.

In most cases, fixing performance-related issues identified by the Kinsta APM tool falls out of the scope of our support. If you require additional assistance with optimizing your WordPress site, we recommend reaching out to one of our partners.

Kinsta APM FAQ

We’ve compiled a few popular questions regarding Kinsta APM, and provided answers to them below.

How Can I Enable Kinsta APM?

Kinsta APM is available at no additional costs with all plans. To enable it, you need to:

  1. Log in to your MyKinsta dashboard
  2. Click on the website you’d like to debug
  3. Click the “Monitoring” tab
  4. Click “Enable” on the top-right corner to start APM

Will Kinsta APM Slow Down my WordPress Site?

As with other APM tools, Kinsta APM’s agent might add additional load to your server’s CPU and RAM resources and could potentially slow down your WordPress site for a limited time.

We strongly recommend only enabling Kinsta APM when you’re actively diagnosing a performance issue on your site.

Does Kinsta still support personal New Relic monitoring for customers with personal New Relic licenses?

Yes, Kinsta sites still support New Relic monitoring for customers with personal licenses.

Is it possible to use Kinsta APM and New Relic at the same time?

We do not recommend using both Kinsta APM and New Relic for monitoring at the same time. However, it’s okay to switch between Kinsta APM and New Relic as long as both tools are not active at the same time.

Is Kinsta APM compatible with other CMS platforms and frameworks?

At this time, Kinsta APM is only fully compatible with WordPress.

What If I See Some Unexpected Behavior on My Site After I Enable Kinsta APM?

We’ve already done extensive testing with different WordPress versions and a long list of plugins, however, there can still be unknown wrinkles to work out, like a plugin version or some custom development being incompatible with our monitoring solution.

For this reason when you enable the feature, always double-check that your site works fine, and if you see anything unintended behavior, disable the feature and make sure to let us know so that we can investigate and work out the issue.

Feedback

At Kinsta, we are passionate about building tools and features that help you launch, develop, and manage WordPress sites with greater ease.

As we progress through the open beta phase for the Kinsta APM tool, we are looking forward to your valued feedback and ideas. To get in touch with our team, please use this feedback form. We appreciate your help!

Summary

Kinsta’s APM tool gives context to performance issues on your WordPress site. Instead of generic HTTP 502 errors or timeouts, the APM tool provides you with detailed breakdowns of slow requests.

With the Kinsta APM tool, you’ll be able to debug performance issues without installing a plugin like Query Monitor or activating a third-party service like New Relic.

If you’re working with a developer to address issues on your WordPress site, the Kinsta APM tool can also help you save time and money by providing you with a place to start.


If you enjoyed this tutorial, then you’ll love our support. All Kinsta’s hosting plans include 24/7 support from our veteran WordPress developers and engineers. Chat with the same team that backs our Fortune 500 clients. Check out our plans