Class MonitorProvider
- All Implemented Interfaces:
MeterBinder
- Direct Known Subclasses:
EntryCache
,FileChangelogDB
,HealthStatusMonitorProvider
,JvmMonitorProvider
,KeyManagerProvider.CertificateMonitor
,LocalBackendMonitor
,ReplicationServerDomain
-
Field Summary
Modifier and TypeFieldDescriptionprotected MeterRegistryHolder
The possibly null meter registry holder. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract void
addMonitorObjectClassNames
(Attribute objectClassAttribute) Adds to the provided attribute the objectclass names that should be included in the monitor entry created from this monitor provider.abstract void
bindTo
(MeterRegistry registry) .protected abstract Dn
Returns the monitor instance DN for this monitor provider.static Dn
configurationDnToMonitorDn
(Dn configDn) Convenience method for mapping a component's configuration DN to its equivalent monitoring DN.void
Deregisters all the meters registered by this monitor provider.getMonitorEntry
(Schema schema) Generates and returns a monitor entry based on the contents of this monitor provider.final Dn
Returns the DN of this monitor provider.toString()
-
Field Details
-
registry
The possibly null meter registry holder. When not-null, subclasses must set this field in thebindTo(MeterRegistry)
method.
-
-
Constructor Details
-
MonitorProvider
public MonitorProvider()
-
-
Method Details
-
configurationDnToMonitorDn
Convenience method for mapping a component's configuration DN to its equivalent monitoring DN.For example, a component with the name
cn=LDAP,cn=Connection Handlers,cn=config
will be mapped tocn=LDAP,cn=Connection Handlers,cn=monitor
.- Parameters:
configDn
- The component's configuration DN.- Returns:
- The equivalent monitor DN.
-
getMonitorInstanceDn
Returns the DN of this monitor provider. It should be unique among all monitor providers, including all instances of the same monitor provider.- Returns:
- The DN of this monitor provider.
-
computeMonitorInstanceDn
Returns the monitor instance DN for this monitor provider.- Returns:
- the monitor instance DN.
-
addMonitorObjectClassNames
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.- Parameters:
objectClassAttribute
- the objectClass attribute where to add the object class names
-
bindTo
.Implementation considerations
Implementations MUST set the
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
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
-
deregisterAll
public void deregisterAll()Deregisters all the meters registered by this monitor provider. -
getMonitorEntry
Generates and returns a monitor entry based on the contents of this monitor provider.- Parameters:
schema
- the schema- Returns:
- The monitor entry generated from the information of this provided monitor provider.
-
toString
-