How to Monitor Web Services Performance with Retrace

Today’s applications depend on a wide array of 3rd party and internal web services. Retrace has always been able to monitor how often your code accesses any type of HTTP web services over REST, SOAP, etc. This includes popular external services like Twilio, SendGrid, Amazon S3, or others. It also would include your own microservices.

In our latest version of Retrace, we have added even more functionality and detail around how we track the performance of HTTP web services that your application consumes.

Please Note: Some of the functionality below is dependent on the latest versions of the Retrace monitoring agents due to some data collection changes.

Types of Web Services Retrace Tracks

Retrace works by instrumenting and profiling your .NET and Java code. It can detect every time your code makes an external HTTP request. Here are some examples of the types of services it will detect and monitor for you.

REST APIs – Any type of HTTP service being used by 3rd party vendors will be tracked. Including Twilio, Google, Twitter, Amazon S3, etc.

Microservices/SOA – If your app calls a lot of other internal web services or microservices, Retrace’s tracking will help find problems between them.

Elasticsearch – Retrace can track all of your Elasticsearch queries since they operate over HTTP.

PaaS Services – Many cloud services like Amazon S3, Azure Storage, and more use HTTP within their libraries.

For a complete list of what types of frameworks Retrace works with, please see our .NET and Java docs.

Viewing Performance of Web Services

Retrace now tracks the performance down to to the URL being accessed. In the past, we only tracked performance by the entire domain name being called. The more detailed reporting makes it easier to understand the performance of different HTTP operations.

Below is an example of the new application dashboard within Retrace. In this example, we can see the performance of Chargify and our Elasticsearch nodes. This view shows the top 5 but you can access all of them.

Identify What is Calling the Web Services

Retrace provides reporting to help you identify where in your code is making all of these web service calls. From our example above, we can see that Chargify is being called a crazy amount of times. By clicking on that URL we can dig into to learn more.

The screen below shows more details about how often the web service is called and how long it takes over time. We can also see a breakdown of all of the URLs or MVC actions within our software that are calling the web service. This helps us understand what it impacts and what is using it.

Code Level Request Tracing of Web Services

One of the best features of Retrace is the request traces it collects. They show a ton of details about what your code is doing. Including SQL queries, logging, HTTP web service calls and much more.

Within the context of a web request, you can see when the web service call was executed, how long it took and everything that happened just before and after it.

Developers are often surprised to see how many SQL queries and HTTP web service calls their code is making. The level of context and details that are collected make it significantly easier to find bugs and ways to optimize your code.

You can see the web service call highlighted below. As well as several Redis and SQL queries that were called. Sensitive details have been masked out.

What is Your Web Service Doing?

If your application is calling one of your own web services, you can monitor the performance on both sides. You can see how long it takes from the code that is calling your web service. You can also track the performance of your web service itself.

This gives you end to end visibility of what your code is doing and how your applications are performing.

Retrace can tell you how your web service is performing and how often it is being called.

From the request below, you can see that it is pretty slow most of the time. The performance breakdown shows that it executes a lot of SQL statements that add up to a lot of time.

Summary

Retrace can help you track the performance of your ASP.NET and Java web services from end to end. Track what web services you are calling and how they impact the performance of your software. You can also break down the performance and usage of your own web services to monitor their performance and look for ways to optimize performance.

Matt Watson :Matt is the Founder & CEO of Stackify. He has been a developer/hacker for over 15 years and loves solving hard problems with code. While working in IT management he realized how much of his time was wasted trying to put out production fires without the right tools. He founded Stackify in 2012 to create an easy to use set of tools for developers.