From 0831fdfd4f1fa4623853e8edfa18547066f88e33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Pla=CC=81s=CC=8Cil?= Date: Fri, 25 Aug 2017 17:46:16 +0800 Subject: [PATCH] Add basic Raft cluster status metrics --- .../transactions/RaftUniquenessProvider.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/node/src/main/kotlin/net/corda/node/services/transactions/RaftUniquenessProvider.kt b/node/src/main/kotlin/net/corda/node/services/transactions/RaftUniquenessProvider.kt index 69254beeee..afcb08e57c 100644 --- a/node/src/main/kotlin/net/corda/node/services/transactions/RaftUniquenessProvider.kt +++ b/node/src/main/kotlin/net/corda/node/services/transactions/RaftUniquenessProvider.kt @@ -1,5 +1,6 @@ package net.corda.node.services.transactions +import com.codahale.metrics.Gauge import io.atomix.catalyst.buffer.BufferInput import io.atomix.catalyst.buffer.BufferOutput import io.atomix.catalyst.serializer.Serializer @@ -94,6 +95,22 @@ class RaftUniquenessProvider(services: ServiceHubInternal) : UniquenessProvider, private lateinit var _clientFuture: CompletableFuture private lateinit var server: CopycatServer + + + init { + services.monitoringService.metrics.register("RaftCluster.ThisServerStatus", Gauge { + server.state().name + }) + + services.monitoringService.metrics.register("RaftCluster.MembersCount", Gauge { + server.cluster().members().size + }) + + services.monitoringService.metrics.register("RaftCluster.Members", Gauge> { + server.cluster().members().map { it.address().toString() } + }) + } + /** * Copycat clients are responsible for connecting to the cluster and submitting commands and queries that operate * on the cluster's replicated state machine.