You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by rx...@apache.org on 2020/06/26 03:01:43 UTC
[pulsar-manager] branch master updated: Support multi address for
broker stats (#306)
This is an automated email from the ASF dual-hosted git repository.
rxl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar-manager.git
The following commit(s) were added to refs/heads/master by this push:
new b72cce1 Support multi address for broker stats (#306)
b72cce1 is described below
commit b72cce18d991b0f5a6efd41197e7d1a3ece401ee
Author: Guangning <gu...@apache.org>
AuthorDate: Fri Jun 26 11:01:32 2020 +0800
Support multi address for broker stats (#306)
* Support multi address
* Fixed broker health check
* Fixed health check
---
.../service/impl/BrokerStatsServiceImpl.java | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/apache/pulsar/manager/service/impl/BrokerStatsServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/BrokerStatsServiceImpl.java
index ca57605..c7a1037 100644
--- a/src/main/java/org/apache/pulsar/manager/service/impl/BrokerStatsServiceImpl.java
+++ b/src/main/java/org/apache/pulsar/manager/service/impl/BrokerStatsServiceImpl.java
@@ -47,6 +47,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
+import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -131,7 +132,26 @@ public class BrokerStatsServiceImpl implements BrokerStatsService {
clusterLists.forEach((clusterMap) -> {
String cluster = (String) clusterMap.get("cluster");
Pair<String, String> envCluster = Pair.of(env.getName(), cluster);
- collectStatsServiceUrls.put(envCluster, (String) clusterMap.get("serviceUrl"));
+ String webServiceUrl = (String) clusterMap.get("serviceUrl");
+ if (webServiceUrl.contains(",")) {
+ String[] webServiceUrlList = webServiceUrl.split(",");
+ if (StringUtils.isNotBlank(pulsarJwtToken)) {
+ header.put("Authorization", String.format("Bearer %s", pulsarJwtToken));
+ }
+ for (String url : webServiceUrlList) {
+ if (!url.contains("http://")) {
+ url = "http://" + url;
+ }
+ String httpTestResult = HttpUtil.doGet( url + "/admin/v2/brokers/health", header);
+ if (httpTestResult == null) {
+ log.error("This service {} is down, please check", url);
+ } else {
+ webServiceUrl = url;
+ break;
+ }
+ }
+ }
+ collectStatsServiceUrls.put(envCluster, webServiceUrl);
});
}
collectStatsServiceUrls.forEach((envCluster, serviceUrl) -> {