fix subscription when enable monitor (#2111)

diff --git a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractInterfaceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractInterfaceConfig.java
index 6fbed0a..45a9ab3 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractInterfaceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractInterfaceConfig.java
@@ -36,6 +36,8 @@
 import com.alibaba.dubbo.rpc.cluster.Cluster;

 import com.alibaba.dubbo.rpc.support.MockInvoker;

 

+import static com.alibaba.dubbo.common.utils.NetUtils.isInvalidLocalHost;

+

 import java.util.ArrayList;

 import java.util.HashMap;

 import java.util.List;

@@ -226,7 +228,16 @@
         if (ConfigUtils.getPid() > 0) {

             map.put(Constants.PID_KEY, String.valueOf(ConfigUtils.getPid()));

         }

+        //set ip

+        String hostToRegistry = ConfigUtils.getSystemProperty(Constants.DUBBO_IP_TO_REGISTRY);

+        if (hostToRegistry == null || hostToRegistry.length() == 0) {

+            hostToRegistry = NetUtils.getLocalHost();

+        } else if (isInvalidLocalHost(hostToRegistry)) {

+            throw new IllegalArgumentException("Specified invalid registry ip from property:" + Constants.DUBBO_IP_TO_REGISTRY + ", value:" + hostToRegistry);

+        }

+        map.put(Constants.REGISTER_IP_KEY, hostToRegistry);

         appendParameters(map, monitor);

+        appendParameters(map, application);

         String address = monitor.getAddress();

         String sysaddress = System.getProperty("dubbo.monitor.address");

         if (sysaddress != null && sysaddress.length() > 0) {