Monitoring functionality is an essential element of any network system. Traditional monitoring solutions
are mostly used for manual and infrequent network management tasks. Software-defined networks (SDN)
have emerged with enabled automatic and frequent network reconfigurations. In this paper, a scalable
monitoring system for SDN is introduced. The proposed system monitors small, medium, and large-scale
SDN. Multiple instances of the proposed monitoring system can run in parallel for monitoring many SDN
slices. The introduced monitoring system receives requests from network management applications,
collects considerable amounts of measurement data, processes them, and returns the resulting knowledge
to the network management applications. The proposed monitoring system slices the network (switches and
links) into multiple slices. The introduced monitoring system concurrently monitors applications for
various tenants, with each tenant's application running on a dedicated network slice. Each slice is
monitored by a separate copy of the proposed monitoring system. These copies operate in parallel and are
synchronized. The scalability of the monitoring system is achieved by enhancing the performance of SDN.
In this context, scalability is addressed by increasing the number of tenant applications and expanding the
size of the physical network without compromising SDN performance.