java.lang.Object
org.rrd4j.core.Archive
- All Implemented Interfaces:
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.
Field Summary
FieldsModifier and TypeFieldDescriptionHow raw values are consolidated, from the definition.private final RrdDbThe database the archive belongs to.private final Robin[]The stored values, one ring per data source.Number of archive rowsprivate final ArcState[]Consolidation state, one per data source.Number of archive stepsX-files factorConstructor Summary
Method Summary
Modifier and TypeMethodDescriptionprivate voidaccumulate(ArcState state, double value) Folds one sample into the archive's state.(package private) voidAppend the archive data as XML.(package private) voidarchive(int dsIndex, double value, long numUpdates) Archives a value for the specified datasource.voidcopyStateTo(Archive arc) Copies object's internal state to another Archive object.(package private) Stringdump()Returns a string representation of the archive information.(package private) FetchDatafetchData(FetchRequest request) Fetch data from the archive.private voidfinalizeStep(ArcState state, Robin robin) Writes the consolidated value at the end of a step.getArcState(int dsIndex) Returns the underlying archive state object.longReturns archive time step in seconds.Returns archive consolidation function ("AVERAGE", "MIN", "MAX", "FIRST", "LAST" or "TOTAL").longReturns current ending timestamp.(package private) RrdDbReturns the parent RRD database.getRobin(int dsIndex) Returns the underlying round robin archive.intgetRows()Returns the number of archive rows.Required to implement RrdUpdater interface.Returns the underlying storage (backend) object which actually performs all I/O operations.longReturns current starting timestamp.intgetSteps()Returns the number of archive steps.doublegetXff()Returns archive X-files factor.voidsetXff(double xff) Sets X-files factor to a new value.
Field Details
parentDb
The database the archive belongs to.consolFun
xff
steps
rows
robins
The stored values, one ring per data source.states
Consolidation state, one per data source.
Constructor Details
Archive
Archive(RrdDb parentDb, ArcDef arcDef) throws IOException Create an archive with the given definition.- Parameters:
parentDb- the parent RRD databasearcDef- archive definition, or null for uninitialized- Throws:
IOException- if an I/O error occurs
Archive
Archive(RrdDb parentDb, DataImporter reader, int arcIndex) throws IOException Create an archive by importing from XML data.- Parameters:
parentDb- the parent RRD databasereader- data importer for XML restorearcIndex- which archive definition in the XML to import- Throws:
IOException- if an I/O error occurs
Method Details
getArcStep
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.
dump
Returns a string representation of the archive information.- Returns:
- a string containing archive information
- Throws:
IOException- if an I/O error occurs
getParentDb
archive
Archives a value for the specified datasource.- Parameters:
dsIndex- index of the datasourcevalue- value to archivenumUpdates- number of updates to perform- Throws:
IOException- if an I/O error occurs
accumulate
Folds one sample into the archive's state.- Parameters:
state- the state to updatevalue- the sample's value- Throws:
IOException- if the state cannot be written
finalizeStep
Writes the consolidated value at the end of a step.- Parameters:
state- the state to consolidaterobin- where the value is stored- Throws:
IOException- if the value cannot be written
getConsolFun
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
Returns archive X-files factor.- Returns:
- Archive X-files factor (between 0 and 1).
- Throws:
IOException- Thrown in case of I/O error.
getSteps
Returns the number of archive steps.- Returns:
- Number of archive steps.
- Throws:
IOException- Thrown in case of I/O error.
getRows
Returns the number of archive rows.- Returns:
- Number of archive rows.
- Throws:
IOException- Thrown in case of I/O error.
getStartTime
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
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
Returns the underlying archive state object. Each datasource has its corresponding ArcState object (archive states are managed independently for each RRD datasource).- Parameters:
dsIndex- which datasource's archive state to return- Returns:
- Underlying archive state object
getRobin
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.
fetchData
Fetch data from the archive.- Parameters:
request- the fetch request- Returns:
- fetch data result
- Throws:
IOException- if an I/O error occurs
appendXml
Append the archive data as XML.- Parameters:
writer- the XML writer- Throws:
IOException- if an I/O error occurs
copyStateTo
Copies object's internal state to another Archive object.
- Specified by:
copyStateToin interfaceRrdUpdater<Archive>- Parameters:
arc- aRrdUpdaterobject.- Throws:
IOException- if the state cannot be read from the backend
setXff
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
Returns the underlying storage (backend) object which actually performs all I/O operations.- Specified by:
getRrdBackendin interfaceRrdUpdater<Archive>- Returns:
- I/O backend object
getRrdAllocator
Required to implement RrdUpdater interface. You should never call this method directly.- Specified by:
getRrdAllocatorin interfaceRrdUpdater<Archive>- Returns:
- Allocator object