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}