This is an automated email from the ASF dual-hosted git repository.

tanjian pushed a commit to branch es_urls
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit 17447c4984bd1ea422f6a17cb51e22670368d348
Author: Jared.Tan <jian....@daocloud.io>
AuthorDate: Fri Aug 9 13:43:22 2019 +0800

    support elasticsearch address configuration with http scheme.
---
 docker/oap/docker-entrypoint.sh                      |  2 +-
 docs/en/setup/backend/backend-storage.md             |  6 +++---
 oap-server/server-library/library-client/pom.xml     |  2 +-
 .../client/elasticsearch/ElasticSearchClient.java    | 20 +++++++++++---------
 .../server-starter/src/main/assembly/application.yml |  2 +-
 .../src/main/resources/application.yml               |  2 +-
 6 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/docker/oap/docker-entrypoint.sh b/docker/oap/docker-entrypoint.sh
index 205cee4..4c9e311 100755
--- a/docker/oap/docker-entrypoint.sh
+++ b/docker/oap/docker-entrypoint.sh
@@ -82,7 +82,7 @@ generateStorageElastisearch() {
 storage:
   elasticsearch:
     nameSpace: \${SW_NAMESPACE:""}
-    clusterNodes: \${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
+    clusterNodes: \${SW_STORAGE_ES_CLUSTER_NODES:http://localhost:9200}
     user: \${SW_ES_USER:""}
     password: \${SW_ES_PASSWORD:""}
     indexShardsNumber: \${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
diff --git a/docs/en/setup/backend/backend-storage.md 
b/docs/en/setup/backend/backend-storage.md
index 6fd8339..fb34809 100644
--- a/docs/en/setup/backend/backend-storage.md
+++ b/docs/en/setup/backend/backend-storage.md
@@ -39,7 +39,7 @@ storage:
     # nameSpace: ${SW_NAMESPACE:""}
     # user: ${SW_ES_USER:""} # User needs to be set when Http Basic 
authentication is enabled
     # password: ${SW_ES_PASSWORD:""} # Password to be set when Http Basic 
authentication is enabled
-    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
+    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:http://localhost:9200}
     indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
     indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
     # Those data TTL settings will override the same settings in core module.
@@ -69,7 +69,7 @@ It has all same configs.
 storage:
   zipkin-elasticsearch:
     nameSpace: ${SW_NAMESPACE:""}
-    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
+    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:http://localhost:9200}
     user: ${SW_ES_USER:""}
     password: ${SW_ES_PASSWORD:""}
     indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
@@ -92,7 +92,7 @@ It has all same configs.
 storage:
   jaeger-elasticsearch:
     nameSpace: ${SW_NAMESPACE:""}
-    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
+    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:http://localhost:9200}
     user: ${SW_ES_USER:""}
     password: ${SW_ES_PASSWORD:""}
     indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
diff --git a/oap-server/server-library/library-client/pom.xml 
b/oap-server/server-library/library-client/pom.xml
index 6e2a672..c9c8a39 100644
--- a/oap-server/server-library/library-client/pom.xml
+++ b/oap-server/server-library/library-client/pom.xml
@@ -132,7 +132,7 @@
                         <configuration>
                             <systemPropertyVariables>
                                 <elastic.search.address>
-                                    ${docker.hostname}:${es-port}
+                                    http://${docker.hostname}:${es-port}
                                 </elastic.search.address>
                             </systemPropertyVariables>
                         </configuration>
diff --git 
a/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java
 
b/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java
index ef9f404..db7ed5a 100644
--- 
a/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java
+++ 
b/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java
@@ -18,9 +18,11 @@
 
 package org.apache.skywalking.oap.server.library.client.elasticsearch;
 
+import com.google.common.base.Splitter;
 import com.google.gson.*;
 import java.io.*;
 import java.util.*;
+import java.util.stream.Collectors;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.*;
 import org.apache.http.auth.*;
@@ -86,15 +88,15 @@ public class ElasticSearchClient implements Client {
         client.close();
     }
 
-    private List<HttpHost> parseClusterNodes(String nodes) {
-        List<HttpHost> httpHosts = new LinkedList<>();
-        logger.info("elasticsearch cluster nodes: {}", nodes);
-        String[] nodesSplit = nodes.split(",");
-        for (String node : nodesSplit) {
-            String host = node.split(":")[0];
-            String port = node.split(":")[1];
-            httpHosts.add(new HttpHost(host, Integer.valueOf(port)));
-        }
+    private List<HttpHost> parseClusterNodes(String urls) {
+        List<HttpHost> httpHosts;
+        logger.info("elasticsearch cluster nodes: {}", urls);
+        List<String> urlSplits = 
Splitter.on(",").omitEmptyStrings().splitToList(urls);
+
+        httpHosts = urlSplits.stream().map(item -> {
+            List<String> split = 
Splitter.onPattern("[:/]").omitEmptyStrings().splitToList(item);
+            return new HttpHost(split.get(1), Integer.parseInt(split.get(2)), 
split.get(0));
+        }).collect(Collectors.toList());
 
         return httpHosts;
     }
diff --git a/oap-server/server-starter/src/main/assembly/application.yml 
b/oap-server/server-starter/src/main/assembly/application.yml
index 50d7ecf..67d5d41 100644
--- a/oap-server/server-starter/src/main/assembly/application.yml
+++ b/oap-server/server-starter/src/main/assembly/application.yml
@@ -68,7 +68,7 @@ core:
 storage:
 #  elasticsearch:
 #    nameSpace: ${SW_NAMESPACE:""}
-#    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
+#    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:http://localhost:9200}
 #    user: ${SW_ES_USER:""}
 #    password: ${SW_ES_PASSWORD:""}
 #    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
diff --git a/oap-server/server-starter/src/main/resources/application.yml 
b/oap-server/server-starter/src/main/resources/application.yml
index bb4fc85..832234d 100644
--- a/oap-server/server-starter/src/main/resources/application.yml
+++ b/oap-server/server-starter/src/main/resources/application.yml
@@ -68,7 +68,7 @@ core:
 storage:
   elasticsearch:
     nameSpace: ${SW_NAMESPACE:""}
-    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
+    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:http://localhost:9200}
     user: ${SW_ES_USER:""}
     password: ${SW_ES_PASSWORD:""}
     indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}

Reply via email to