Garmin ensures seamless user experience with AppDynamics

Founded in 1989, Garmin is the leading worldwide provider of navigation devices and technologies. In addition to its popular consumer GPS products, Garmin also offers devices for planes, boats, outdoor activities, fitness, and cars. The vertical integration of these products keeps the design, manufacturing, marketing and warehouse processes all in house, allowing Garmin to deliver a seamless experience to its users.

Challenge: Needed real-time and historical visibility in production

The end-user experience is critical to Garmin and its customers, which makes the speed of its web and mobile applications one of its highest priorities. Doug Strick, Internet Application Admin III, was responsible for the performance of several of Garmin's web applications, including the online store and applications that powered the call center.

Garmin used several tools to monitor the performance of their web application and troubleshoot issues, but found that they weren't powerful enough to deliver true visibility into application performance. “We never had anything that would give us a good deep dive into what was going on in the transactions inside our application?we had no historical data, and we had no insight into database calls, threads, etc.,” said Strick.

“We knew we needed a tool that could constantly monitor our production environment, allowing us to collect historical data and trend performance over time,” said Strick. “Also, we needed something that would give us a better view of what was going on inside the application at the code level.”

AppDynamics APM proved an agile and versatile solution

Garmin needed an application performance management (APM) solution designed for high-volume production environments, and found that AppDynamics APM best suited its needs. Garmin's operations team was able to run the AppDynamics solution in their production environment to more quickly respond to performance issues and collect historical data.

The ease-of-use of AppDynamics APM made it more appealing to developers than other products.

The product's usability stood out from the competition: “The ease-of-use of AppDynamics APM made it more appealing to developers than other products,” said Strick. “They all preferred the cleaner, simpler approach.” 

It also worked with other tools in the network, such as Splunk, a log management system that Garmin used to aggregate and search their application logs. “I think AppDynamics and Splunk complement each other well,” said Strick. “AppDynamics allows me to capture code execution details without modifying the code for logging purposes.” 

Since the AppDynamics platform was deployed, Garmin has addressed several issues in its most important applications:

Improved memory usage

Before the AppDynamics platform was deployed, Garmin was unable to track application memory usage over time, making it difficult to determine future resource requirements or diagnose issues like memory leaks. Occasionally memory-related problems would degrade the performance of the application and affect Garmin's end users.

We can now understand how the application is growing over time. This data will prove invaluable in guiding future decisions in IT.

With the historical data provided by the AppDynamics APM solution, Garmin was able to see that their application was using more and more memory over time. In the short term, they were able to add more memory to the VMs and increase the heap size in order to relieve the support teams. In the longer term, they decided to move the cache out of the heap in order to prevent the problem from reappearing. In addition, they set up alerts in the AppDynamics solution on heap usage and garbage collection times so that they could respond more quickly the next time the application began to run out of memory.

Supported functionality until patch was available

Facing the prospect of manually restarting JVMs over the weekend, Garmin's operations team decided to utilize AppDynamics Run Book Automation to automatically restart the JVM when the percent of heap used exceeded a certain threshold. They created a simple Python script, which they invoked with a shell script that was called by the platform. The whole process took less than 30 minutes and, after they validated that the restart was successful, the team was able to enjoy the weekend.