How to monitor Microservices?

Microservices are being used every where and for good reasons. They do provide you with many benefits especially improved focus and cutting the time to market. Microservices do bring complexities too. Monitoring microservices is complex because of simply the number of them. Monitoring a user transaction requires monitoring many microservices. Correlating the data from them to identify the root cause manually is a nightmare especially in a complex environment with 100s or 1000s of microservices. This post is not about the pros and cons of microservices but is about how to monitor them easily using Applicare.

We are using an example of two Springboot java microservices – Users and Departments – a user belongs to a department. Every time we go and look up a user using Users microservice it makes a call to Departments microservice to get the department details. I would use Applicare service flow to demonstrate the architecture of our sample.

 

To  enable monitoring on each microservice all we need to do is to add Applicare agent arguments to the start of those microservices along with making Applicare agent binaries available at runtime. We will cover building Docker image of microservice with Applicare agent pre deployed  and running that image in Kubernetes environment in a future blog post. It is super easy.

Once these Users and Departments microservices are started with Applicare agent, they connect and start reporting data to Applicare controller. Once you login into an Applicare controller and download single agent, it includes information about the controller to report the data back. This controller can be on prem, in cloud  or our from SAAS offering.

You get details on infra performance

 

along with cumulative performance of each microservice and performance of each instance.


 

Applicare automatically ties the data together when Users microservice makes a call to Departments microservice for looking up the user’s department details.

 

No more struggling with monitoring of microservices and correlating the data. With Applicare you see complete user transaction details that may span across multiple microservices.

Getting started with Applicare is easy. Simply register to get access to free on prem or in cloud Applicare controller. Remember single agent is downloaded from the controller and deployed in your environment.

Have fun with microservices monitoring and instantly finding root cause 🙂

Applicare 9 – SingleAgent with remote deployment and easy administration

Applicare 9 is a release focused on ease of use – SingleAgent, easy agent deployment and remote administration.

Applicare 9 SingleAgent includes infrastructure monitoring, web servers monitoring, java app servers monitoring, databases monitoring and logs monitoring.

We are able to remotely deploy SingleAgent with just a click for Linux platform (Windows & other platforms coming soon).

 

Applicare SingleAgent 9 takes away all the headaches of changing startup scripts to deploy agent. It is as simple as downloading the agent, running install and voila. Taking the example of java – after SingleAgent install, any java process coming up will automatically be monitored by Applicare without requiring any changes to the startup of that java process. It completely changes the game with respect to agent deployment and makes the process extremely simple.

Starting Tomcat after SingleAgent install on the VM

 

After the start Tomcat is automatically added to Applicare and starts reporting data.

Download Applicare & take it for a spin today.


Synthetic Monitoring

Synthetic Monitoring is referred to as an approach of testing a web service or a website by simulating the website visitors’ requests across various geographies in order to test its availability and performance. One can compare performance stats of different geographies and formulate performance improvement plans. Synthetic monitoring lets you find problems before your customers do leading to shorter MTTR. One can be prepared for diverse user scenarios by testing the websites and applications from the end users perspective.

Advantages of Synthetic Monitoring:

With synthetic monitoring: Operations teams are able to find and fix issues before they impact the end users, monitor business processes and complex transactions, Measure and Adhere to SLAs, baselining and benchmarking, test from the end users’ perspective, prepare for a new market or peak traffic etc.

Two types of Synthetic Monitoring include Active (conducting the tests on schedule) & Passive monitoring (requires user action to initiate the test). There are chances of an issue going unnoticed with passive monitoring e.g. during less traffic hours. For this reason, active approach to synthetic monitoring is considered to be an efficient monitoring approach against outages and slowdowns.

SYNTHETIC MONITORING WITH APPLICARE

Applicare offers four types of synthetic monitoring:

    • HTTP Monitor
    • JMeter Script
    • Script Monitor
    • Screen Scraping Automation

With Synthetic User Experience Analyzer, you can view the performance stats for your configured monitors in real time, graphical and historical views. Double-clicking on an entry in any view or a data point in charts will bring up the BTM trace view or the detailed JMeter script result view if the monitor is a JMeter script.

User Experience

Jmeter Script Execution Details

HTTP Monitor Error Snapshot

Execution Details

Trace details

For further reading on Synthetic Monitoring with Applicare, go to: https://helpdesk.arcturustech.com/hc/en-us/community/posts/360043235972-Synthetic-Transactions

Apache Monitoring with Applicare

