org.opennms.netmgt.rrd
Class MultiOutputRrdStrategy

java.lang.Object
  extended by org.opennms.netmgt.rrd.MultiOutputRrdStrategy
All Implemented Interfaces:
RrdStrategy<List<Object>,List<Object>>

public class MultiOutputRrdStrategy
extends Object
implements RrdStrategy<List<Object>,List<Object>>

MultiOutputRrdStrategy class.

Version:
$Id: $
Author:
ranger

Constructor Summary
MultiOutputRrdStrategy()
           
 
Method Summary
 void closeFile(List<Object> rrd)
          closeFile
 List<Object> createDefinition(String creator, String directory, String rrdName, int step, List<RrdDataSource> dataSources, List<String> rraList)
          Create a round robin database definition from the supplied parameters.
 void createFile(List<Object> rrdDef)
          createFile
 InputStream createGraph(String command, File workDir)
          Creates an InputStream representing the bytes of a graph created from round robin data.
 RrdGraphDetails createGraphReturnDetails(String command, File workDir)
          Creates an RrdGraphDetails object representing the graph created from round robin data.
 Double fetchLastValue(String rrdFile, String ds, int interval)
          Fetches the last value from the round robin database with the given name.
 Double fetchLastValue(String rrdFile, String ds, String consolidationFunction, int interval)
          Fetches the last value from the round robin database with the given name.
 Double fetchLastValueInRange(String rrdFile, String ds, int interval, int range)
          Fetches the last value from the round robin database with the given name within a time range.
 String getDefaultFileExtension()
          getDefaultFileExtension
 List<RrdStrategy<Object,Object>> getDelegates()
          getDelegates
 int getFetchStrategyIndex()
          getFetchStrategyIndex
 int getGraphLeftOffset()
          getGraphLeftOffset
 int getGraphRightOffset()
          getGraphRightOffset
 int getGraphStrategyIndex()
          getGraphStrategyIndex
 int getGraphTopOffsetWithText()
          getGraphTopOffsetWithText
 String getStats()
          getStats
 List<Object> openFile(String fileName)
          Opens the round robin database with the supplied name.
 void promoteEnqueuedFiles(Collection<String> rrdFiles)
          In the event that this is a queuing implementation of the RrdStrategy.
 void setConfigurationProperties(Properties configurationParameters)
          setConfigurationProperties
 void setDelegates(List<RrdStrategy<Object,Object>> delegates)
          setDelegates
 void setFetchStrategyIndex(int fetchStrategyIndex)
          setFetchStrategyIndex
 void setGraphStrategyIndex(int graphStrategyIndex)
          setGraphStrategyIndex
 void updateFile(List<Object> rrd, String owner, String data)
          Updates the supplied round robin database with the given timestamp:value point
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiOutputRrdStrategy

public MultiOutputRrdStrategy()
Method Detail

setConfigurationProperties

public void setConfigurationProperties(Properties configurationParameters)

setConfigurationProperties

Specified by:
setConfigurationProperties in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
configurationParameters - a Properties object.

getDelegates

public List<RrdStrategy<Object,Object>> getDelegates()

getDelegates

Returns:
a List object.

setDelegates

public void setDelegates(List<RrdStrategy<Object,Object>> delegates)

setDelegates

Parameters:
delegates - a List object.

getGraphStrategyIndex

public int getGraphStrategyIndex()

getGraphStrategyIndex

Returns:
a int.

setGraphStrategyIndex

public void setGraphStrategyIndex(int graphStrategyIndex)

setGraphStrategyIndex

Parameters:
graphStrategyIndex - a int.

getFetchStrategyIndex

public int getFetchStrategyIndex()

getFetchStrategyIndex

Returns:
a int.

setFetchStrategyIndex

public void setFetchStrategyIndex(int fetchStrategyIndex)

setFetchStrategyIndex

Parameters:
fetchStrategyIndex - a int.

closeFile

public void closeFile(List<Object> rrd)
               throws Exception

closeFile

Specified by:
closeFile in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
rrd - a List object.
Throws:
Exception - if any.

createDefinition

public List<Object> createDefinition(String creator,
                                     String directory,
                                     String rrdName,
                                     int step,
                                     List<RrdDataSource> dataSources,
                                     List<String> rraList)
                              throws Exception
Create a round robin database definition from the supplied parameters. This definition is used in the createFile call to create the actual file.

Specified by:
createDefinition in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
creator - - A string representing who is creating this file for use in log msgs
directory - - The directory to create the file in
rrdName - - The name to use for the round robin database
step - - the step for the database
dataSources - - the data sources to use for round robin database
rraList - - a List of the round robin archives to create in the database
Returns:
an object representing the definition of an round robin database
Throws:
Exception - If an error occurs while creating the definition

createFile

public void createFile(List<Object> rrdDef)
                throws Exception

createFile

Specified by:
createFile in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
rrdDef - a List object.
Throws:
Exception - if any.

createGraph

public InputStream createGraph(String command,
                               File workDir)
                        throws IOException,
                               RrdException
