Class SigarMetricsCollector

java.lang.Object
org.apache.pekko.cluster.metrics.JmxMetricsCollector
org.apache.pekko.cluster.metrics.SigarMetricsCollector
All Implemented Interfaces:
Closeable, AutoCloseable, MetricsCollector

public class SigarMetricsCollector extends JmxMetricsCollector
Loads metrics through Hyperic SIGAR and JMX monitoring beans. This loads wider and more accurate range of metrics compared to JmxMetricsCollector by using SIGAR's native OS library.

The constructor will by design throw exception if org.hyperic.sigar.Sigar can't be loaded, due to missing classes or native libraries.

param: address The pekko.actor.Address of the node being sampled param: decayFactor how quickly the exponential weighting of past data is decayed param: sigar the org.hyperic.Sigar instance

  • Constructor Details

    • SigarMetricsCollector

      public SigarMetricsCollector(Address address, double decayFactor, org.hyperic.sigar.SigarProxy sigar)
    • SigarMetricsCollector

      public SigarMetricsCollector(Address address, ClusterMetricsSettings settings, org.hyperic.sigar.SigarProxy sigar)
    • SigarMetricsCollector

      public SigarMetricsCollector(Address address, ClusterMetricsSettings settings)
    • SigarMetricsCollector

      public SigarMetricsCollector(ActorSystem system)
      This constructor is used when creating an instance from configured FQCN
  • Method Details

    • close

      public void close()
      Releases any native resources associated with this instance.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class JmxMetricsCollector
    • cpuCombined

      public scala.Option<Metric> cpuCombined(org.hyperic.sigar.CpuPerc cpuPerc)
      (SIGAR) Returns the combined CPU sum of User + Sys + Nice + Wait, in percentage. This metric can describe the amount of time the CPU spent executing code during n-interval and how much more it could theoretically. Note that 99% CPU utilization can be optimal or indicative of failure.

      In the data stream, this will sometimes return with a valid metric value, and sometimes as a NaN or Infinite. Documented bug 749121 and several others.

      Creates a new instance each time.

    • cpuIdle

      public scala.Option<Metric> cpuIdle(org.hyperic.sigar.CpuPerc cpuPerc)
      (SIGAR) Returns the idle CPU time. Amount of CPU time left after combined and stolen are removed.

      Creates a new instance each time.

    • cpuStolen

      public scala.Option<Metric> cpuStolen(org.hyperic.sigar.CpuPerc cpuPerc)
      (SIGAR) Returns the stolen CPU time. Relevant to virtual hosting environments. For details please see: Wikipedia - CPU time subdivision and Understanding AWS stolen CPU and how it affects your apps

      Creates a new instance each time.

    • metrics

      public scala.collection.immutable.Set<Metric> metrics()
      Description copied from class: JmxMetricsCollector
      Generate metrics set. Creates a new instance each time.
      Overrides:
      metrics in class JmxMetricsCollector
    • systemLoadAverage

      public scala.Option<Metric> systemLoadAverage()
      (SIGAR) Returns the OS-specific average load on the CPUs in the system, for the past 1 minute.

      Creates a new instance each time.

      Overrides:
      systemLoadAverage in class JmxMetricsCollector