Now that we know there was a spike in CPU usage for one of the hosts of the warehouse service, we can use Change Intelligence to find what caused it. Change Intelligence compares your system’s performance based on span data before and during the alert and correlates those changes to the metric deviation that triggered the alert.

Start Change Intelligence

You can start your investigation using Change Intelligence right from the Alert page. Click Analyze deviation. Start Change Intelligence

Change Intelligence works by comparing performance during the deviation to performance during a baseline time period. You set the deviation time period in the modal (the baseline is set to be right before that).Set the deviation time windows

You can change deviation time window by clicking and dragging the blue box.

Click Analyze deviation to go to Change Intelligence.

Compare performance

Change Intelligence opens with the chart from the alert, showing the baseline (purple) and deviation (blue) time windows that it uses to compare performance. Change Intelligence

Change Intelligence compares the performance of Key Operations on the service that sent the metrics, looking for changes in latency, operation rate, and error rate during the deviation. The operations with the biggest change between the two time windows are shown. In this case, the update-catalog and prune-catalog both experienced changes in p99 latency, but the update-catalog operation also experienced a change in rate. Comparison of changes on Key Operations

Let’s focus the investigation to the changes on this operation, as it has experienced the most amount of change.

Expanding the latency and rate sections, we can see that the changes do coincide with the changes seen in the metric deviation. They both show an increase around the same time. Latency and rate changes

Once Change Intelligence finds performance changes in a Key Operation, it looks at span data from that operation and analyses the corresponding traces, searching for attributes that appear frequently on spans from services up and down the stack during the performance regression. In other words, if an attribute appears on a number of spans during the deviation (and doesn’t on spans from the baseline), it’s likely that something about that attribute is correlated with the issue.

In this case, the customer:ProWool attribute is highly correlated. The row in the table shows that it’s sent from spans from the /api/update-catalog operation on the iOS service (two services upstream) and it appears in over 50% of the traces during the deviation. Attribute correlates with changes

Expanding that row shows SLI charts for that span, and you can see that latency and rate both increased. SLI charts for spans with ProWool

Using the the Show comparison toggle, you can see that for spans that didn’t have that attribute, performance didn’t change nearly as much. Compare to spans without the attribute

So now we know that requests from ProWool coming into the iOS service generated many of the traces that experienced regressions in performance during the metric deviation time period. Now that Change Intelligence has narrowed down our investigation, we can look at traces to understand why.

View traces

Clicking on a span sample during the deviation opens the corresponding trace. Click on span sample

The trace viwe shows us that there was an issue writing to the database from the cache. In this trace, the customer ProWool sent 2,000 requests to update the catalog and it overwhelmed the write-cache and database-update operations, which in turn, caused the increase in CPU utilization. Trace view confirms hypothesis

Change Intelligence found this issue!

What did we learn?

  • Change Intelligence compares performance of Key Operations on the service that sent the metric to find changes in performance between the baseline and deviation time windows.
  • Change Intelligence finds attributes up and down the stack that most often appear in traces with performance issues.
  • By correlating SLI performance to metric deviations using attributes often found during the deviation, Change Intelligence can help find the answer quickly.