© 2015 IBM Corporation © 2015 IBM Corporation Optimize the performance of your enterprise MongoDB applications with IBM APM Timothee Bouhour, Product Manager IBM Application Performance Management
© 2015 IBM Corporation© 2015 IBM Corporation
Optimize the performance of your enterprise MongoDB applications with IBM APMTimothee Bouhour, Product Manager IBM Application Performance Management
© 2015 IBM Corporation
Please note
IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion.
Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.
Symbols used are Copyright of their respective corporations.
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
© 2015 IBM Corporation
The Application Economy of the 21st Century
3
Applications not only run the business, but increasingly drive competitive advantage and create new business models
Mobile “apps”Modern workforce expects
constantly updated software to connect to enterprise systems
CloudSoftware can be developed and
hosted in a more flexible, accessible, lower cost manner
Internet Of ThingsThe software component in smart products and devices
enabling value creation through connectivity and insight
Collaboration/SocialConnecting individuals, inside and outside the
organization, to share insights, assets and improve quality
Big DataNew applications provide insights by
interpreting massive quantities of data
InnovationApplications
Customers Business Owners
Dev & Test Operations/ Production
Continuous Delivery
© 2015 IBM Corporation
360° View of the Customer
Mobile & Social Apps Fraud Detection
User Data Management
Content Management & Delivery
Reference Data
Product CatalogsMachine to Machine
AppsData Hub
MongoDB is good for…
© 2015 IBM Corporation
Developers
IT Operations
Lines of Business
Digital Marketer/Strategist
Enable Immediate gratificationInstant access from anywhere
Connect and Collaborate
Low Touch, easy to consumeMinimal coding, lots of mashingContinuously updating to delight, compete
End user experience, Business transactions,Customer experience
management
Infrastructure as CodeManage on and off prem service
SocialMobile
Internet of Things
Cloud
Big Data
Consumer expectations are driving disruption in Application Teams
© 2015 IBM Corporation 6
Applications are critical to business successSlowdowns and outages impact customers, revenue, and reputation
Application Performance Management can keep your apps up and protect your revenue and reputation
E-commerce websitesOne of the largest e-commerce websites in the world experienced twelve outages in a year, impacting their customers and reputation (link)
Financial and customer-impacting applicationsTrading halted for half a day on the biggest US exchange for financial options following an outage caused by software problems (link)
New technology and mobile applicationsCustomers poured out their wrath via social media after the largest video streaming company had an over 20-hour outage on Christmas Eve (link)
© 2015 IBM Corporation 7
Without Application Performance Management With Application Performance Management
1. You don’t know there is a problem until your users complain
1. Identify performance issues
2. It’s hard to figure out where the problem is occurring
2. Isolate where the problem is occurring
3. Finding the cause and resolving a problem costs time, people, and resources
3. Find the root cause of the problem
When there is an outage or a slowdown, users are affectedBut it’s often next to impossible to figure out what’s going wrong
???
??
© 2015 IBM Corporation 8
Find the root cause of the problem down to the line of code diagnose problems 90% faster
Identify performance issues before they affect your users improve availability by 60-90%
Isolate where the problem is occurring by visualizing bottlenecks reduce outages by 50% or more
Reduce your costs with SaaS deployment improve TCO by up to 45%
1
2
3
Application Performance Management Helps you keep your users happy and your revenue flowing
© 2015 IBM Corporation 99
What clients say• Videotron enables sustained service delivery,
fosters business growth and protects the company’s image by implementing transaction tracking to monitor its end user experience. Simulating transactions helps the client avoid incidents that could be damaging to the company. Videotron – a cable, mobile and Internet Service provider
• “Many times a problem was found before it hit our clients” Lajos Tancsik, Head of IT operations, CIB Bank
The features
• End User Experienceget information straight from the browser about who your users are and how their experience is
• Infrastructure monitoring know the status of all your components and when one is starting to fail
• Predictive Insights Be warned of an application outage before is occurs
How they help
• When you have a problem, you can resolve it before your customers notice and complain!
Identify performance issues before they affect your users improve availability by 60-90%1
© 2015 IBM Corporation 1010
What clients say• China Everbright Bank gained an
efficient, scalable management platform for end-to-end transactions monitoring. They can now quickly and easily detect, diagnose and isolate transaction issues, enabling faster troubleshooting and avoiding potential risks - enabling them to reduce operating and maintenance costs and enhance user satisfaction.China Everbright Bank
The features
• Transaction tracking See what happens in your environment every time a user initiates a transaction
How they help
• Identify at a glance where the problematic pieces of a transaction are (the “bottleneck”)
Isolate where the problem is occurring by visualizing bottlenecks reduce outages by 50% or more2
© 2015 IBM Corporation 11
Find the root cause of the problem down to the line of code diagnose problems 90% faster 3
11
What clients say• Streamlining and centralizing processes
helps us accelerate delivery of channel usage analytics by 60%.Barclays Bank
The features
• Line of Code Diagnostics – drill down into a problem until you find what is behind it
How they help
• Find the root cause fast whether it’s a failing component of your app, a slowly responding database query, or a poor performing line of code
© 2015 IBM Corporation 12
How does APM work and what do you need to do?
End usersWeb Servers App Servers Databases
agent agent agent
APM Backend
You install our “agents” on the different pieces of your applications.
These agents collect key data and send it back to our APM “backend”
The APM backend then analyzes the data and provides the users with useful dashboards in the APM User Interface (APM UI)
Devices
© 2015 IBM Corporation 13
Huge Breadth of Coverage and still expanding
See our full coverage
© 2015 IBM Corporation
IBM Performance Management for MongoDB monitors…. Availability of the MongoDB cluster,
replication set, and single instances
Shard statistics, indexing statistics
Holding and acquiring lock times of read and writes to each database on each MongoDB process
Disk usage by collections, used connections
Detailed response time breakdown for MongoDB daemons and operation types.
© 2015 IBM Corporation
The next step – IBM Service EngageLearn, Explore, Try and Buy IBM Application Performance Management
© 2015 IBM Corporation
The Application Owner logs into the IBM Performance Management tool to diagnose the root cause of the problem. He notices the web response time of the HR app trending upward. He notices there are some critical events.
© 2015 IBM Corporation
On the events panel there are a few events for Ruby that indicate a high response time on the GET and PATCH requests for the “Profiles” page of the HR application. He clicks on an event to go to the Ruby dashboard.
© 2015 IBM Corporation
On this dashboard he sees various metrics that are being displayed about Ruby. By sorting the response time list, he can see the slowest requests. In order to diagnose further he hits the “Diagnose” link
© 2015 IBM Corporation
The Diagnose link takes him to a view that gives him code level visibility. He can see the exact Ruby class and method that is causing the slow GET/PATCH requests for the “Profiles” page. He finds out that the “ProfilesController.Update” method is taking a very long time. Being the application owner he knows that the Update method is the one that makes the heavy calls to update data in the MongoDB database.
© 2015 IBM Corporation
He now clicks on the MongoDB dashboard to see what’s going on thereOn the MongoDB dashboard there are various metrics related to the health of the MongoDB database. He clicks on the “profiles” collection related to the “Profiles” page
© 2015 IBM Corporation
The shard statistics of the “profiles” collection indicates that his shards are unbalanced both in object and data size percentage. This proves that his shard key is causing the bad response time; one shard has to do a large amount of the work.
© 2015 IBM Corporation
There is various other information indicating problems like lock times increasing, memory usage and virtual memory usage increasing for the MongoDB database. The Operations widget shows that the Update and GetMore operations are taking very long