Skip to content

Commit 840b003

Browse files
committed
Added enableSending flag in, and some renames
1 parent dbce2bd commit 840b003

File tree

3 files changed

+42
-27
lines changed

3 files changed

+42
-27
lines changed

server/src/main/java/org/elasticsearch/cluster/routing/allocation/allocator/AllocationBalancingRoundMetrics.java

Lines changed: 39 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
public class AllocationBalancingRoundMetrics {
2727

2828
public static final String NUMBER_OF_BALANCING_ROUNDS_METRIC_NAME = "es.allocator.balancing_round.balancing_rounds";
29+
2930
public static final String NUMBER_OF_SHARD_MOVES_METRIC_NAME = "es.allocator.balancing_round.shard_moves";
3031

3132
public static final String NUMBER_OF_SHARDS_METRIC_NAME = "es.allocator.balancing_round.shard_count";
@@ -45,11 +46,17 @@ public class AllocationBalancingRoundMetrics {
4546
*/
4647
private final AtomicReference<BalancingRoundSummary.CombinedBalancingRoundSummary> combinedSummariesRef = new AtomicReference<>();
4748

49+
/**
50+
* Whether metrics sending is enabled
51+
*/
52+
private volatile boolean enableSending = false;
53+
4854
public static final AllocationBalancingRoundMetrics NOOP = new AllocationBalancingRoundMetrics(MeterRegistry.NOOP);
4955

5056
private final MeterRegistry meterRegistry;
5157

5258
public AllocationBalancingRoundMetrics(MeterRegistry meterRegistry) {
59+
this.combinedSummariesRef.set(BalancingRoundSummary.CombinedBalancingRoundSummary.EMPTY_RESULTS);
5360
this.meterRegistry = meterRegistry;
5461

5562
meterRegistry.registerLongsGauge(
@@ -69,7 +76,7 @@ public AllocationBalancingRoundMetrics(MeterRegistry meterRegistry) {
6976
meterRegistry.registerLongsGauge(NUMBER_OF_SHARDS_METRIC_NAME, "Current number of shards", "unit", this::getShardCount);
7077
meterRegistry.registerLongsGauge(
7178
NUMBER_OF_SHARDS_DELTA_METRIC_NAME,
72-
"Current number of shard moves",
79+
"Current number of shards delta",
7380
"{shard}",
7481
this::getShardCountDelta
7582
);
@@ -83,48 +90,55 @@ public AllocationBalancingRoundMetrics(MeterRegistry meterRegistry) {
8390
);
8491

8592
meterRegistry.registerDoublesGauge(WRITE_LOAD_METRIC_NAME, "Write load", "1.0", this::getWriteLoad);
86-
meterRegistry.registerDoublesGauge(WRITE_LOAD_DELTA_METRIC_NAME, "Write load", "1.0", this::getWriteLoadDelta);
93+
meterRegistry.registerDoublesGauge(WRITE_LOAD_DELTA_METRIC_NAME, "Write load delta", "1.0", this::getWriteLoadDelta);
8794

8895
meterRegistry.registerDoublesGauge(TOTAL_WEIGHT_METRIC_NAME, "Total weight", "1.0", this::getTotalWeight);
8996
meterRegistry.registerDoublesGauge(TOTAL_WEIGHT_DELTA_METRIC_NAME, "Total weight delta", "1.0", this::getTotalWeightDelta);
9097
}
9198

92-
public void updateRoundMetrics(BalancingRoundSummary.CombinedBalancingRoundSummary summary) {
99+
public void setEnableSending(boolean enableSending) {
100+
this.enableSending = enableSending;
101+
}
102+
103+
public void updateBalancingRoundMetrics(BalancingRoundSummary.CombinedBalancingRoundSummary summary) {
104+
assert summary != null : "balancing round metrics cannot be null";
93105
combinedSummariesRef.set(summary);
94106
}
95107

96-
public void clearRoundMetrics() {
97-
combinedSummariesRef.set(null);
108+
public void clearBalancingRoundMetrics() {
109+
combinedSummariesRef.set(BalancingRoundSummary.CombinedBalancingRoundSummary.EMPTY_RESULTS);
98110
}
99111

100112
private Map<String, Object> getNodeAttributes(String nodeId) {
101113
return Map.of("node_id", nodeId);
102114
}
103115

104116
private List<LongWithAttributes> getBalancingRounds() {
105-
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
106-
if (combinedSummary == null) {
117+
if (enableSending == false) {
107118
return Collections.emptyList();
108119
}
120+
121+
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
109122
LongWithAttributes result = new LongWithAttributes(combinedSummary.numberOfShardMoves());
110123
return List.of(result);
111124
}
112125

113126
private List<LongWithAttributes> getShardMoves() {
114-
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
115-
if (combinedSummary == null) {
127+
if (enableSending == false) {
116128
return Collections.emptyList();
117129
}
130+
131+
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
118132
LongWithAttributes result = new LongWithAttributes(combinedSummary.numberOfShardMoves());
119133
return List.of(result);
120134
}
121135

122136
private List<LongWithAttributes> getShardCount() {
123-
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
124-
if (combinedSummary == null) {
137+
if (enableSending == false) {
125138
return Collections.emptyList();
126139
}
127140

141+
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
128142
Map<String, NodesWeightsChanges> nodeNameToWeightChanges = combinedSummary.nodeNameToWeightChanges();
129143
List<LongWithAttributes> metrics = new ArrayList<>(nodeNameToWeightChanges.size());
130144
for (var nodeWeights : nodeNameToWeightChanges.entrySet()) {
@@ -134,11 +148,11 @@ private List<LongWithAttributes> getShardCount() {
134148
}
135149

136150
private List<LongWithAttributes> getShardCountDelta() {
137-
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
138-
if (combinedSummary == null) {
151+
if (enableSending == false) {
139152
return Collections.emptyList();
140153
}
141154

155+
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
142156
Map<String, NodesWeightsChanges> nodeNameToWeightChanges = combinedSummary.nodeNameToWeightChanges();
143157
List<LongWithAttributes> metrics = new ArrayList<>(nodeNameToWeightChanges.size());
144158
for (var nodeWeights : nodeNameToWeightChanges.entrySet()) {
@@ -150,11 +164,11 @@ private List<LongWithAttributes> getShardCountDelta() {
150164
}
151165

152166
private List<DoubleWithAttributes> getDiskUsage() {
153-
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
154-
if (combinedSummary == null) {
167+
if (enableSending == false) {
155168
return Collections.emptyList();
156169
}
157170

171+
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
158172
Map<String, NodesWeightsChanges> nodeNameToWeightChanges = combinedSummary.nodeNameToWeightChanges();
159173
List<DoubleWithAttributes> metrics = new ArrayList<>(nodeNameToWeightChanges.size());
160174
for (var nodeWeights : nodeNameToWeightChanges.entrySet()) {
@@ -166,11 +180,11 @@ private List<DoubleWithAttributes> getDiskUsage() {
166180
}
167181

168182
private List<DoubleWithAttributes> getDiskUsageDelta() {
169-
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
170-
if (combinedSummary == null) {
183+
if (enableSending == false) {
171184
return Collections.emptyList();
172185
}
173186

187+
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
174188
Map<String, NodesWeightsChanges> nodeNameToWeightChanges = combinedSummary.nodeNameToWeightChanges();
175189
List<DoubleWithAttributes> metrics = new ArrayList<>(nodeNameToWeightChanges.size());
176190
for (var nodeWeights : nodeNameToWeightChanges.entrySet()) {
@@ -185,11 +199,11 @@ private List<DoubleWithAttributes> getDiskUsageDelta() {
185199
}
186200

187201
private List<DoubleWithAttributes> getWriteLoad() {
188-
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
189-
if (combinedSummary == null) {
202+
if (enableSending == false) {
190203
return Collections.emptyList();
191204
}
192205

206+
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
193207
Map<String, NodesWeightsChanges> nodeNameToWeightChanges = combinedSummary.nodeNameToWeightChanges();
194208
List<DoubleWithAttributes> metrics = new ArrayList<>(nodeNameToWeightChanges.size());
195209
for (var nodeWeights : nodeNameToWeightChanges.entrySet()) {
@@ -201,11 +215,11 @@ private List<DoubleWithAttributes> getWriteLoad() {
201215
}
202216

203217
private List<DoubleWithAttributes> getWriteLoadDelta() {
204-
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
205-
if (combinedSummary == null) {
218+
if (enableSending == false) {
206219
return Collections.emptyList();
207220
}
208221

222+
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
209223
Map<String, NodesWeightsChanges> nodeNameToWeightChanges = combinedSummary.nodeNameToWeightChanges();
210224
List<DoubleWithAttributes> metrics = new ArrayList<>(nodeNameToWeightChanges.size());
211225
for (var nodeWeights : nodeNameToWeightChanges.entrySet()) {
@@ -217,11 +231,11 @@ private List<DoubleWithAttributes> getWriteLoadDelta() {
217231
}
218232

219233
private List<DoubleWithAttributes> getTotalWeight() {
220-
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
221-
if (combinedSummary == null) {
234+
if (enableSending == false) {
222235
return Collections.emptyList();
223236
}
224237

238+
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
225239
Map<String, NodesWeightsChanges> nodeNameToWeightChanges = combinedSummary.nodeNameToWeightChanges();
226240
List<DoubleWithAttributes> metrics = new ArrayList<>(nodeNameToWeightChanges.size());
227241
for (var nodeWeights : nodeNameToWeightChanges.entrySet()) {
@@ -233,11 +247,11 @@ private List<DoubleWithAttributes> getTotalWeight() {
233247
}
234248

235249
private List<DoubleWithAttributes> getTotalWeightDelta() {
236-
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
237-
if (combinedSummary == null) {
250+
if (enableSending == false) {
238251
return Collections.emptyList();
239252
}
240253

254+
final BalancingRoundSummary.CombinedBalancingRoundSummary combinedSummary = combinedSummariesRef.get();
241255
Map<String, NodesWeightsChanges> nodeNameToWeightChanges = combinedSummary.nodeNameToWeightChanges();
242256
List<DoubleWithAttributes> metrics = new ArrayList<>(nodeNameToWeightChanges.size());
243257
for (var nodeWeights : nodeNameToWeightChanges.entrySet()) {

server/src/main/java/org/elasticsearch/cluster/routing/allocation/allocator/AllocationBalancingRoundSummaryService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ private void drainAndReportSummaries() {
196196

197197
logger.info("Balancing round summaries: " + combinedSummaries);
198198

199-
balancingRoundMetrics.updateRoundMetrics(combinedSummaries);
199+
balancingRoundMetrics.updateBalancingRoundMetrics(combinedSummaries);
200200
}
201201

202202
/**
@@ -225,7 +225,7 @@ private void updateBalancingRoundSummaryReporting() {
225225
cancelReporting();
226226
// Clear the data structure so that we don't retain unnecessary memory.
227227
drainSummaries();
228-
balancingRoundMetrics.clearRoundMetrics();
228+
balancingRoundMetrics.clearBalancingRoundMetrics();
229229
}
230230
}
231231

server/src/main/java/org/elasticsearch/cluster/routing/allocation/allocator/DesiredBalanceShardsAllocator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ public String toString() {
250250
// Only update on change, to minimise volatile writes
251251
if (event.localNodeMaster() != event.previousState().nodes().isLocalNodeElectedMaster()) {
252252
desiredBalanceMetrics.setNodeIsMaster(event.localNodeMaster());
253+
balancingRoundMetrics.setEnableSending(event.localNodeMaster());
253254
}
254255
});
255256
}

0 commit comments

Comments
 (0)