Several techniques have been defined for the monitoring and adaptation of applications. However, such techniques usually work in isolation and cannot be easily integrated to tackle complex monitoring and adaptation scenarios. Furthermore, applications may have special requirements which make it difficult to reuse such off-the-shelf approaches. In particular, these requirements may cross several application layers such as