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.
We recently 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, .NET Core, Java, Ruby, Node.js, Python and PHP 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.
- WCF Services – SOAP, REST, and even binary formatted messages are tracked.
- 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.
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
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.
Quickly identify your requests per minute (RPM), request average, and calculated satisfaction score.
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.
Retrace can help you track the performance of your .NET, PHP, Ruby, .NET Core, Node.js, Python 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.
- How to Create SQL Percentile Aggregates and Rollups With Postgresql and t-digest - August 10, 2020
- What Is NullReferenceException? Object reference not set to an instance of an object - March 11, 2020
- C# Exception Handling Best Practices - March 4, 2020
- IIS Error Logs and Other Ways to Find ASP.Net Failed Requests - November 6, 2019
- List of .Net Profilers: 3 Different Types and Why You Need All of Them - October 30, 2019