The Priceline Group of Companies (Nasdaq: PCLN) is a leader in global online hotel reservations, with approximately 61 million room nights booked in 2009. The Group is composed of four primary brands: Booking.com, priceline.com, Agoda.com and TravelJigsaw. The Priceline Group provides online travel services in 34 languages in more than 94 countries in Europe, North America, Asia, the Middle East and Africa. In the U.S., Priceline.com gives leisure travelers multiple ways to save on their airline tickets, hotel rooms, rental cars, vacation packages and cruises. Hoping to keep its complex multi-tier web application running smoothly as its customer base increased, Priceline.com recently replaced its homegrown monitoring solution with AppDynamics. Priceline.com’s support agents and engineers now use AppDynamics to monitor performance across a highly distributed application, zeroing in on the exact lines of code that are causing problems. By using AppDynamics to dynamically discover and instrument its distributed application, Priceline has gained an end-to-end view of its business transactions.
Homegrown Tools Limit Ability to Monitor Performance
Millions of people visit Priceline.com each year in search of discount airfares and hotel rooms. They expect the website to deliver precise information without delay—and if it doesn’t, they’ll simply surf to a competitor. To get customers and keep them coming back, Priceline.com makes performance a top priority for its multi-tier web application.
As Priceline.com’s transaction volume continued to grow, the company wanted to ensure a positive end user experience by accelerating its mean time to repair (MTTR) for common problems, correlating user requests with business transactions, and maintaining a consistent view of performance across its multi-tiered environment. But Priceline’s homegrown monitoring solution and assortment of third-party tools couldn’t support these goals.
“Our in-house monitoring solutions gave us only limited ability to visualize and trace transactions,” explains Giri Nathan, Vice President of Engineering and Priceline.com. “We also weren’t satisfied with our level of visibility into our custom container.”
A Low-Overhead Solution for a High-Volume Environment
Focusing on several key requirements, Priceline.com began to evaluate monitoring solutions. Because of Priceline.com’s high-volume environment, any solution would need to run with low overhead. Priceline.com craved the visibility to trace calls and distributed transactions, and to trigger diagnostics automatically whenever there was a policy violation. The company also wanted to be able to measure performance changes from a central location and capture statistical information from its in-house custom applications.
With these needs in mind, Priceline.com evaluated AppDynamics in a rigorous proof of concept. Mr. Nathan immediately liked what he saw. AppDynamics validated an overhead rate of less than 1 percent, provided a distributed transaction view and a deep diagnostic approach, and stood up to load and stability tests. And AppDynamics exceeded Priceline.com’s expectations for vendor responsiveness.
“During the proof of concept, we asked for two things the AppDynamics product didn’t already have: transaction correlation over JBoss RMI, and an API to instrument our custom container,” says Nathan. “I was amazed when AppDynamics’ engineering team turned around both of these requests in less than one month. Their responsiveness was as big a factor as anything else in convincing us that AppDynamics was the right choice.”
Zeroing in on Bugs Reduces Mean-Time-to-Repair
AppDynamics’ fast, easy implementation process gave Priceline.com the flexibility to deploy the solution in both its staging area and full production environment. Every month, Priceline.com pushes about 2,500 new builds into production. In this agile environment, keeping up with manual instrumentation would have been impossible.
“AppDynamics increases our agility by letting us instrument any new code on the fly,” says Nathan. “We can monitor everything from servlets and Enterprise JavaBeans entry points to JDBC exit points, which gives us an end-to-end view of our transactions.”
Using AppDynamics, Priceline.com has already made major improvements in two key areas: reducing MTTR, and analyzing trends. Because support agents and engineers can now zero in on the code, they can proactively address slow SQL responses, slow business transaction responses, stalls and hangs, out of memory errors and other common issues. Meanwhile, Priceline.com’s support agents analyze trends with an eye for spotting specific changes in the company’s configurations, hardware and software, and code.
“Eagle-Eye View” Prevents Performance Bottlenecks
AppDynamics’ monitoring capabilities have helped Priceline.com solve two lingering problems in its code. Before implementing AppDynamics, Priceline.com’s Java Virtual Machine was constantly running out of memory. Using AppDynamics, support agents identified a code bug that was causing elements within cached objects to be appended rather than updated, which was causing the cache to grow exponentially. AppDynamics also alerted the company to an application performance issue that was causing excessive calls to the LDAP server.
“AppDynamics gives us an eagle-eye view for slow-running methods and queries,” says Nathan. “It also provides historical data, so that we can get a baseline for normal performance and then trigger diagnostics if there’s a major deviation.”
Mr. Nathan is convinced Priceline.com made the right choice. He cites AppDynamics’ customer centric engineering approach, robust functionality, and ability to share monitoring best practices.
“AppDynamics is ideal for our high-volume, distributed environment,” Nathan explains. “Right from the start, they’ve been willing to listen to our specific technology requirements. In some cases, they have even become a virtual member of our triage team. For these reasons, I strongly recommend AppDynamics to friends and colleagues.”