Ever wonder which services send requests to one of your back-end services? More than just knowing which service directly calls one of your services, what about the sequence of service calls that leads up to each request, all the way back up to the browser click that triggered the sequence of calls? Dynatrace service backtrace can provide you with exactly this information.

Say for example that you’re analyzing a SQL database service and you want to understand the sequence of preceding service requests that ultimately triggered the incoming requests to the SQL service. With service-level backtrace you might learn that, for example, the SQL database service is called by Service1, while Service1 is called by Service2, which in turn was triggered by a click on a Login button.

Consider another example. The screencapture below shows that a CouchDB service receives 24.5 requests per minute and that all those requests come from a single service. But you know that the service in question is called by other services that collectively make up your web application. The question is, how can you know exactly which click leads to which specific request?

service backtrace

To answer this, click the More […] button on any Service page. Then click Service backtrace.

service backtrace

service backtrace

Notice in this example that the requests come from a single web application: easyTravel. Also notice that the calls come in via a specific chain of services (Nginx calls the easyTravel Customer Frontend which in turn calls CouchDB). But there’s more. Click the View requests button for any of these services to see the names of individual requests.

Now you can see that all Image requests to CouchDB come from three user actions. Most of these were triggered by the loading of Homepage and the page /special-offers.jsp, but some requests were also triggered by a click on the Login button.

service backtrace

Service-level backtrace works for every service and request type, including database requests. In the screencapture below you can see where all Write requests to the easyTravel-Business MongoDB database come from. The majority come in via the Login click and the Authentication service.

service backtrace

service backtrace

Analyzing the impact of errors

This feature becomes even more useful when it comes to analyzing errors! See the image below. It shows a 100% Failure rate for the AdsForBlog request.

service backtrace

Analyzing the failure rate increase shows you that the root cause of the failures is an exception—you get the message and the stacktrace. But is this important? Does this have any impact on your users? To find out, click the new service backtrace button.

service backtrace

Dynatrace shows you how this failed request impacts your other services and your users. You can see that all requests come from a single user action, the loading of the blog. You can also see that the /blog request on the web server isn’t impacted by the failed Ads request. Not a single /blogs request failed, so it seems that the error is handled gracefully.

service backtrace

service backtrace

In contrast, have a look at the service analysis page below. You can see immediately that the failure of the CreditCard service has some impact on your users. The Booking requests fail and users can no longer buy things. This shows clearly that this error is of high importance and should be addressed immediately.

service backtrace

service backtrace

service backtrace

Understanding third-party impact

Dynatrace enables you to analyze which services call which third-party services, in addition to the browser click that began the sequence of calls. In the screenshots below you can see that all requests to fedex.com are failing. The service backtrace tells you which services and which user clicks led up to this third-party call.

service backtrace

service backtrace

There is much more that Dynatrace can do here and we will extend this feature in the near future.