I. Introduction
Cloud computing is a consolidated technology to provide computing resources on demand to end-users [1]. In order to support different customers and usage profiles, a cloud provider offers a variety of resource types (e.g., application, storage, network) and sizes. In a cloud computing environment, multiple resources need to be properly managed to improve resource utilization and offer predictable performance to customers [2]. One essential management function that gains a special importance in the context of clouds is monitoring [3].