1. A monitoring system for monitoring the operation of a plurality of distributed computing components comprising: at least one processor and a memory; a registry configured to store descriptions of the plurality of computing components and at least one associated service-level agreement (SLA) specifying at least one performance requirement; a compiler configured to generate at least one first and second continuous query based on the information stored in the registry; and a complex event processing (CEP) engine configured to execute the at least one first continuous query on input events indicating actions performed by the plurality of computing components and corresponding performance information, and to produce at least one output event indicating a violation of at least one SLA; wherein the CEP engine is further configured to execute the at least one second continuous query on input events indicating a violation of at least one SLA, and to produce at least one output event indicating a relationship between at least two SLA violations.