Class Datasource

  • All Implemented Interfaces:
    DsTypes, RrdUpdater

    public class Datasource
    extends Object
    implements RrdUpdater, DsTypes
    Class to represent single datasource within RRD. Each datasource object holds the following information: datasource definition (once set, never changed) and datasource state variables (changed whenever RRD gets updated).

    Normally, you don't need to manipluate Datasource objects directly, it's up to JRobin framework to do it for you.

    Author:
    Sasa Markovic
    • Method Detail

      • getDsName

        public String getDsName()
                         throws IOException
        Returns datasource name.
        Returns:
        Datasource name
        Throws:
        IOException - Thrown in case of I/O error
      • getDsType

        public String getDsType()
                         throws IOException
        Returns datasource type (GAUGE, COUNTER, DERIVE, ABSOLUTE).
        Returns:
        Datasource type.
        Throws:
        IOException - Thrown in case of I/O error
      • getHeartbeat

        public long getHeartbeat()
                          throws IOException
        Returns datasource heartbeat
        Returns:
        Datasource heartbeat
        Throws:
        IOException - Thrown in case of I/O error
      • getMinValue

        public double getMinValue()
                           throws IOException
        Returns mimimal allowed value for this datasource.
        Returns:
        Minimal value allowed.
        Throws:
        IOException - Thrown in case of I/O error
      • getMaxValue

        public double getMaxValue()
                           throws IOException
        Returns maximal allowed value for this datasource.
        Returns:
        Maximal value allowed.
        Throws:
        IOException - Thrown in case of I/O error
      • getLastValue

        public double getLastValue()
                            throws IOException
        Returns last known value of the datasource.
        Returns:
        Last datasource value.
        Throws:
        IOException - Thrown in case of I/O error
      • getAccumValue

        public double getAccumValue()
                             throws IOException
        Returns value this datasource accumulated so far.
        Returns:
        Accumulated datasource value.
        Throws:
        IOException - Thrown in case of I/O error
      • getNanSeconds

        public long getNanSeconds()
                           throws IOException
        Returns the number of accumulated NaN seconds.
        Returns:
        Accumulated NaN seconds.
        Throws:
        IOException - Thrown in case of I/O error
      • copyStateTo

        public void copyStateTo​(RrdUpdater other)
                         throws IOException,
                                RrdException
        Copies object's internal state to another Datasource object.
        Specified by:
        copyStateTo in interface RrdUpdater
        Parameters:
        other - New Datasource object to copy state to
        Throws:
        IOException - Thrown in case of I/O error
        RrdException - Thrown if supplied argument is not a Datasource object
      • getDsIndex

        public int getDsIndex()
                       throws IOException
        Returns index of this Datasource object in the RRD.
        Returns:
        Datasource index in the RRD.
        Throws:
        IOException - Thrown in case of I/O error
      • setHeartbeat

        public void setHeartbeat​(long heartbeat)
                          throws RrdException,
                                 IOException
        Sets datasource heartbeat to a new value.
        Parameters:
        heartbeat - New heartbeat value
        Throws:
        IOException - Thrown in case of I/O error
        RrdException - Thrown if invalid (non-positive) heartbeat value is specified.
      • setDsName

        public void setDsName​(String newDsName)
                       throws RrdException,
                              IOException
        Sets datasource name to a new value
        Parameters:
        newDsName - New datasource name
        Throws:
        RrdException - Thrown if invalid data source name is specified (name too long, or name already defined in the RRD
        IOException - Thrown in case of I/O error
      • setMinValue

        public void setMinValue​(double minValue,
                                boolean filterArchivedValues)
                         throws IOException,
                                RrdException
        Sets minimum allowed value for this datasource. If filterArchivedValues argment is set to true, all archived values less then minValue will be fixed to NaN.
        Parameters:
        minValue - New minimal value. Specify Double.NaN if no minimal value should be set
        filterArchivedValues - true, if archived datasource values should be fixed; false, otherwise.
        Throws:
        IOException - Thrown in case of I/O error
        RrdException - Thrown if invalid minValue was supplied (not less then maxValue)
      • setMaxValue

        public void setMaxValue​(double maxValue,
                                boolean filterArchivedValues)
                         throws IOException,
                                RrdException
        Sets maximum allowed value for this datasource. If filterArchivedValues argment is set to true, all archived values greater then maxValue will be fixed to NaN.
        Parameters:
        maxValue - New maximal value. Specify Double.NaN if no max value should be set.
        filterArchivedValues - true, if archived datasource values should be fixed; false, otherwise.
        Throws:
        IOException - Thrown in case of I/O error
        RrdException - Thrown if invalid maxValue was supplied (not greater then minValue)
      • setMinMaxValue

        public void setMinMaxValue​(double minValue,
                                   double maxValue,
                                   boolean filterArchivedValues)
                            throws IOException,
                                   RrdException
        Sets min/max values allowed for this datasource. If filterArchivedValues argment is set to true, all archived values less then minValue or greater then maxValue will be fixed to NaN.
        Parameters:
        minValue - New minimal value. Specify Double.NaN if no min value should be set.
        maxValue - New maximal value. Specify Double.NaN if no max value should be set.
        filterArchivedValues - true, if archived datasource values should be fixed; false, otherwise.
        Throws:
        IOException - Thrown in case of I/O error
        RrdException - Thrown if invalid min/max values were supplied
      • getRrdBackend

        public RrdBackend getRrdBackend()
        Returns the underlying storage (backend) object which actually performs all I/O operations.
        Specified by:
        getRrdBackend in interface RrdUpdater
        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
        Returns:
        Allocator object