Because of its customizable modular architecture catering to a multitude of needs, Apache is a widely used cross-platform web server. Although it has highly stable nature, yet, performance bottlenecks in Apache web server lead to slowness in the web pages. Inability to see the number of web server requests and traffic spikes to the website makes server capacity management difficult. Poor performance of the associated IT infrastructure—operating system, database, virtual machines, hardware, etc.—causes website downtime. Hence, it is important to implement a robust Apache web server monitoring system in order to identify potential problems before they turn into something big.

With Applicare’s Apache Web Server monitoring agent, one can monitor Apache Web Server in real-time, and diagnose performance bottlenecks while running in a live production or development environment. Applicare’s Apache agent monitors the below performance monitoring metrics:

Idle Threads: It is the total number of idle workers/idle processes waiting for an HTTP request. If there are very few or no idle processes, that means the server is using up all the processes and the new requests have to be on hold until the older requests are completed.

Busy Threads show the total number of processes actively processing an HTTP request.

Bytes per Request: This metric gives the average number of bytes being transferred per HTTP request.

Bytes per Second records the total amount of data the web server is transferring per second.

Throughput records the total number of HTTP requests the web server is processing per minute.

The Server Analyzer module of the agent monitors other aspects of the OS such as CPU%, Process, Physical free memory, system load, swap memory usage, TCP Connections etc.

Apache User Experience Analyzer dashboard gives details of types of transactions, number of transactions coming in, number of errors in those transactions, load at any point of time and average response time. Alerts can be generated on transaction failures & SLA violations.

Individual transaction details are available in the Transactions tab.

The module for monitoring Apache Web Server also supports the IBM HTTP Server.

Applicare Apache Monitoring Setup

User Experience Monitoring

“I am going through few videos of [our competitor]…And I must congratulate UI/UX Team of Arcturus Technologies for doing fabulous Applicare dashboards.”

This feedback from a happy customer encouraged us to write & publish about Applicare’s User Experience Monitoring, which is going to be amazingly useful for anyone in the industry.

End User Experience Monitoring enables teams to monitor the impact of application and device performance from the end user’s point of view. End User Experience Analyzer is used to monitor performance of your web applications as experienced by actual end users. This is achieved by automatically injecting Javascript code to your JSP pages which reports back the total time it took to load the page from the time a user clicked the link, network time, server processing and browser rendering times, browser type, user location, and various other data. User Experience Analyzer displays historical data related to end-user performance broken down by different aspects in separate tabs as shown below:

The world map on the Overview tab shows the performance breakdown for each country. One can view top transactions by different criteria such as page count, average page load time etc. The chart shows the performance data over the selected time period / for a specific country selected on the world map.

Transactions Summary view displays performance statistics of transactions for the selected time period  / for the selected transaction, along with the timeline chart.

Data is displayed on the Realtime Transactions tab as soon as users start accessing the application being monitored. This view not only displays the performance stats of the last n number of individual recorded transactions, but also the location and browser information of the users accessing the application. One can reach to the root cause of a slow transaction by drilling down that transaction to find slow methods / SQL queries.

Slow Transactions are determined based on the ‘Saved Slow Transactions Percentage’ specified in UEM Slow Transactions configuration. The ‘Time Distribution’ picture of any transaction helps in identifying where the slowness is, in a matter of a minute.

Browsers tab displays performance data for each client browser processing the transactions.

Servers tab displays performance data of the backend servers processing the transactions.

OS tab shows the OS used by the users of the application being monitored.

Analytics tab provides analysis of the application usage, e.g. Total visits, average page view duration, unique visitors, bounce rate etc.

Interested in trying out Applicare’s UEM? Register here now and get access to the trial version.

Health Check With “Applicare”

‘An ounce of prevention is better than a pound of cure.’

Because Ben Franklin knew a lot about not letting small problems become big headaches, he would have loved Applicare!

Discovering trouble after it happens is too late. The only way to survive in business is to stay ahead of what tomorrow may bring. Arcturus Technologies’ health check service can keep your application environment tuned-up and running smoothly.

Applicare™ is the market’s easiest-to-use next-generation Application Performance Management (APM) and Business Transactions Management (BTM) solution. Its embedded AI monitoring capabilities can improve your app’s health, user satisfaction, and business transactions. Applicare lets you know if something is wrong in real-time. Its innovative alert system enables enterprises to fix problems quickly before they have a chance to become major challenges. Arcturus Technologies is proud to provide application performance monitoring with advanced analytics and data integration platform — the Applicare Platform — that lets organizations to take maximum advantage of their business-critical data.

There is no better way to discover and remediate where enterprise level applications are missing the mark. Applicare delivers instantly! By uniquely combining consulting expertise and Applicare capabilities, we offer a comprehensive health check to review your applications’ environment, configuration, and performance. Register here to schedule an ROI rich “Health Check Engagement”.