Skip to content
Merged
1 change: 1 addition & 0 deletions docs/_docs/monitoring-metrics/new-metrics.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -523,6 +523,7 @@ Register name: `io.discovery`
|CoordinatorSince | long | Coordinator since timestamp.
|CurrentTopologyVersion | long | Current topology version.
|FailedNodes | integer | Failed nodes count.
|JoinedClientNodes | integer | Joined client nodes count.
|JoinedNodes | integer | Joined nodes count.
|LeftNodes | integer | Left nodes count.
|LocalPort | integer | Local TCP port the discovery SPI listens to.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2334,6 +2334,9 @@ else if (log.isDebugEnabled())
notifyDiscovery(EVT_NODE_JOINED, topVer, node, top);

spi.stats.onNodeJoined();

if (node.isClient())
spi.stats.onClientNodeJoined();
}
}
else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5075,6 +5075,9 @@ private void processNodeAddFinishedMessage(TcpDiscoveryNodeAddFinishedMessage ms
if (msg.verified() && !locNodeId.equals(nodeId) && state != CONNECTING && fireEvt) {
spi.stats.onNodeJoined();

if (node.isClient())
spi.stats.onClientNodeJoined();

// Make sure that node with greater order will never get EVT_NODE_JOINED
// on node with less order.
assert node.internalOrder() > locNode.internalOrder() : "Invalid order [node=" + node +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ public class TcpDiscoveryStatistics {
/** Failed nodes count. */
private final IntMetricImpl failedNodesCnt;

/** Joined client nodes count. */
private final IntMetricImpl joinedClientNodesCnt;

/** Left nodes count. */
private final IntMetricImpl leftNodesCnt;

Expand Down Expand Up @@ -88,6 +91,8 @@ public TcpDiscoveryStatistics() {

failedNodesCnt = new IntMetricImpl(metricName(DISCO_METRICS, "FailedNodes"), "Failed nodes count");

joinedClientNodesCnt = new IntMetricImpl(metricName(DISCO_METRICS, "JoinedClientNodes"), "Joined client nodes count.");

leftNodesCnt = new IntMetricImpl(metricName(DISCO_METRICS, "LeftNodes"), "Left nodes count");

pendingMsgsRegistered = new IntMetricImpl(metricName(DISCO_METRICS, "PendingMessagesRegistered"),
Expand Down Expand Up @@ -119,6 +124,7 @@ public void registerMetrics(MetricRegistryImpl discoReg) {

discoReg.register(joinedNodesCnt);
discoReg.register(failedNodesCnt);
discoReg.register(joinedClientNodesCnt);
discoReg.register(leftNodesCnt);
discoReg.register(pendingMsgsRegistered);
discoReg.register(rejectedSslConnectionsCnt);
Expand All @@ -133,6 +139,11 @@ public void onNodeJoined() {
joinedNodesCnt.increment();
}

/** Increments joined client nodes count. */
public void onClientNodeJoined() {
joinedClientNodesCnt.increment();
}

/**
* Increments left nodes count.
*/
Expand Down Expand Up @@ -355,6 +366,7 @@ public synchronized void clear() {
crdSinceTs.set(0);
failedNodesCnt.reset();
joinedNodesCnt.reset();
joinedClientNodesCnt.reset();
leftNodesCnt.reset();
maxMsgProcTime = 0;
pendingMsgsRegistered.reset();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ public void testMBean() throws Exception {
assertEquals((cnt - 1) - i, bean.getNodesJoined());
assertEquals((cnt - 1) - i, discoReg.<IntMetric>findMetric("JoinedNodes").value());

assertEquals((i < cliIdx) ? 1 : 0, discoReg.<IntMetric>findMetric("JoinedClientNodes").value());

assertEquals(0L, bean.getNodesFailed());
assertEquals(0, discoReg.<IntMetric>findMetric("FailedNodes").value());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3586,6 +3586,9 @@ private void notifyNodeJoin(ZkJoinedNodeEvtData joinedEvtData, ZkJoiningNodeData
).get();

stats.onNodeJoined();

if (joinedNode.isClient())
stats.onClientNodeJoined();
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ public class ZookeeperDiscoveryStatistics {
private final LongAdderMetric leftNodesCnt = new LongAdderMetric(metricName(DISCO_METRICS, "LeftNodes"),
"Left nodes count");

/** */
private final LongAdderMetric joinedClientNodesCnt = new LongAdderMetric(metricName(DISCO_METRICS, "JoinedClientNodes"),
"Joined client nodes count.");

/** Communication error count. */
private final LongAdderMetric commErrCnt = new LongAdderMetric(metricName(DISCO_METRICS, "CommunicationErrors"),
"Communication errors count");
Expand All @@ -54,6 +58,7 @@ public class ZookeeperDiscoveryStatistics {
public void registerMetrics(MetricRegistryImpl discoReg) {
discoReg.register(joinedNodesCnt);
discoReg.register(failedNodesCnt);
discoReg.register(joinedClientNodesCnt);
discoReg.register(leftNodesCnt);
discoReg.register(commErrCnt);
discoReg.register(topVer);
Expand Down Expand Up @@ -84,6 +89,11 @@ public void onNodeJoined() {
joinedNodesCnt.increment();
}

/** */
public void onClientNodeJoined() {
joinedClientNodesCnt.increment();
}

/** */
public void onNodeFailed() {
failedNodesCnt.increment();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ public void testMbean() throws Exception {
assertEquals(cnt - i - 1, bean.getNodesJoined());
assertEquals(cnt - i - 1, discoReg.<LongMetric>findMetric("JoinedNodes").value());

Arrays.asList("LeftNodes", "FailedNodes", "CommunicationErrors").forEach(name -> {
Arrays.asList("LeftNodes", "FailedNodes", "CommunicationErrors", "JoinedClientNodes").forEach(name -> {
assertEquals(0, discoReg.<LongMetric>findMetric(name).value());
});

Expand Down Expand Up @@ -304,6 +304,8 @@ public void testClientNodesStatus() throws Exception {
assertEquals(1, node.cluster().forServers().nodes().size());
}

assertEquals(1L, grid(0).context().metric().registry(DISCO_METRICS).<LongMetric>findMetric("JoinedClientNodes").value());

startGrid(2);

startClientGrid(3);
Expand Down
Loading