Multi-level monitoring and rule based reasoning in the adaptation of time-critical cloud applications