get config from metadata
diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/Constants.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
index 6bd38ca..b10f566 100644
--- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
+++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/Constants.java
@@ -55,6 +55,8 @@
     public static final String SPECIFICATION_VERSION_KEY = "release";
     public static final String GLOBAL_CONFIG = "global";
     public static final String GLOBAL_CONFIG_PATH = "config/dubbo/dubbo.properties";
+    public static final String METRICS_PORT = "metrics.port";
+    public static final String METRICS_PROTOCOL = "metrics.protocol";
     public static final Set<String> CONFIGS = new HashSet<>();
 
     static {
diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/MetricsCollectController.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/MetricsCollectController.java
index b120383..a21fbd1 100644
--- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/MetricsCollectController.java
+++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/MetricsCollectController.java
@@ -19,20 +19,28 @@
 
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
+import org.apache.dubbo.admin.common.util.Constants;
+import org.apache.dubbo.admin.model.domain.Consumer;
+import org.apache.dubbo.admin.model.domain.Provider;
 import org.apache.dubbo.admin.model.dto.MetricDTO;
 import org.apache.dubbo.admin.service.ConsumerService;
 import org.apache.dubbo.admin.service.ProviderService;
 import org.apache.dubbo.admin.service.impl.MetrcisCollectServiceImpl;
+import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
+import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
-import java.util.ArrayList;
 import java.util.Map;
 import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Set;
+import java.util.Iterator;
+
 
 
 @RestController
@@ -63,17 +71,14 @@
     @RequestMapping( value = "/ipAddr", method = RequestMethod.GET)
     public List<MetricDTO> searchService(@RequestParam String ip, @RequestParam String group) {
 
+        System.out.println(ip);
         Map<String, String> configMap = new HashMap<String, String>();
-        //TODO get this message from config file
-        //     key:port value:protocol
-        configMap.put("54188", "dubbo");
-        configMap.put("54199", "dubbo");
+        addMetricsConfigToMap(configMap);
 
-        // default value
+//         default value
         if (configMap.size() <= 0) {
             configMap.put("20880", "dubbo");
         }
-
         List<MetricDTO> metricDTOS = new ArrayList<>();
         for (String port : configMap.keySet()) {
             String protocol = configMap.get(port);
@@ -83,4 +88,38 @@
 
         return metricDTOS;
     }
+
+    protected void addMetricsConfigToMap(Map<String, String> configMap) {
+        Set<String> services = providerService.findServices();
+        services.addAll(consumerService.findServices());
+        Iterator<String> it = services.iterator();
+        while (it.hasNext()) {
+            String service = it.next();
+            List<Provider>  providers = providerService.findByService(service);
+            List<Consumer> consumers = consumerService.findByService(service);
+            String providerApplication = null;
+            String consumerApplication = null;
+            providerApplication = providers.get(0).getApplication();
+            consumerApplication = consumers.get(0).getApplication();
+
+            MetadataIdentifier providerMetadataIdentifier = new MetadataIdentifier(service
+                    ,null,null, Constants.PROVIDER_SIDE ,providerApplication);
+            MetadataIdentifier consumerMetadataIdentifier = new MetadataIdentifier(service
+                    ,null,null, Constants.CONSUMER_SIDE ,consumerApplication);
+
+            if (consumerApplication != null) {
+                String consumerMetadata = consumerService.getConsumerMetadata(consumerMetadataIdentifier);
+                Map<String, String> consumerParameters = new Gson().fromJson(consumerMetadata, Map.class);
+                configMap.put(consumerParameters.get(Constants.METRICS_PORT), consumerParameters.get(Constants.METRICS_PROTOCOL));
+            }
+
+            if (providerApplication != null) {
+                String providerMetaData = providerService.getProviderMetaData(providerMetadataIdentifier);
+                FullServiceDefinition providerServiceDefinition = new Gson().fromJson(providerMetaData, FullServiceDefinition.class);
+                Map<String, String> parameters = providerServiceDefinition.getParameters();
+                configMap.put(parameters.get(Constants.METRICS_PORT), parameters.get(Constants.METRICS_PROTOCOL));
+            }
+        }
+        configMap.remove(null);
+    }
 }
diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java
index e1b8679..66a05b8 100644
--- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java
+++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java
@@ -38,6 +38,7 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -107,7 +108,7 @@
 
     @RequestMapping(value = "/services", method = RequestMethod.GET)
     public Set<String> allServices(@PathVariable String env) {
-        return providerService.findServices();
+        return new HashSet<>(providerService.findServices());
     }
 
     @RequestMapping(value = "/applications", method = RequestMethod.GET)