Creates an InputStream representing the bytes of a graph created from round robin data. It accepts an rrdtool graph command. The underlying implementation converts this command to a format appropriate for it .

Specified by:
createGraph in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
command - the command needed to create the graph
workDir - the directory that all referenced files are relative to
Returns:
an input stream representing the bytes of a graph image as a PNG file
Throws:
IOException - if an IOError occurs
RrdException - if an RRD error occurs

createGraphReturnDetails

public RrdGraphDetails createGraphReturnDetails(String command,
                                                File workDir)
                                         throws IOException,
                                                RrdException
Creates an RrdGraphDetails object representing the graph created from round robin data. It accepts an rrdtool graph command. The underlying implementation converts this command to a format appropriate for it .

Specified by:
createGraphReturnDetails in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
command - the command needed to create the graph
workDir - the directory that all referenced files are relative to
Returns:
details for the graph including an InputStream, any PRINTed lines, and graph dimensions.
Throws:
IOException - if an IOError occurs
RrdException - if an RRD error occurs

fetchLastValue

public Double fetchLastValue(String rrdFile,
                             String ds,
                             int interval)
                      throws NumberFormatException,
                             RrdException
Fetches the last value from the round robin database with the given name. The interval passed in should be the interval associated with the round robin database.

Specified by:
fetchLastValue in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
rrdFile - a name the represents a round robin database
ds - a name the represents a data source to be used
interval - a step interval of the round robin database
Returns:
The last value as a Double (if the last value didn't exist returns a Double.NaN)
Throws:
NumberFormatException - if any.
RrdException - if any.

fetchLastValue

public Double fetchLastValue(String rrdFile,
                             String ds,
                             String consolidationFunction,
                             int interval)
                      throws NumberFormatException,
                             RrdException
Fetches the last value from the round robin database with the given name. The interval passed in should be the interval associated with the round robin database.

Specified by:
fetchLastValue in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
rrdFile - a name the represents a round robin database
ds - a name the represents a data source to be used
consolidationFunction - a String object.
interval - a step interval of the round robin database
Returns:
The last value as a Double (if the last value didn't exist returns a Double.NaN)
Throws:
NumberFormatException - if any.
RrdException - if any.

fetchLastValueInRange

public Double fetchLastValueInRange(String rrdFile,
                                    String ds,
                                    int interval,
                                    int range)
                             throws NumberFormatException,
                                    RrdException
Fetches the last value from the round robin database with the given name within a time range. The interval passed in should be the interval associated with the round robin database. The range should be the amount of "lag" acceptable for an update to be considered valid. Range must be a multiple of the RRD interval.

Specified by:
fetchLastValueInRange in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
rrdFile - a name the represents a round robin database
ds - a name the represents a data source to be used
interval - a step interval of the round robin database
range - an acceptable range for which the last value will be returned
Returns:
The last value as a Double (if the last value didn't exist returns a Double.NaN)
Throws:
NumberFormatException - if any.
RrdException - if any.

getDefaultFileExtension

public String getDefaultFileExtension()

getDefaultFileExtension

Specified by:
getDefaultFileExtension in interface RrdStrategy<List<Object>,List<Object>>
Returns:
a String object.

getGraphLeftOffset

public int getGraphLeftOffset()

getGraphLeftOffset

Specified by:
getGraphLeftOffset in interface RrdStrategy<List<Object>,List<Object>>
Returns:
a int.

getGraphRightOffset

public int getGraphRightOffset()

getGraphRightOffset

Specified by:
getGraphRightOffset in interface RrdStrategy<List<Object>,List<Object>>
Returns:
a int.

getGraphTopOffsetWithText

public int getGraphTopOffsetWithText()

getGraphTopOffsetWithText

Specified by:
getGraphTopOffsetWithText in interface RrdStrategy<List<Object>,List<Object>>
Returns:
a int.

getStats

public String getStats()

getStats

Specified by:
getStats in interface RrdStrategy<List<Object>,List<Object>>
Returns:
a String object.

openFile

public List<Object> openFile(String fileName)
                      throws Exception
Opens the round robin database with the supplied name. It is assumed the name refers to a round robin database appropriate for this strategy implementation

Specified by:
openFile in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
fileName - the name of the associated rrd file
Returns:
an open rrd reference that can by used in calls to updateFile and closeFile
Throws:
Exception - if an error occurs opening the file

promoteEnqueuedFiles

public void promoteEnqueuedFiles(Collection<String> rrdFiles)
In the event that this is a queuing implementation of the RrdStrategy. This method causes all queued but not yet written data to be to the rrd files as soon as possible.

Specified by:
promoteEnqueuedFiles in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
rrdFiles - a Collection object.

updateFile

public void updateFile(List<Object> rrd,
                       String owner,
                       String data)
                throws Exception
Updates the supplied round robin database with the given timestamp:value point

Specified by:
updateFile in interface RrdStrategy<List<Object>,List<Object>>
Parameters:
rrd - an rrd object created using openFile
owner - the owner of the rrd
data - a string of the form :
Throws:
Exception - if an error occurs updating the file


Copyright © 2011. All Rights Reserved.