Class RrdDb
- java.lang.Object
-
- org.jrobin.core.RrdDb
-
- All Implemented Interfaces:
RrdUpdater
public class RrdDb extends Object implements RrdUpdater
Main class used to create and manipulate round robin databases (RRDs). Use this class to perform update and fetch operations on exisiting RRDs, to create new RRD from the definition (object of classRrdDef
) or from XML file (dumped content of RRDTool's or JRobin's RRD file).Each RRD is backed with some kind of storage. For example, RRDTool supports only one kind of storage (disk file). On the contrary, JRobin gives you freedom to use other storage (backend) types even to create your own backend types for some special purposes. JRobin by default stores RRD data in files (as RRDTool), but you might choose to store RRD data in memory (this is supported in JRobin), to use java.nio.* instead of java.io.* package for file manipulation (also supported) or to store whole RRDs in the SQL database (you'll have to extend some classes to do this).
Note that JRobin uses binary format different from RRDTool's format. You cannot use this class to manipulate RRD files created with RRDTool. However, if you perform the same sequence of create, update and fetch operations, you will get exactly the same results from JRobin and RRDTool.
You will not be able to use JRobin API if you are not familiar with basic RRDTool concepts. Good place to start is the official RRD tutorial and relevant RRDTool man pages: rrdcreate, rrdupdate, rrdfetch and rrdgraph. For RRDTool's advanced graphing capabilities (RPN extensions), also supported in JRobin, there is an excellent CDEF tutorial.
- See Also:
RrdBackend
,RrdBackendFactory
-
-
Field Summary
Fields Modifier and Type Field Description static String
PREFIX_RRDTool
prefix to identify external RRDTool file source used in various RrdDb constructorsstatic String
PREFIX_XML
prefix to identify external XML file source used in various RrdDb constructors(package private) static int
XML_INITIAL_BUFFER_CAPACITY
-
Constructor Summary
Constructors Constructor Description RrdDb(File file)
RrdDb(File file, boolean readOnly)
RrdDb(String path)
Constructor used to open already existing RRD in R/W mode, with a default storage (backend) type (file on the disk).RrdDb(String path, boolean readOnly)
Constructor used to open already existing RRD.RrdDb(String path, boolean readOnly, RrdBackendFactory factory)
Constructor used to open already existing RRD backed with a storage (backend) different from default.RrdDb(String rrdPath, String externalPath)
Constructor used to create RRD files from external file sources.RrdDb(String rrdPath, String externalPath, RrdBackendFactory factory)
Constructor used to create RRD files from external file sources with a backend type different from default.RrdDb(String path, RrdBackendFactory factory)
Constructor used to open already existing RRD in R/W mode with a storage (backend) type different from default.RrdDb(RrdDef rrdDef)
Constructor used to create new RRD object from the definition.RrdDb(RrdDef rrdDef, RrdBackendFactory factory)
Constructor used to create new RRD object from the definition object but with a storage (backend) different from default.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
archive(Datasource datasource, double value, long numUpdates)
void
close()
Closes RRD.boolean
containsDs(String dsName)
Checks presence of a specific datasource.void
copyStateTo(RrdUpdater other)
Copies object's internal state to another RrdDb object.FetchRequest
createFetchRequest(String consolFun, long fetchStart, long fetchEnd)
Prepares fetch request to be executed on this RRD.FetchRequest
createFetchRequest(String consolFun, long fetchStart, long fetchEnd, long resolution)
Prepares fetch request to be executed on this RRD.Sample
createSample()
Creates new sample with the current timestamp and all data source values set to 'unknown'.Sample
createSample(long time)
Creates new sample with the given timestamp and all datasource values set to 'unknown'.String
dump()
Returns string representing complete internal RRD state.void
dumpXml(OutputStream destination)
Writes the RRD content to OutputStream using XML format.void
dumpXml(String filename)
Dumps internal RRD state to XML file.String
exportXml()
This method is just an alias forgetXml
method.void
exportXml(OutputStream destination)
This method is just an alias fordumpXml
method.void
exportXml(String filename)
This method is just an alias fordumpXml(String)
method.(package private) FetchData
fetchData(FetchRequest request)
protected void
finalize()
Archive
findMatchingArchive(FetchRequest request)
Archive
findStartMatchArchive(String consolFun, long startTime, long resolution)
Finds the archive that best matches to the start time (time period being start-time until now) and requested resolution.int
getArcCount()
Returns the number of RRA arcihves defined in the fileArchive
getArchive(int arcIndex)
Returns Archive object for the given archive index.Archive
getArchive(String consolFun, int steps)
Returns Archive object with the given consolidation function and the number of steps.(package private) Archive[]
getArchives()
int
getArcIndex(String consolFun, int steps)
Returns index of Archive object with the given consolidation function and the number of steps.byte[]
getBytes()
Returns an array of bytes representing the whole RRD.String
getCanonicalPath()
Returns canonical path to the underlying RRD file.Datasource
getDatasource(int dsIndex)
Returns Datasource object for the given datasource index.Datasource
getDatasource(String dsName)
Returns Datasource object corresponding to the given datasource name.(package private) Datasource[]
getDatasources()
int
getDsCount()
Returns the number of datasources defined in the fileint
getDsIndex(String dsName)
Returns internal index number for the given datasource name.String[]
getDsNames()
Returns an array of datasource names defined in RRD.Header
getHeader()
Returns RRD header.String
getInfo()
long
getLastArchiveUpdateTime()
Returns the last time when some of the archives in this RRD was updated.double
getLastDatasourceValue(String dsName)
Returns the last stored value for the given datasource.double[]
getLastDatasourceValues()
Returns an array of last datasource values.long
getLastUpdateTime()
Returns time of last update operation as timestamp (in seconds).String
getPath()
Returns path to this RRD.RrdAllocator
getRrdAllocator()
Required to implement RrdUpdater interface.RrdBackend
getRrdBackend()
Returns backend object for this RRD which performs actual I/O operations.RrdDef
getRrdDef()
Returns RRD definition object which can be used to create new RRD with the same creation parameters but with no data in it.String
getXml()
Returns string representing internal RRD state in XML format.boolean
isClosed()
Returns true if the RRD is closed.static void
main(String[] args)
static void
setDefaultFactory(String factoryName)
Sets default backend factory to be used.void
setInfo(String info)
(package private) void
store(Sample sample)
String
toString()
-
-
-
Field Detail
-
PREFIX_XML
public static final String PREFIX_XML
prefix to identify external XML file source used in various RrdDb constructors- See Also:
- Constant Field Values
-
PREFIX_RRDTool
public static final String PREFIX_RRDTool
prefix to identify external RRDTool file source used in various RrdDb constructors- See Also:
- Constant Field Values
-
XML_INITIAL_BUFFER_CAPACITY
static final int XML_INITIAL_BUFFER_CAPACITY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
RrdDb
public RrdDb(RrdDef rrdDef) throws RrdException, IOException
Constructor used to create new RRD object from the definition. This RRD object will be backed with a storage (backend) of the default type. Initially, storage type defaults to "NIO" (RRD bytes will be put in a file on the disk). Default storage type can be changed with a staticRrdBackendFactory.setDefaultFactory(String)
method call.New RRD file structure is specified with an object of class
RrdDef
. The underlying RRD storage is created as soon as the constructor returns.Typical scenario:
// create new RRD definition RrdDef def = new RrdDef("test.rrd", 300); def.addDatasource("input", DsTypes.DT_COUNTER, 600, 0, Double.NaN); def.addDatasource("output", DsTypes.DT_COUNTER, 600, 0, Double.NaN); def.addArchive(ConsolFuns.CF_AVERAGE, 0.5, 1, 600); def.addArchive(ConsolFuns.CF_AVERAGE, 0.5, 6, 700); def.addArchive(ConsolFuns.CF_AVERAGE, 0.5, 24, 797); def.addArchive(ConsolFuns.CF_AVERAGE, 0.5, 288, 775); def.addArchive(ConsolFuns.CF_MAX, 0.5, 1, 600); def.addArchive(ConsolFuns.CF_MAX, 0.5, 6, 700); def.addArchive(ConsolFuns.CF_MAX, 0.5, 24, 797); def.addArchive(ConsolFuns.CF_MAX, 0.5, 288, 775); // RRD definition is now completed, create the database! RrdDb rrd = new RrdDb(def); // new RRD file has been created on your disk
- Parameters:
rrdDef
- Object describing the structure of the new RRD file.- Throws:
IOException
- Thrown in case of I/O error.RrdException
- Thrown if invalid RrdDef object is supplied.
-
RrdDb
public RrdDb(RrdDef rrdDef, RrdBackendFactory factory) throws RrdException, IOException
Constructor used to create new RRD object from the definition object but with a storage (backend) different from default.JRobin uses factories to create RRD backend objecs. There are three different backend factories supplied with JRobin, and each factory has its unique name:
- FILE: backends created from this factory will store RRD data to files by using java.io.* classes and methods
- NIO: backends created from this factory will store RRD data to files by using java.nio.* classes and methods
- MEMORY: backends created from this factory will store RRD data in memory. This might be useful in runtime environments which prohibit disk utilization, or for storing temporary, non-critical data (it gets lost as soon as JVM exits).
For example, to create RRD in memory, use the following code:
RrdBackendFactory factory = RrdBackendFactory.getFactory("MEMORY"); RrdDb rrdDb = new RrdDb(rrdDef, factory); rrdDb.close();
New RRD file structure is specified with an object of class
RrdDef
. The underlying RRD storage is created as soon as the constructor returns.- Parameters:
rrdDef
- RRD definition objectfactory
- The factory which will be used to create storage for this RRD- Throws:
RrdException
- Thrown if invalid factory or definition is suppliedIOException
- Thrown in case of I/O error- See Also:
RrdBackendFactory
-
RrdDb
public RrdDb(String path, boolean readOnly) throws IOException, RrdException
Constructor used to open already existing RRD. This RRD object will be backed with a storage (backend) of the default type (file on the disk). Constructor obtains read or read/write access to this RRD.- Parameters:
path
- Path to existing RRD.readOnly
- Should be set tofalse
if you want to update the underlying RRD. If you want just to fetch data from the RRD file (read-only access), specifytrue
. If you try to update RRD file open in read-only mode (m_readOnly
set totrue
),IOException
will be thrown.- Throws:
IOException
- Thrown in case of I/O error.RrdException
- Thrown in case of JRobin specific error.
-
RrdDb
public RrdDb(String path, boolean readOnly, RrdBackendFactory factory) throws FileNotFoundException, IOException, RrdException
Constructor used to open already existing RRD backed with a storage (backend) different from default. Constructor obtains read or read/write access to this RRD.- Parameters:
path
- Path to existing RRD.readOnly
- Should be set tofalse
if you want to update the underlying RRD. If you want just to fetch data from the RRD file (read-only access), specifytrue
. If you try to update RRD file open in read-only mode (m_readOnly
set totrue
),IOException
will be thrown.factory
- Backend factory which will be used for this RRD.- Throws:
FileNotFoundException
- Thrown if the requested file does not exist.IOException
- Thrown in case of general I/O error (bad RRD file, for example).RrdException
- Thrown in case of JRobin specific error.- See Also:
RrdBackendFactory
-
RrdDb
public RrdDb(String path) throws IOException, RrdException
Constructor used to open already existing RRD in R/W mode, with a default storage (backend) type (file on the disk).
- Parameters:
path
- Path to existing RRD.- Throws:
IOException
- Thrown in case of I/O error.RrdException
- Thrown in case of JRobin specific error.
-
RrdDb
public RrdDb(String path, RrdBackendFactory factory) throws IOException, RrdException
Constructor used to open already existing RRD in R/W mode with a storage (backend) type different from default.
- Parameters:
path
- Path to existing RRD.factory
- Backend factory used to create this RRD.- Throws:
IOException
- Thrown in case of I/O error.RrdException
- Thrown in case of JRobin specific error.- See Also:
RrdBackendFactory
-
RrdDb
public RrdDb(String rrdPath, String externalPath) throws IOException, RrdException, RrdException
Constructor used to create RRD files from external file sources. Supported external file sources are:- RRDTool/JRobin XML file dumps (i.e files created with
rrdtool dump
command). - RRDTool binary files.
Newly created RRD will be backed with a default storage (backend) type (file on the disk).
JRobin and RRDTool use the same format for XML dump and this constructor should be used to (re)create JRobin RRD files from XML dumps. First, dump the content of a RRDTool RRD file (use command line):
rrdtool dump original.rrd > original.xml
Than, use the file
original.xml
to create JRobin RRD file namedcopy.rrd
:RrdDb rrd = new RrdDb("copy.rrd", "original.xml");
or:
RrdDb rrd = new RrdDb("copy.rrd", "xml:/original.xml");
See documentation for
dumpXml()
method to see how to convert JRobin files to RRDTool's format.To read RRDTool files directly, specify
rrdtool:/
prefix in theexternalPath
argument. For example, to create JRobin compatible file namedcopy.rrd
from the fileoriginal.rrd
created with RRDTool, use the following code:RrdDb rrd = new RrdDb("copy.rrd", "rrdtool:/original.rrd");
Note that the prefix
xml:/
orrrdtool:/
is necessary to distinguish between XML and RRDTool's binary sources. If no prefix is supplied, XML format is assumed.- Parameters:
rrdPath
- Path to a RRD file which will be createdexternalPath
- Path to an external file which should be imported, with an optionalxml:/
orrrdtool:/
prefix.- Throws:
IOException
- Thrown in case of I/O errorRrdException
- Thrown in case of JRobin specific error
- RRDTool/JRobin XML file dumps (i.e files created with
-
RrdDb
public RrdDb(String rrdPath, String externalPath, RrdBackendFactory factory) throws IOException, RrdException
Constructor used to create RRD files from external file sources with a backend type different from default. Supported external file sources are:- RRDTool/JRobin XML file dumps (i.e files created with
rrdtool dump
command). - RRDTool binary files.
JRobin and RRDTool use the same format for XML dump and this constructor should be used to (re)create JRobin RRD files from XML dumps. First, dump the content of a RRDTool RRD file (use command line):
rrdtool dump original.rrd > original.xml
Than, use the file
original.xml
to create JRobin RRD file namedcopy.rrd
:RrdDb rrd = new RrdDb("copy.rrd", "original.xml");
or:
RrdDb rrd = new RrdDb("copy.rrd", "xml:/original.xml");
See documentation for
dumpXml()
method to see how to convert JRobin files to RRDTool's format.To read RRDTool files directly, specify
rrdtool:/
prefix in theexternalPath
argument. For example, to create JRobin compatible file namedcopy.rrd
from the fileoriginal.rrd
created with RRDTool, use the following code:RrdDb rrd = new RrdDb("copy.rrd", "rrdtool:/original.rrd");
Note that the prefix
xml:/
orrrdtool:/
is necessary to distinguish between XML and RRDTool's binary sources. If no prefix is supplied, XML format is assumed.- Parameters:
rrdPath
- Path to RRD which will be createdexternalPath
- Path to an external file which should be imported, with an optionalxml:/
orrrdtool:/
prefix.factory
- Backend factory which will be used to create storage (backend) for this RRD.- Throws:
IOException
- Thrown in case of I/O errorRrdException
- Thrown in case of JRobin specific error- See Also:
RrdBackendFactory
- RRDTool/JRobin XML file dumps (i.e files created with
-
RrdDb
public RrdDb(File file) throws IOException, RrdException
- Throws:
IOException
RrdException
-
RrdDb
public RrdDb(File file, boolean readOnly) throws IOException, RrdException
- Throws:
IOException
RrdException
-
-
Method Detail
-
close
public void close() throws IOException
Closes RRD. No further operations are allowed on this RrdDb object.- Throws:
IOException
- Thrown in case of I/O related error.
-
isClosed
public boolean isClosed()
Returns true if the RRD is closed.- Returns:
- true if closed, false otherwise
-
getHeader
public Header getHeader()
Returns RRD header.- Returns:
- Header object
-
getDatasource
public Datasource getDatasource(int dsIndex)
Returns Datasource object for the given datasource index.- Parameters:
dsIndex
- Datasource index (zero based)- Returns:
- Datasource object
-
getArchive
public Archive getArchive(int arcIndex)
Returns Archive object for the given archive index.- Parameters:
arcIndex
- Archive index (zero based)- Returns:
- Archive object
-
getDsNames
public String[] getDsNames() throws IOException
Returns an array of datasource names defined in RRD.- Returns:
- Array of datasource names.
- Throws:
IOException
- Thrown in case of I/O error.
-
createSample
public Sample createSample(long time) throws IOException
Creates new sample with the given timestamp and all datasource values set to 'unknown'. Use returnedSample
object to specify datasource values for the given timestamp. See documentation forSample
for an explanation how to do this.Once populated with data source values, call Sample's
update()
method to actually store sample in the RRD associated with it.- Parameters:
time
- Sample timestamp rounded to the nearest second (without milliseconds).- Returns:
- Fresh sample with the given timestamp and all data source values set to 'unknown'.
- Throws:
IOException
- Thrown in case of I/O error.
-
createSample
public Sample createSample() throws IOException
Creates new sample with the current timestamp and all data source values set to 'unknown'. Use returnedSample
object to specify datasource values for the current timestamp. See documentation forSample
for an explanation how to do this.Once populated with data source values, call Sample's
update()
method to actually store sample in the RRD associated with it.- Returns:
- Fresh sample with the current timestamp and all data source values set to 'unknown'.
- Throws:
IOException
- Thrown in case of I/O error.
-
createFetchRequest
public FetchRequest createFetchRequest(String consolFun, long fetchStart, long fetchEnd, long resolution) throws RrdException
Prepares fetch request to be executed on this RRD. Use returned
FetchRequest
object and itsfetchData()
method to actually fetch data from the RRD file.- Parameters:
consolFun
- Consolidation function to be used in fetch request. Allowed values are "AVERAGE", "MIN", "MAX" and "LAST" (these constants are conveniently defined in theConsolFuns
class).fetchStart
- Starting timestamp for fetch request.fetchEnd
- Ending timestamp for fetch request.resolution
- Fetch resolution (see RRDTool's rrdfetch man page for an explanation of this parameter.- Returns:
- Request object that should be used to actually fetch data from RRD.
- Throws:
RrdException
- In case of JRobin related error (invalid consolidation function or invalid time span).
-
createFetchRequest
public FetchRequest createFetchRequest(String consolFun, long fetchStart, long fetchEnd) throws RrdException
Prepares fetch request to be executed on this RRD. Use returned
FetchRequest
object and itsfetchData()
method to actually fetch data from this RRD. Data will be fetched with the smallest possible resolution (see RRDTool's rrdfetch man page for the explanation of the resolution parameter).- Parameters:
consolFun
- Consolidation function to be used in fetch request. Allowed values are "AVERAGE", "MIN", "MAX" and "LAST" (these constants are conveniently defined in theConsolFuns
class).fetchStart
- Starting timestamp for fetch request.fetchEnd
- Ending timestamp for fetch request.- Returns:
- Request object that should be used to actually fetch data from RRD.
- Throws:
RrdException
- In case of JRobin related error (invalid consolidation function or invalid time span).
-
store
void store(Sample sample) throws IOException, RrdException
- Throws:
IOException
RrdException
-
fetchData
FetchData fetchData(FetchRequest request) throws IOException, RrdException
- Throws:
IOException
RrdException
-
findMatchingArchive
public Archive findMatchingArchive(FetchRequest request) throws RrdException, IOException
- Throws:
RrdException
IOException
-
findStartMatchArchive
public Archive findStartMatchArchive(String consolFun, long startTime, long resolution) throws IOException
Finds the archive that best matches to the start time (time period being start-time until now) and requested resolution.- Parameters:
consolFun
- Consolidation function of the datasource.startTime
- Start time of the time period in seconds.resolution
- Requested fetch resolution.- Returns:
- Reference to the best matching archive.
- Throws:
IOException
- Thrown in case of I/O related error.
-
dump
public String dump() throws IOException
Returns string representing complete internal RRD state. The returned string can be printed to
stdout
and/or used for debugging purposes.- Returns:
- String representing internal RRD state.
- Throws:
IOException
- Thrown in case of I/O related error.
-
archive
void archive(Datasource datasource, double value, long numUpdates) throws IOException, RrdException
- Throws:
IOException
RrdException
-
getDsIndex
public int getDsIndex(String dsName) throws RrdException, IOException
Returns internal index number for the given datasource name. This index is heavily used by jrobin.graph package and has no value outside of it.
- Parameters:
dsName
- Data source name.- Returns:
- Internal index of the given data source name in this RRD.
- Throws:
RrdException
- Thrown in case of JRobin related error (invalid data source name, for example)IOException
- Thrown in case of I/O error.
-
containsDs
public boolean containsDs(String dsName) throws IOException
Checks presence of a specific datasource.- Parameters:
dsName
- Datasource name to check- Returns:
true
if datasource is present in this RRD,false
otherwise- Throws:
IOException
- Thrown in case of I/O error.
-
getDatasources
Datasource[] getDatasources()
-
getArchives
Archive[] getArchives()
-
dumpXml
public void dumpXml(OutputStream destination) throws IOException
Writes the RRD content to OutputStream using XML format. This format is fully compatible with RRDTool's XML dump format and can be used for conversion purposes or debugging.- Parameters:
destination
- Output stream to receive XML data- Throws:
IOException
- Thrown in case of I/O related error
-
exportXml
public void exportXml(OutputStream destination) throws IOException
This method is just an alias fordumpXml
method.- Parameters:
destination
- Output stream to receive XML data- Throws:
IOException
- Thrown in case of I/O related error
-
getXml
public String getXml() throws IOException, RrdException
Returns string representing internal RRD state in XML format. This format is fully compatible with RRDTool's XML dump format and can be used for conversion purposes or debugging.- Returns:
- Internal RRD state in XML format.
- Throws:
IOException
- Thrown in case of I/O related errorRrdException
- Thrown in case of JRobin specific error
-
exportXml
public String exportXml() throws IOException, RrdException
This method is just an alias forgetXml
method.- Returns:
- Internal RRD state in XML format.
- Throws:
IOException
- Thrown in case of I/O related errorRrdException
- Thrown in case of JRobin specific error
-
dumpXml
public void dumpXml(String filename) throws IOException, RrdException
Dumps internal RRD state to XML file. Use this XML file to convert your JRobin RRD to RRDTool format.Suppose that you have a JRobin RRD file
original.rrd
and you want to convert it to RRDTool format. First, execute the following java code:RrdDb rrd = new RrdDb("original.rrd"); rrd.dumpXml("original.xml");
Use
original.xml
file to create the corresponding RRDTool file (from your command line):rrdtool restore copy.rrd original.xml
- Parameters:
filename
- Path to XML file which will be created.- Throws:
IOException
- Thrown in case of I/O related error.RrdException
- Thrown in case of JRobin related error.
-
exportXml
public void exportXml(String filename) throws IOException, RrdException
This method is just an alias fordumpXml(String)
method.- Parameters:
filename
- Path to XML file which will be created.- Throws:
IOException
- Thrown in case of I/O related errorRrdException
- Thrown in case of JRobin specific error
-
getLastUpdateTime
public long getLastUpdateTime() throws IOException
Returns time of last update operation as timestamp (in seconds).- Returns:
- Last update time (in seconds).
- Throws:
IOException
- Thrown in case of I/O related error
-
getRrdDef
public RrdDef getRrdDef() throws RrdException, IOException
Returns RRD definition object which can be used to create new RRD with the same creation parameters but with no data in it.Example:
RrdDb rrd1 = new RrdDb("original.rrd"); RrdDef def = rrd1.getRrdDef(); // fix path def.setPath("empty_copy.rrd"); // create new RRD file RrdDb rrd2 = new RrdDb(def);
- Returns:
- RRD definition.
- Throws:
IOException
- Thrown in case of I/O related error.RrdException
- Thrown in case of JRobin specific error.
-
finalize
protected void finalize() throws Throwable
-
copyStateTo
public void copyStateTo(RrdUpdater other) throws IOException, RrdException
Copies object's internal state to another RrdDb object.- Specified by:
copyStateTo
in interfaceRrdUpdater
- Parameters:
other
- New RrdDb object to copy state to- Throws:
IOException
- Thrown in case of I/O errorRrdException
- Thrown if supplied argument is not a compatible RrdDb object
-
getDatasource
public Datasource getDatasource(String dsName) throws IOException
Returns Datasource object corresponding to the given datasource name.- Parameters:
dsName
- Datasource name- Returns:
- Datasource object corresponding to the give datasource name or null if not found.
- Throws:
IOException
- Thrown in case of I/O error
-
getArcIndex
public int getArcIndex(String consolFun, int steps) throws RrdException, IOException
Returns index of Archive object with the given consolidation function and the number of steps. Exception is thrown if such archive could not be found.- Parameters:
consolFun
- Consolidation functionsteps
- Number of archive steps- Returns:
- Requested Archive object
- Throws:
IOException
- Thrown in case of I/O errorRrdException
- Thrown if no such archive could be found
-
getArchive
public Archive getArchive(String consolFun, int steps) throws IOException
Returns Archive object with the given consolidation function and the number of steps.- Parameters:
consolFun
- Consolidation functionsteps
- Number of archive steps- Returns:
- Requested Archive object or null if no such archive could be found
- Throws:
IOException
- Thrown in case of I/O error
-
getCanonicalPath
public String getCanonicalPath() throws IOException
Returns canonical path to the underlying RRD file. Note that this method makes sense just for ordinary RRD files created on the disk - an exception will be thrown for RRD objects created in memory or with custom backends.- Returns:
- Canonical path to RRD file;
- Throws:
IOException
- Thrown in case of I/O error or if the underlying backend is not derived from RrdFileBackend.
-
getPath
public String getPath()
Returns path to this RRD.- Returns:
- Path to this RRD.
-
getRrdBackend
public RrdBackend getRrdBackend()
Returns backend object for this RRD which performs actual I/O operations.- Specified by:
getRrdBackend
in interfaceRrdUpdater
- Returns:
- RRD backend for this RRD.
-
getRrdAllocator
public RrdAllocator getRrdAllocator()
Required to implement RrdUpdater interface. You should never call this method directly.- Specified by:
getRrdAllocator
in interfaceRrdUpdater
- Returns:
- Allocator object
-
getBytes
public byte[] getBytes() throws IOException
Returns an array of bytes representing the whole RRD.- Returns:
- All RRD bytes
- Throws:
IOException
- Thrown in case of I/O related error.
-
setDefaultFactory
public static void setDefaultFactory(String factoryName) throws RrdException
Sets default backend factory to be used. This method is just an alias forRrdBackendFactory.setDefaultFactory(java.lang.String)
.- Parameters:
factoryName
- Name of the backend factory to be set as default.- Throws:
RrdException
- Thrown if invalid factory name is supplied, or not called before the first backend object (before the first RrdDb object) is created.
-
getLastDatasourceValues
public double[] getLastDatasourceValues() throws IOException
Returns an array of last datasource values. The first value in the array corresponds to the first datasource defined in the RrdDb and so on.- Returns:
- Array of last datasource values
- Throws:
IOException
- Thrown in case of I/O error
-
getLastDatasourceValue
public double getLastDatasourceValue(String dsName) throws IOException, RrdException
Returns the last stored value for the given datasource.- Parameters:
dsName
- Datasource name- Returns:
- Last stored value for the given datasource
- Throws:
IOException
- Thrown in case of I/O errorRrdException
- Thrown if no datasource in this RrdDb matches the given datasource name
-
getDsCount
public int getDsCount()
Returns the number of datasources defined in the file- Returns:
- The number of datasources defined in the file
-
getArcCount
public int getArcCount()
Returns the number of RRA arcihves defined in the file- Returns:
- The number of RRA arcihves defined in the file
-
getLastArchiveUpdateTime
public long getLastArchiveUpdateTime() throws IOException
Returns the last time when some of the archives in this RRD was updated. This time is not the same as thegetLastUpdateTime()
since RRD file can be updated without updating any of the archives.- Returns:
- last time when some of the archives in this RRD was updated
- Throws:
IOException
- Thrown in case of I/O error
-
getInfo
public String getInfo() throws IOException
- Throws:
IOException
-
setInfo
public void setInfo(String info) throws IOException
- Throws:
IOException
-
main
public static void main(String[] args)
-
-