mirror of
https://github.com/corda/corda.git
synced 2025-02-21 17:56:54 +00:00
Raft JMX reporting: initialize after server is created
This commit is contained in:
parent
0831fdfd4f
commit
b6e8b05dea
@ -46,7 +46,7 @@ import javax.persistence.Lob
|
||||
* to the cluster leader to be actioned.
|
||||
*/
|
||||
@ThreadSafe
|
||||
class RaftUniquenessProvider(services: ServiceHubInternal) : UniquenessProvider, SingletonSerializeAsToken() {
|
||||
class RaftUniquenessProvider(private val services: ServiceHubInternal) : UniquenessProvider, SingletonSerializeAsToken() {
|
||||
companion object {
|
||||
private val log = loggerFor<RaftUniquenessProvider>()
|
||||
|
||||
@ -97,20 +97,6 @@ class RaftUniquenessProvider(services: ServiceHubInternal) : UniquenessProvider,
|
||||
private lateinit var server: CopycatServer
|
||||
|
||||
|
||||
init {
|
||||
services.monitoringService.metrics.register("RaftCluster.ThisServerStatus", Gauge<String> {
|
||||
server.state().name
|
||||
})
|
||||
|
||||
services.monitoringService.metrics.register("RaftCluster.MembersCount", Gauge<Int> {
|
||||
server.cluster().members().size
|
||||
})
|
||||
|
||||
services.monitoringService.metrics.register("RaftCluster.Members", Gauge<List<String>> {
|
||||
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.
|
||||
@ -165,6 +151,8 @@ class RaftUniquenessProvider(services: ServiceHubInternal) : UniquenessProvider,
|
||||
server.bootstrap()
|
||||
}
|
||||
|
||||
registerMonitoring()
|
||||
|
||||
val client = CopycatClient.builder(address)
|
||||
.withTransport(transport) // TODO: use local transport for client-server communications
|
||||
.withConnectionStrategy(ConnectionStrategies.EXPONENTIAL_BACKOFF)
|
||||
@ -196,6 +184,21 @@ class RaftUniquenessProvider(services: ServiceHubInternal) : UniquenessProvider,
|
||||
.build()
|
||||
}
|
||||
|
||||
private fun registerMonitoring() {
|
||||
services.monitoringService.metrics.register("RaftCluster.ThisServerStatus", Gauge<String> {
|
||||
server.state().name
|
||||
})
|
||||
|
||||
services.monitoringService.metrics.register("RaftCluster.MembersCount", Gauge<Int> {
|
||||
server.cluster().members().size
|
||||
})
|
||||
|
||||
services.monitoringService.metrics.register("RaftCluster.Members", Gauge<List<String>> {
|
||||
server.cluster().members().map { it.address().toString() }
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
override fun commit(states: List<StateRef>, txId: SecureHash, callerIdentity: Party) {
|
||||
val entries = states.mapIndexed { i, stateRef -> stateRef to UniquenessProvider.ConsumingTx(txId, i, callerIdentity) }
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user