performance monitoring APM refers to monitoring the Key Performance Indicators

Performance monitoring apm refers to monitoring the

This preview shows page 463 - 465 out of 517 pages.

performance monitoring (APM) refers to monitoring the Key Performance Indicators (KPIs) that directly impact business value . KPIs are by nature app-specific—for example, an e-tailer’s KPIs might include responsiveness of adding an item to a shopping cart and percentage of user searches in which the user selects an item that is in the top 5 search results. SaaS apps can be monitored internally or externally. Internal or passive monitoring works by instrumenting your app, adding data collection code to the app itself, the environment in which it runs, or both. Before cloud computing and the prominence of SaaS and highly-productive frameworks, such monitoring required installing programs that collected metrics periodically, inserting instrumentation into the source code of your app, or both. Today, the combination of hosted PaaS, Ruby’s dynamic language features, and well-factored frameworks such as Rails allows internal monitoring without modifying your app’s source code or installing software. For example, New Relic unobtrusively collects instrumentation about your app’s controller actions, database queries, and so on. Because the data is
Image of page 463
sent back to New Relic’s SaaS site where you can view and analyze it, this architecture is sometimes called RPM for Remote Performance Monitoring. The free level of New Relic RPM is available as a Heroku add-on or a standalone gem you can deploy in your own non-PaaS production environment. Internal monitoring can also occur during development, when it is often called profiling . New Relic and other monitoring solutions can be installed in development mode as well. How much profiling should you do? If you’ve followed best practices in writing and testing your app, it may be most productive to just deploy and see how the app behaves under load, especially given the unavoidable differences between the development and production environments, such as the lack of real user activity and the use of a development-only database such as SQLite3 rather than a highly tuned production database such as PostgreSQL. After all, with agile development, it’s easy to deploy incremental fixes such as implementing basic caching (Section 12.7 ) and fixing abuses of the database (Sections 12.8 ). A second kind of monitoring is external monitoring (sometimes called probing or active monitoring), in which a separate site makes live requests to your app to check availability and response time. Why would you need external monitoring given the detailed information available from internal monitoring that has access to your code? Internal monitoring may be unable to reveal that your app is sluggish or down altogether, especially if the problem is due to factors other than your app’s code—for example, performance problems in the presentation tier or other parts of the software stack beyond your app’s boundaries. External monitoring, like an integration test, is a true end-to-end test of a limited subset of your app’s code paths as seen by actual users “from the outside.” Figure 12.5 distinguishes different types of monitoring and some tools to perform them, many delivered as SaaS.
Image of page 464
Image of page 465

You've reached the end of your free preview.

Want to read all 517 pages?

  • Spring '19
  • Dr.Marcos

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern

Stuck? We have tutors online 24/7 who can help you get unstuck.
A+ icon
Ask Expert Tutors You can ask You can ask You can ask (will expire )
Answers in as fast as 15 minutes
A+ icon
Ask Expert Tutors