Recently, I met Tom, a site reliability engineer (SRE) at a large enterprise. As we talked about how he works, he shared his frustration with trends around microservices-based applications.

Honestly, it surprised me. Microservices-based applications, with their transparency, dynamism, and automation capabilities, should bring more cheers than jeers from SREs. Why was he so unhappy?

He told me that he’s constantly dealing with slow applications, high error rates, poor response times, and services going up and down. Microservices-based apps have delivered more transparency, dynamism, and automation. But sometimes they’re difficult to track and troubleshoot, and it’s hard to identify the root cause of issues and take corrective actions due to the large number of services, the number of instances, and the communication flow. One client request can span multiple requests across different services, and service interdependencies are critical to understanding performance and to troubleshooting.

Scaling, troubleshooting, and ensuring continuous delivery of apps makes monitoring and tracking every service a challenge. This is why we introduced the Citrix Service Graph feature in Citrix Application Delivery Management (ADM). Citrix ADM provides management, monitoring, and analytics for applications deployed using Citrix ADC, as well as lifecycle management for Citrix ADCs. The Citrix Service Graph is an analytics solution for microservices-based apps and plots the complete communication flow, provides performance metrics, and color codes the nodes and edges based on their performance and status.

Citrix Service Graph depicts the complete communication flow across different microservices, as shown in the images above. You can see that inventory-service is in a red state due to high error rate and can view performance metrics using the tooltip by hovering your over the node. You can also see performance metrics between two services, such as sales-portal to product catalog service, by hovering over an edge.

With Citrix Service Graph, Tom can see the complete communication flow of each service. Looking at a node’s and edge’s color, he can identify the trouble spots. And he can get performance metrics, as well, just by hovering over the edge or node. Citrix Service Graph shows the directional communication and computes service response time, hits, data volume, and errors such as 500 – Internal Server Error.

Citrix Service Graph also supports a rich set of filters so you can slice and dice the graph. The large number of microservices in an enterprise environment can overwhelm IT admins. These filters enable a user to focus only on the set of services they’re interested in. As you can see from the above diagram, a user can view the supported filters by clicking on No Filters and by selecting any listed filters from Overview or Service Labels from the Citrix Service Graph.

Citrix Service Graph also enables a user to view historical data and zoom in on any time period. A user can select the last hour, day, week,  month, or a customized time period. Citrix Service Graph will use the data for the selected period to plot the graph. A user can select the custom time from the right drop-down box or select the duration from the displayed time duration.

Finally, Citrix Service Graph provides a summarized and aggregated view of analytics data for the selected time period. A user can drill down by double-clicking on any edge of the service graph and see the detailed transactions. The detailed transaction view shows various attributes of a transaction and you can access an expanded view by clicking on the left pointer. A rich set of query capabilities enables you to search across different transactions using regular expressions, as well.

Tom was a lot happier after seeing the capabilities of the Citrix Service Graph (and using it). And I was excited about the impact our innovative technology can have on an SRE’s daily routine.

Learn more about Citrix Service Graph for Cloud Native Apps and Citrix ADM.