Solomon: monitoring end-user service levels

To manage distributed applications, we need to accurately monitor end-user service levels. There are two key challenges in monitoring end-user service levels: expressiveness and scalability. There is a big semantic gap between the metrics that administrators want to monitor and the metrics offered by commercial measurement systems. Moreover, it is hard to apply the same kind of metrics to different applications because different applications are likely to offer different types of instrumentation points. We want to apply the same metrics to very large numbers of instrumentation points, which makes scalability a key issue. In this work we present the activity monitoring language (AML) for declaratively specifying metrics, and a run-time system, called Solomon (service level objective monitor), that implements the concepts in AML. Expressiveness is a result of AML, which allows the high-level specification of user-defined metrics in an application-neutral way. Solomon's scalability is a result of reducing events and measurements as close to their physical source as is possible without the loss of accuracy.