Network traffic monitoring is an important factor to maintain stability and effective network management in software-defined networking (SDN). However, monitoring by current support of SDN architecture, i.e., OpenFlow, is neither flexible nor scalable due to the dependence to OpenFlow tables, which is designed mainly for forwarding. The scalability issue is even more serious when monitoring in network-wide with multiple switches because of the duplication of flow monitoring. With current SDN, a flow may be monitored at multiple switches if it traverses through them in the network. While in practical, only a single monitoring entry at a switch can be enough to monitor a flow. This duplication may cause significant overhead on switches, the controller and the controller-switch communication channel to handle the duplicated flow entries. Moreover, current SDN architecture has little support to balance the monitoring load overall network. Our previous work proposed SDN-Mon, a fine-grained and flexible monitoring solution for SDN that decouples monitoring from existing forwarding tables, for various network monitoring applications. In this paper, we propose an adaptive mechanism to enable network-wide monitoring in SDN with the support of SDN-Mon framework. With this mechanism, monitoring of a certain flow will be handled by only one single monitoring rule, instead of possibly multiple ones, thus reduces the load/overhead overall network. Moreover, the proposed mechanism also balances the monitoring load/overhead overall switches in the network by adaptively select only switches that have enough idle computing/memory resources to handle the monitoring task. Therefore, it supports preventing the overload and overflow problems by balancing and leveraging the idle computing/memory resources over network-wide.