Class LocalBackendMonitor<B extends LocalBackend<?>>
- java.lang.Object
-
- org.opends.server.api.MonitorProvider
-
- org.opends.server.monitors.LocalBackendMonitor<B>
-
- Type Parameters:
B
- The type of local backend associated with this monitor.
- All Implemented Interfaces:
MeterBinder
- Direct Known Subclasses:
PluggableBackendMonitor
public class LocalBackendMonitor<B extends LocalBackend<?>> extends MonitorProvider
This class implements a monitor provider that will report generic information for an enabled Directory Server backend, including its backend ID, base DNs, writability mode, and the number of entries it contains.Sub-classes may override
addAdditionalMetrics()
in order to add implementation specific monitoring metrics.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
LocalBackendMonitor.BaseDnMonitorData
Stores metric data local backends.
-
Field Summary
-
Fields inherited from class org.opends.server.api.MonitorProvider
registry
-
-
Constructor Summary
Constructors Constructor Description LocalBackendMonitor(B backend, ServerContext serverContext)
Creates a new instance of this backend monitor provider that will work with the provided backend.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addAdditionalMetrics()
Adds additional metrics specific to the local backend implementation in this monitor provider'sMeterRegistry
.protected void
addMonitorObjectClassNames(Attribute ocAttr)
Adds to the provided attribute the objectclass names that should be included in the monitor entry created from this monitor provider.void
bindTo(MeterRegistry parent)
.protected Dn
computeMonitorInstanceDn()
Returns the monitor instance DN for this monitor provider.void
deregisterBaseDnMonitors()
Deregisters monitoring entries associated to the base DNs handled by the monitored backend in the directory server.protected String
getBackendType()
Returns the local backend implementation type.LocalBackendMonitor.BaseDnMonitorData
getBaseDnMonitorData(Dn baseDn)
Returns a new BaseDnMonitorData instance that will use the provided base DN.protected B
getLocalBackend()
Returns the local backend associated with this backend.void
registerBaseDnMonitors()
Registers monitoring entries associated to the base DNs handled by the monitored backend in the directory server.void
updateBaseDnMonitors()
Updates the list of monitoring entries associated to the base DNs handled by the monitored backend in the directory server.-
Methods inherited from class org.opends.server.api.MonitorProvider
configurationDnToMonitorDn, deregisterAll, getMonitorEntry, getMonitorInstanceDn, toString
-
-
-
-
Constructor Detail
-
LocalBackendMonitor
public LocalBackendMonitor(B backend, ServerContext serverContext)
Creates a new instance of this backend monitor provider that will work with the provided backend.- Parameters:
backend
- The backend with which this monitor is associated.serverContext
- The server context
-
-
Method Detail
-
computeMonitorInstanceDn
protected final Dn computeMonitorInstanceDn()
Description copied from class:MonitorProvider
Returns the monitor instance DN for this monitor provider.- Specified by:
computeMonitorInstanceDn
in classMonitorProvider
- Returns:
- the monitor instance DN.
-
addMonitorObjectClassNames
protected void addMonitorObjectClassNames(Attribute ocAttr)
Description copied from class:MonitorProvider
Adds to the provided attribute the objectclass names that should be included in the monitor entry created from this monitor provider. This method should be implemented by child classes to make it easier to search for monitor entries of a specific type.- Specified by:
addMonitorObjectClassNames
in classMonitorProvider
- Parameters:
ocAttr
- the objectClass attribute where to add the object class names
-
bindTo
public final void bindTo(MeterRegistry parent)
Description copied from class:MonitorProvider
.Implementation considerations
Implementations MUST set the
MonitorProvider.registry
field by creating a newMeterRegistryHolder
, and specifying the appropriate prefix for the dimensional model and also the hierarchical model if they are different. This can be done using a parameter on the constructor, or theMeterRegistryHolder.hierarchicalNamePrefix(String)
method. Tags common to all metrics for this monitor provider can also be set using theMeterRegistryHolder.tag(String, String)
method.Attribute names are then registered by calling factory methods on the
MonitorProvider.registry
field.Sample dummy implementation
(Please remove the comments when using this code as a template)
public void bindTo(final MeterRegistry parent) { // create the MeterRegistryHolder wrapping OpenDJ's MeterRegistry registry = new MeterRegistryHolder("dimensional-name-prefix", parent) .tag("label", "dimension") .hierarchicalNamePrefix("hierarchical-name-prefix.dimension"); // register the metrics against the wrapper registry.numberGauge("gauge", numberSupplier); // use lambdas or method references here timer = registry.timer("requests-submitted"); // set a different name for the metric in cn=monitor, dimensional model and hierarchical model Gauge.doubleGauge(dimensionalName, supplier) .hierarchicalName(hierarchicalName) .tag(MeterRegistryHolder.TAG_ATTRIBUTE_NAME, "cn-monitor-name") // drop the "ds-mon-" prefix here .register(registry); // this gauge will only output to cn=monitor based monitoring endpoints registry.monitoringGauge("only-visible-in-cn-monitor", supplier); }
- Specified by:
bindTo
in interfaceMeterBinder
- Specified by:
bindTo
in classMonitorProvider
-
getBaseDnMonitorData
public final LocalBackendMonitor.BaseDnMonitorData getBaseDnMonitorData(Dn baseDn)
Returns a new BaseDnMonitorData instance that will use the provided base DN.- Parameters:
baseDn
- the base DN- Returns:
- a new BaseDnMonitorData instance
-
getBackendType
protected String getBackendType()
Returns the local backend implementation type.- Returns:
- A string used in this monitor provider's
MeterRegistry
representing the local backend type.
-
addAdditionalMetrics
protected void addAdditionalMetrics()
Adds additional metrics specific to the local backend implementation in this monitor provider'sMeterRegistry
.The default implementation is to do nothing.
-
getLocalBackend
protected final B getLocalBackend()
Returns the local backend associated with this backend.- Returns:
- The local backend associated with this backend.
-
registerBaseDnMonitors
public final void registerBaseDnMonitors()
Registers monitoring entries associated to the base DNs handled by the monitored backend in the directory server.
-
deregisterBaseDnMonitors
public final void deregisterBaseDnMonitors()
Deregisters monitoring entries associated to the base DNs handled by the monitored backend in the directory server.
-
updateBaseDnMonitors
public final void updateBaseDnMonitors()
Updates the list of monitoring entries associated to the base DNs handled by the monitored backend in the directory server.
-
-