Class KeyManagerProvider.CertificateMonitor

  • All Implemented Interfaces:
    MeterBinder
    Enclosing class:
    KeyManagerProvider<T extends KeyManagerProviderCfg>

    public static final class KeyManagerProvider.CertificateMonitor
    extends MonitorProvider
    This class implements a monitor provider that will report alias name and expiry date for each X509 certificate associated to a key manager provider.
    • Method Detail

      • addMonitorObjectClassNames

        protected void addMonitorObjectClassNames​(Attribute objectClassAttribute)
        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 class MonitorProvider
        Parameters:
        objectClassAttribute - the objectClass attribute where to add the object class names
      • bindTo

        public void bindTo​(MeterRegistry parent)
        Description copied from class: MonitorProvider
        .

        Implementation considerations

        Implementations MUST set the MonitorProvider.registry field by creating a new MeterRegistryHolder, 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 the MeterRegistryHolder.hierarchicalNamePrefix(String) method. Tags common to all metrics for this monitor provider can also be set using the MeterRegistryHolder.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 interface MeterBinder
        Specified by:
        bindTo in class MonitorProvider