Class Archive

  • All Implemented Interfaces:
    RrdUpdater<Archive>

    public class Archive
    extends Object
    implements RrdUpdater<Archive>
    Class to represent single RRD archive in a RRD with its internal state. Normally, you don't need methods to manipulate archive objects directly because Rrd4j framework does it automatically for you.

    Each archive object consists of three parts: archive definition, archive state objects (one state object for each datasource) and round robin archives (one round robin for each datasource). API (read-only) is provided to access each of these parts.

    Author:
    Sasa Markovic
    • Method Detail

      • getArcStep

        public long getArcStep()
                        throws IOException
        Returns archive time step in seconds. Archive step is equal to RRD step multiplied with the number of archive steps.
        Returns:
        Archive time step in seconds
        Throws:
        IOException - Thrown in case of I/O error.
      • getParentDb

        RrdDb getParentDb()
      • archive

        void archive​(int dsIndex,
                     double value,
                     long numUpdates)
              throws IOException
        Throws:
        IOException
      • getConsolFun

        public ConsolFun getConsolFun()
                               throws IOException
        Returns archive consolidation function ("AVERAGE", "MIN", "MAX", "FIRST", "LAST" or "TOTAL").
        Returns:
        Archive consolidation function.
        Throws:
        IOException - Thrown in case of I/O error.
      • getXff

        public double getXff()
                      throws IOException
        Returns archive X-files factor.
        Returns:
        Archive X-files factor (between 0 and 1).
        Throws:
        IOException - Thrown in case of I/O error.
      • getSteps

        public int getSteps()
                     throws IOException
        Returns the number of archive steps.
        Returns:
        Number of archive steps.
        Throws:
        IOException - Thrown in case of I/O error.
      • getRows

        public int getRows()
                    throws IOException
        Returns the number of archive rows.
        Returns:
        Number of archive rows.
        Throws:
        IOException - Thrown in case of I/O error.
      • getStartTime

        public long getStartTime()
                          throws IOException
        Returns current starting timestamp. This value is not constant.
        Returns:
        Timestamp corresponding to the first archive row
        Throws:
        IOException - Thrown in case of I/O error.
      • getEndTime

        public long getEndTime()
                        throws IOException
        Returns current ending timestamp. This value is not constant.
        Returns:
        Timestamp corresponding to the last archive row
        Throws:
        IOException - Thrown in case of I/O error.
      • getArcState

        public ArcState getArcState​(int dsIndex)
        Returns the underlying archive state object. Each datasource has its corresponding ArcState object (archive states are managed independently for each RRD datasource).
        Parameters:
        dsIndex - Datasource index
        Returns:
        Underlying archive state object
      • getRobin

        public Robin getRobin​(int dsIndex)
        Returns the underlying round robin archive. Robins are used to store actual archive values on a per-datasource basis.
        Parameters:
        dsIndex - Index of the datasource in the RRD.
        Returns:
        Underlying round robin archive for the given datasource.
      • setXff

        public void setXff​(double xff)
                    throws IOException
        Sets X-files factor to a new value.
        Parameters:
        xff - New X-files factor value. Must be >= 0 and < 1.
        Throws:
        IOException - Thrown in case of I/O error
      • getRrdBackend

        public RrdBackend getRrdBackend()
        Returns the underlying storage (backend) object which actually performs all I/O operations.
        Specified by:
        getRrdBackend in interface RrdUpdater<Archive>
        Returns:
        I/O backend object
      • getRrdAllocator

        public RrdAllocator getRrdAllocator()
        Required to implement RrdUpdater interface. You should never call this method directly.
        Specified by:
        getRrdAllocator in interface RrdUpdater<Archive>
        Returns:
        Allocator object