1. A method of detecting defects in deployed systems, comprising: identifying one or more monitoring agents used in a computer program; collecting a total execution metric of the computer program and execution metric associated with the one or more monitoring agents; comparing, using a processor, the execution metric with one or more specified overhead criteria; and adjusting execution of the one or more monitoring agents based on the comparing step while the computer program is executing to meet the one or more specified overhead criteria.