‘Designing to be monitored is an approach wherein one builds monitoring into the application or system rather than around it. It goes beyond logging that failures have occurred and toward identifying themes of failure and potentially even performing automated escalation of issues or concerns from an application perspective. A system that is designed to be monitored might evaluate the response times of all of the services with which it interacts and alert someone when response times are out of the normal range for that time of day. This same system might also evaluate the rate of error logging it performs over time and also alert the right people when that rate significantly changes or the
composition of the errors changes. Both of these approaches might be accomplished by employing a statistical process control chart that alerts when rates of errors or response times fall outside of N standard deviations from a mean calculated from the last 30 similar days at that time of day. Here, a “similar” day would mean comparing a Monday to a Monday and a Saturday to a Saturday.’
—Michael T Fisher & Martin L Abbott, The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise.
