This article covers the details of Anypoint Platform’s latest tool (Anypoint Visualizer) for visualizing the Application network and their dependencies and analyze their performance. The article covers the features, Use Cases and Examples of the Anypoint Visualizer. Visualizer is a very versatile Anypoint Platform tool which can provide a graphical representation of the application network. The data displayed in the visualizer is dynamically updated based on real-time traffic information.
Anypoint Visualizer provides a comprehensive view of connections between Mule applications and third-party systems that are invoked. The visualizer also works as a platform to explore the application network along with its performance metrics. It provides a complete picture of how the mule applications work together to form the entire system. The data displayed in the visualizer is secure as it requires the right permission to view and edit the visualizer. The visualizer uses an embedded plugin to collect data. This can be enabled for applications deployed to the CloudHub as well as applications running on stand-alone runtime engine.
The Anypoint Visualizer Canvas provides several options to visualize the data in a very intuitive way. Nodes in the application network can be associated with different layers, assigning tags to each node, adding display names, etc. The data displayed on the visualizer can also be exported as a high-resolution image. The figure below shows the data exported as an image from the visualizer canvas.
Here, we can see the nodes in the application network classified into experience, process and system layers. We can also see how each node is dependent on each other and also visualize the whole application flow along with the backend services that are accessed from the system layer. The display names are also assigned to the flow arrows. The metric visualized is the average memory utilization.
Metrics such as details of inbound connections, average response time, average throughput and average CPU utilization can also be viewed in the visualizer. This will let the developers get a detailed insight into how the application is performing and make a decision on whether there is a need for more resource allocation. The images below show the visualizer data with failure metric and average response time.
Visualizer is a great tool to analyze the failure points in an application network. It is possible to pinpoint the node at which the failure occurs. The average response time metric allows analyzing which node contribute more to the overall response time and thereby take actions to improve the application performance.
The data collected by the visualizer
includes IP address, URL of the incoming request without parameters along with
some header information.
In order to enable visualizer on an application deployed to the CloudHub, monitoring should be enabled. This can be done by opening Anypoint Monitoring and enabling the monitoring for your application from UI or this can be done from the properties by adding the following property.
The same goes for assigning tags and layers. The complete guide for customizing the canvas is available here
Enabling Anypoint Visualizer on On-prem Runtime
To enable monitoring for applications deployed to Mule standalone runtime engine, we have to install the anypoint monitoring agent to the Mule SE. The procedure for this can be found by navigating to Anypoint Monitoring in the Anypoint Platform and click on settings option and then click Hybrid.
Why use Anypoint Visualizer?
Anypoint Visualizer can be a great tool to analyze the application network in different perspectives. This leads to a variety of use cases for the visualizer. The visualizer can make it much easier to understand the application network. If there is a new team member joining the team he or she can easily understand the application network very easily just by using the data available from the visualizer canvas. The new team member can see the dependencies between each application nodes, the layers, see the performance metrics, and also see what all backend systems are being invoked by the application. Without visualizer, the new team member would have to go through the code for each application node in order for him or her to understand the whole architecture.
The visualizer can also be useful in discussing the current design state of the application. As the development continues and applications are being deployed, the progress can be viewed from the visualizer. This can help verify that the initial design decisions are being followed. The visualizer can help to identify and resolve production issues faster. Another use case of the visualizer is that it can be used to create custom dashboards for reporting. The visualizer canvas features like custom views, tags and layers help to create a well-documented visualization of the application network.
Written by: Johnpaul Padinjakkara, Integration Developer at Incepta