Package org.opennms.netmgt.rrd
Interface RrdStrategy<D,F>
-
- All Known Implementing Classes:
AbstractJniRrdStrategy
,JniRrdStrategy
,JRobinRrdStrategy
,MultiOutputRrdStrategy
,MultithreadedJniRrdStrategy
,NullRrdStrategy
,QueuingRrdStrategy
,QueuingTcpRrdStrategy
,TcpRrdStrategy
public interface RrdStrategy<D,F>
Defines an abstract strategy for manipulating round robin database file. This is used by the RrdUtils to implement the appropriate behavior- Version:
- $Id: $
- Author:
- ranger
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
closeFile(F rrd)
This closes the supplied round robin databaseD
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(D rrdDef)
Creates the round robin database defined by the supplied definition.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()
Get the file extension appropriate for files of this typeint
getGraphLeftOffset()
Returns the number of pixels that the leftt-hand side of the graph is offset from the left side of the created image.int
getGraphRightOffset()
Returns the number of pixels that the right-hand side of the graph is offset from the right side of the created image.int
getGraphTopOffsetWithText()
Returns the number of pixels that the top of the graph is offset from the top of the created image if there is single line of header text.String
getStats()
Provides the round robin database an opportunity to contribute statistics information to the logs file.F
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 props)
setConfigurationPropertiesvoid
updateFile(F rrd, String owner, String data)
Updates the supplied round robin database with the given timestamp:value point
-
-
-
Method Detail
-
setConfigurationProperties
void setConfigurationProperties(Properties props)
setConfigurationProperties
- Parameters:
props
- aProperties
object.
-
getDefaultFileExtension
String getDefaultFileExtension()
Get the file extension appropriate for files of this type- Returns:
- a
String
object.
-
createDefinition
D 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.- Parameters:
creator
- - A string representing who is creating this file for use in log msgsdirectory
- - The directory to create the file inrrdName
- - The name to use for the round robin databasestep
- - the step for the databasedataSources
- - the data sources to use for round robin databaserraList
- - a List of the round robin archives to create in the database. defines after which time the data is condensed to a defined lower step- Returns:
- an object representing the definition of an round robin database. Can be null if the database exists already.
- Throws:
Exception
- If an error occurs while creating the definition
-
createFile
void createFile(D rrdDef) throws Exception
Creates the round robin database defined by the supplied definition. Should be able to handle rrdDef being null.- Parameters:
rrdDef
- an round robin database definition created using the createDefinition call.- Throws:
Exception
- if an error occurs create the file
-
openFile
F 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- 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
-
updateFile
void updateFile(F rrd, String owner, String data) throws Exception
Updates the supplied round robin database with the given timestamp:value point- Parameters:
rrd
- an rrd object created using openFileowner
- the owner of the rrddata
- a string of the form: - Throws:
Exception
- if an error occurs updating the file
-
closeFile
void closeFile(F rrd) throws Exception
This closes the supplied round robin database- Parameters:
rrd
- an rrd object created using openFile- Throws:
Exception
- if an error occurs closing the file
-
fetchLastValue
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.- Parameters:
rrdFile
- a name the represents a round robin databaseds
- a name the represents a data source to be usedinterval
- 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
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.- Parameters:
rrdFile
- a name the represents a round robin databaseds
- a name the represents a data source to be usedinterval
- a step interval of the round robin databaseconsolidationFunction
- aString
object.- 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
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.- Parameters:
rrdFile
- a name the represents a round robin databaseds
- a name the represents a data source to be usedinterval
- a step interval of the round robin databaserange
- 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.
-
createGraph
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 .- Parameters:
command
- the command needed to create the graphworkDir
- 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 occursRrdException
- if an RRD error occurs
-
createGraphReturnDetails
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 .- Parameters:
command
- the command needed to create the graphworkDir
- 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 occursRrdException
- if an RRD error occurs
-
getGraphLeftOffset
int getGraphLeftOffset()
Returns the number of pixels that the leftt-hand side of the graph is offset from the left side of the created image. The offset should always be positive.- Returns:
- offset in pixels. Should always be positive.
-
getGraphRightOffset
int getGraphRightOffset()
Returns the number of pixels that the right-hand side of the graph is offset from the right side of the created image. The offset should always be negative.- Returns:
- offset in pixels. Should always be negative.
-
getGraphTopOffsetWithText
int getGraphTopOffsetWithText()
Returns the number of pixels that the top of the graph is offset from the top of the created image if there is single line of header text. The offset should always be negative.- Returns:
- offset in pixels. Should always be negative.
-
getStats
String getStats()
Provides the round robin database an opportunity to contribute statistics information to the logs file.- Returns:
- a non-null string representing any statistics to be included in the logs
-
promoteEnqueuedFiles
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.- Parameters:
rrdFiles
- aCollection
object.
-
-