Class BufferPoolsExports

java.lang.Object
io.prometheus.client.Collector
io.prometheus.client.hotspot.BufferPoolsExports

public class BufferPoolsExports extends Collector
Exports metrics about JVM buffers. Can be replaced with a simple access once JDK 1.7 compatibility is baseline.
  • Field Details

    • JVM_BUFFER_POOL_USED_BYTES

      private static final String JVM_BUFFER_POOL_USED_BYTES
      See Also:
    • JVM_BUFFER_POOL_CAPACITY_BYTES

      private static final String JVM_BUFFER_POOL_CAPACITY_BYTES
      See Also:
    • JVM_BUFFER_POOL_USED_BUFFERS

      private static final String JVM_BUFFER_POOL_USED_BUFFERS
      See Also:
    • LOGGER

      private static final Logger LOGGER
    • bufferPoolMXBeans

      private final List<Object> bufferPoolMXBeans
    • getName

      private Method getName
    • getMemoryUsed

      private Method getMemoryUsed
    • getTotalCapacity

      private Method getTotalCapacity
    • getCount

      private Method getCount
  • Constructor Details

    • BufferPoolsExports

      public BufferPoolsExports()
  • Method Details

    • accessBufferPoolMXBeans

      private static List<Object> accessBufferPoolMXBeans(Class<?> bufferPoolMXBeanClass)
    • collect

      Description copied from class: Collector
      Return all metrics of this Collector.
      Specified by:
      collect in class Collector
    • collect

      public List<Collector.MetricFamilySamples> collect(Predicate<String> nameFilter)
      Description copied from class: Collector
      Like Collector.collect(), but the result should only contain MetricFamilySamples where sampleNameFilter.test(name) is true for at least one Sample name.

      The default implementation first collects all MetricFamilySamples and then discards the ones where sampleNameFilter.test(name) returns false for all names in Collector.MetricFamilySamples.getNames(). To improve performance, collector implementations should override this method to prevent MetricFamilySamples from being collected if they will be discarded anyways. See ThreadExports for an example.

      Note that the resulting List may contain MetricFamilySamples where some Sample names return true for sampleNameFilter.test(name) but some Sample names return false. This is ok, because before we produce the output format we will call Collector.MetricFamilySamples.filter(Predicate) to strip all Samples where sampleNameFilter.test(name) returns false.

      Overrides:
      collect in class Collector
      Parameters:
      nameFilter - may be null, indicating that all metrics should be collected.
    • callLongMethod

      private long callLongMethod(Method method, Object pool)
    • getName

      private String getName(Object pool)