Singleton service metrics

In  clustering

Overview

Users of singleton deployments and singleton services have long requested for an easy way to determine the primary provider of a given deployment or service. Currently, this can only be determined by looking at the logs. This feature request would make this information available from the management model.

Issue Metadata

Dev Contacts

QE Contacts

Affected Projects or Components

Clustering

Other Interested Projects

Requirements

Hard Requirements

Expose a runtime resource within the singleton subsystem for each singleton deployment/service created from a given singleton policy exposing the following information:

  • The name of the cluster member currently acting as the singleton provider

e.g.

/subsystem=singleton/singleton-policy=foo/deployment=bar.ear:read-attribute(name=primary-provider)
/subsystem=singleton/singleton-policy=foo/service=org.my.singleton.service.name:read-attribute(name=primary-provider)

Nice-to-Have Requirements

Additionally expose the following:

  • The names of the nodes on which the given singleton deployment/service is installed.

e.g.

/subsystem=singleton/singleton-policy=foo/deployment=bar.ear:read-attribute(name=providers)
/subsystem=singleton/singleton-policy=foo/service=org.my.singleton.service.name:read-attribute(name=providers)

Non-Requirements

Users can additionally create singleton services from a SingletonServiceConfiguratorFactory (installed per cache). As these are not directly managed by the singleton subsystem, singleton services created via this mechanism will not be exposed by the management model.

Test Plan

This feature will be tested within the scope of the current clustering testsuite. We currently have tests that query a servlet to determine the primary provider of a given singleton service. These tests will be modified to obtain this information via a management client.

Community Documentation

The community documentation will be updated to include CLI commands for obtaining metrics about a specific singleton deployment or service.