A dynamic prediction and monitoring framework for distributed applications