Distributed systems have become one of the pillars of modern computing, creating the backbone for technologies like cloud computing and the Internet of Things, while supporting many of the services that run on the Internet. However, with the use of this type of systems a unique set of challenges arises, particularly about ensuring properties such as their scalability, performances, reliability, and the detection of issues that could lead to system failures. Effective monitoring of such systems in complex environments is essential to maintain these properties.