Class ConfluenceInstrumentRegistry

java.lang.Object
com.atlassian.confluence.util.profiling.ConfluenceInstrumentRegistry
All Implemented Interfaces:
ControllableInstrumentRegistry, com.atlassian.instrumentation.InstrumentRegistry, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

public class ConfluenceInstrumentRegistry extends Object implements ControllableInstrumentRegistry, org.springframework.context.ApplicationContextAware
Central InstrumentRegistry for Confluence. This will be export as OSGI service for JMX exposer. The main reason we have this class is we want to get the configuration at runtime from Spring so Spring could decide the isolation level of the configuration (in this case ThreadLocal)
Since:
6.1.0
  • Constructor Details

    • ConfluenceInstrumentRegistry

      public ConfluenceInstrumentRegistry(com.atlassian.instrumentation.operations.OpTimerFactory opTimerFactory)
    • ConfluenceInstrumentRegistry

      public ConfluenceInstrumentRegistry(com.atlassian.instrumentation.operations.OpTimerFactory opTimerFactory, Supplier<com.atlassian.instrumentation.RegistryConfiguration> registryConfigurationSupplier)
  • Method Details

    • setApplicationContext

      public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
      Specified by:
      setApplicationContext in interface org.springframework.context.ApplicationContextAware
      Throws:
      org.springframework.beans.BeansException
    • getRegistryConfiguration

      public com.atlassian.instrumentation.RegistryConfiguration getRegistryConfiguration()
      Specified by:
      getRegistryConfiguration in interface com.atlassian.instrumentation.InstrumentRegistry
    • putInstrument

      public com.atlassian.instrumentation.Instrument putInstrument(com.atlassian.instrumentation.Instrument instrument)
      Specified by:
      putInstrument in interface com.atlassian.instrumentation.InstrumentRegistry
    • getInstrument

      public com.atlassian.instrumentation.Instrument getInstrument(String name)
      Specified by:
      getInstrument in interface com.atlassian.instrumentation.InstrumentRegistry
    • putIfAbsent

      protected com.atlassian.instrumentation.Instrument putIfAbsent(String name, com.atlassian.instrumentation.Instrument possiblyNeeded)
    • pullAbsoluteCounter

      public com.atlassian.instrumentation.AbsoluteCounter pullAbsoluteCounter(String name)
      Specified by:
      pullAbsoluteCounter in interface com.atlassian.instrumentation.InstrumentRegistry
    • pullCounter

      public com.atlassian.instrumentation.Counter pullCounter(String name)
      Specified by:
      pullCounter in interface com.atlassian.instrumentation.InstrumentRegistry
    • pullDerivedCounter

      public com.atlassian.instrumentation.DerivedCounter pullDerivedCounter(String name)
      Specified by:
      pullDerivedCounter in interface com.atlassian.instrumentation.InstrumentRegistry
    • pullGauge

      public com.atlassian.instrumentation.Gauge pullGauge(String name)
      Specified by:
      pullGauge in interface com.atlassian.instrumentation.InstrumentRegistry
    • pullCacheCollector

      public com.atlassian.instrumentation.caches.CacheCollector pullCacheCollector(String name, com.atlassian.instrumentation.caches.CacheCollector.Sizer sizer)
      Specified by:
      pullCacheCollector in interface com.atlassian.instrumentation.InstrumentRegistry
    • pullCacheCollector

      public com.atlassian.instrumentation.caches.CacheCollector pullCacheCollector(String name)
      Specified by:
      pullCacheCollector in interface com.atlassian.instrumentation.InstrumentRegistry
    • pullCacheCounter

      public com.atlassian.instrumentation.caches.CacheCounter pullCacheCounter(String name, com.atlassian.instrumentation.caches.CacheCounter.Sizer sizer)
      Specified by:
      pullCacheCounter in interface com.atlassian.instrumentation.InstrumentRegistry
    • pullCacheCounter

      public com.atlassian.instrumentation.caches.CacheCounter pullCacheCounter(String name)
      Specified by:
      pullCacheCounter in interface com.atlassian.instrumentation.InstrumentRegistry
    • pullOpCounter

      public com.atlassian.instrumentation.operations.OpCounter pullOpCounter(String name)
      Specified by:
      pullOpCounter in interface com.atlassian.instrumentation.InstrumentRegistry
    • pullTimer

      public com.atlassian.instrumentation.operations.OpTimer pullTimer(String name)
      Specified by:
      pullTimer in interface com.atlassian.instrumentation.InstrumentRegistry
    • snapshotInstruments

      public List<com.atlassian.instrumentation.Instrument> snapshotInstruments()
      we still allow to create instrument when disable but won't report any instrument out side
      Specified by:
      snapshotInstruments in interface com.atlassian.instrumentation.InstrumentRegistry
      Returns:
      empty list if disable
    • getNumberOfInstruments

      public int getNumberOfInstruments()
      we still allow to create instrument when disable but won't report any instrument out side
      Specified by:
      getNumberOfInstruments in interface com.atlassian.instrumentation.InstrumentRegistry
      Returns:
      zero if disable
    • isMonitoringEnabled

      public boolean isMonitoringEnabled()
      Description copied from interface: ControllableInstrumentRegistry
      Check instrument registry is enable or not
      Specified by:
      isMonitoringEnabled in interface ControllableInstrumentRegistry
      Returns:
    • enableMonitoring

      public void enableMonitoring()
      Description copied from interface: ControllableInstrumentRegistry
      Enables monitoring. It does not effect whether CPU timing is enabled.
      Specified by:
      enableMonitoring in interface ControllableInstrumentRegistry
    • disableMonitoring

      public void disableMonitoring()
      Description copied from interface: ControllableInstrumentRegistry
      Disable monitoring. It does not effect whether CPU timing is enabled.
      Specified by:
      disableMonitoring in interface ControllableInstrumentRegistry
    • clear

      public void clear()
      Description copied from interface: ControllableInstrumentRegistry
      Clears the currently held statistics.
      Specified by:
      clear in interface ControllableInstrumentRegistry