Fork me on GitHub

Monitoring

Capturing and analyzing data about your production environment is critical to proactively deal with stability, performance, and errors in a web application.

There are several important resources to monitor on the operating system and network level of a web stack.

  1. CPU utilization
  2. Memory utilization
  3. Persistence storage consumed versus free
  4. Network bandwidth and latency

Application level monitoring encompasses several aspects. The amount of time and resources dedicated to each aspect will vary based on whether an application is read-heavy, write-heavy, or subject to rapid swings in traffic.

  1. Application warnings and errors (500-level HTTP errors)
  2. Application code performance
  3. Template rendering time
  4. Browser rendering time for the application
  5. Database querying performance

Monitoring Third Party Services

New Relic. Application and database monitoring as well as plug ins for capturing and analyzing additional data about tools in your stack.

CopperEgg is lower-level monitoring on server and infrastructure. It's popular with DevOps shops that are making changes to their production environments and want immediate feedback on the results of those modifications.

Status.io focuses on uptime and response metrics transparency for your users.

PagerDuty alerts a designated person or group if there are stability, performance, or uptime issues with an application.

Open Source Projects

statsd is a node.js network daemon that listens for metrics and aggregates them for transfer into another service such as Graphite.

Graphite stores time-series data and displays them in graphs through a Django web application.

Sensu is an open source monitoring framework written in Ruby but applicable to any programming language web application.

Graph Explorer by Vimeo is a Graphite-based dashboard with added features and a slick design.


Next read the web analytics section.