|
26 | 26 |
|
27 | 27 | import java.net.URI; |
28 | 28 | import java.util.Map; |
29 | | -import java.util.NoSuchElementException; |
30 | 29 | import java.util.Optional; |
31 | 30 | import java.util.stream.Collectors; |
32 | 31 |
|
@@ -102,31 +101,22 @@ public ClusterStats monitor(ProxyBackendConfiguration backend) |
102 | 101 | log.info("Monitoring cluster stats for backend: %s", backend.getProxyTo()); |
103 | 102 | ClusterStats.Builder clusterStatsBuilder = ClusterStatsMonitor.getClusterStatsBuilder(backend); |
104 | 103 |
|
105 | | - try { |
106 | | - JmxResponse discoveryResponse = queryJmx(backend, "trino.metadata:name=DiscoveryNodeManager") |
107 | | - .orElseThrow(() -> new NoSuchElementException("No JMX response for DiscoveryNodeManager")); |
108 | | - updateClusterStatsFromDiscoveryNodeManagerResponse(discoveryResponse, clusterStatsBuilder); |
109 | | - } |
110 | | - catch (NoSuchElementException e) { |
111 | | - clusterStatsBuilder.trinoStatus(TrinoStatus.UNHEALTHY); |
112 | | - } |
| 104 | + clusterStatsBuilder.proxyTo(backend.getProxyTo()) |
| 105 | + .externalUrl(backend.getExternalUrl()) |
| 106 | + .routingGroup(backend.getRoutingGroup()); |
113 | 107 |
|
114 | | - try { |
115 | | - JmxResponse queryResponse = queryJmx(backend, "trino.execution:name=QueryManager") |
116 | | - .orElseThrow(() -> new NoSuchElementException("No JMX response for QueryManager")); |
117 | | - updateClusterStatsFromQueryManagerResponse(queryResponse, clusterStatsBuilder); |
118 | | - } |
119 | | - catch (NoSuchElementException e) { |
| 108 | + Optional<JmxResponse> discoveryResponse = queryJmx(backend, "trino.metadata:name=DiscoveryNodeManager"); |
| 109 | + Optional<JmxResponse> queryResponse = queryJmx(backend, "trino.execution:name=QueryManager"); |
| 110 | + |
| 111 | + if (discoveryResponse.isEmpty() || queryResponse.isEmpty()) { |
120 | 112 | clusterStatsBuilder.trinoStatus(TrinoStatus.UNHEALTHY); |
| 113 | + return clusterStatsBuilder.build(); |
121 | 114 | } |
122 | 115 |
|
123 | | - clusterStatsBuilder.proxyTo(backend.getProxyTo()) |
124 | | - .externalUrl(backend.getExternalUrl()) |
125 | | - .routingGroup(backend.getRoutingGroup()); |
| 116 | + discoveryResponse.ifPresent(response -> updateClusterStatsFromDiscoveryNodeManagerResponse(response, clusterStatsBuilder)); |
| 117 | + queryResponse.ifPresent(response -> updateClusterStatsFromQueryManagerResponse(response, clusterStatsBuilder)); |
126 | 118 |
|
127 | | - ClusterStats stats = clusterStatsBuilder.build(); |
128 | | - log.debug("Completed monitoring for backend: %s. Stats: %s", backend.getProxyTo(), stats); |
129 | | - return stats; |
| 119 | + return clusterStatsBuilder.build(); |
130 | 120 | } |
131 | 121 |
|
132 | 122 | private Optional<JmxResponse> queryJmx(ProxyBackendConfiguration backend, String mbeanName) |
|
0 commit comments