int RrdCreate ( string filename, int
step, array datasources, array
int RrdCreate ( string filename, int
step, int startTime, array
datasources, array archives )
OK if RRD file has been
created successfully with given parameters; otherwise
filename – string variable
that specifies the full path to the RRD file you want to
step – integer variable
that specifies the base interval in seconds with which data will be
fed into the RRD.
startTime – integer variable
that specifies the time in seconds since 1970-01-01 UTC when the
first value should be added to the RRD. Optional parameter. Default
value is Now-10s.
datasources – two-dimensional
array variable that defines basic properties of each data source
you want to store in the RRD. Data source properties must be
specified in the array using the following structure:
array[DsName] - the name you will use to reference
data source 0 in the RRD.
array[DsType] - string that defines the data
source 0 type. GAUGE, COUNTER, DERIVE, and ABSOLUTE types are
supported. See remarks section for data source types
array[HeartBeat] - integer variable that defines
the maximum number of seconds that may pass between two updates of
data source 0 before the value of the data source is assumed to be
array[MinValue] - double variable that defines the
expected min value for data supplied by the data source
array[MaxValue] - double variable that defines the
expected max value for data supplied by the data source 0.
array[DsName] - the name of data source 1.
array[DsType] - the type of data source 1.
archives – two-dimensional
array variable that defines how to store data in the round robin
archives (RRA). An archive consists of a number of data values or
statistics for each of the defined data sources. All archives,
specified in this array will be created for each
data source specified in
datasources array. Archive
properties must be specified in the array using the following
array[ConsolFun] - string that defines the
consolidation function (CF) of the archive 0. There are
several consolidation functions that consolidate primary data
points via an aggregate function: AVERAGE, MIN, MAX, LAST.
array[Xff] - double variable representing the
xfiles factor that defines what part of a consolidation interval
may be made up from *UNKNOWN* data while the consolidated
value is still regarded as known. It is given as the ratio of
allowed *UNKNOWN* primary data points to the number of
primary data points in the interval. Thus, it ranges from 0 to 1
array[Steps] - integer variable that defines how
many of primary data points
are used to build a consolidated
data point which then goes into the archive.
array[Rows] - integer variable that defines how
many generations of data values are kept in an round robin archive..
array[ConsolFun] - consolidation function
(CF) of the archive 1.
array[Xff] - Xff of the archive 1.
Call this function to set up a new Round Robin
Database (RRD) file. A
single RRD can accept
input from several data sources (DS), for example incoming and outgoing
traffic on a specific communication line. The following types of
data source are supported:
- GAUGE is for things like temperatures or number of
people in a room or the value of a RedHat share.
- COUNTER is for continuous incrementing counters like the
ifInOctets counter in a router. The COUNTER data source assumes
that the counter never decreases, except when a counter overflows.
The update function takes the overflow into account. The counter is
stored as a per-second rate. When the counter overflows, RRD checks
if the overflow happened at the 32bit or 64bit border and acts
accordingly by adding an appropriate value to the result.
- DERIVE will store the derivative of the line going from
the last to the current value of the data source. This can be
useful for gauges, for example, to measure the rate of people
entering or leaving a room. Internally, derive works exactly like
COUNTER but without overflow checks. So if your counter does not
reset at 32 or 64 bit you might want to use DERIVE and combine it
with a MIN value of 0.
- ABSOLUTE is for counters which get reset upon reading.
This is used for fast counters which tend to overflow. So instead
of reading them normally you reset them after every read to make
sure you have a maximum time available before the next overflow.
Another usage is for things you count like number of messages since
the last update.
Plug-in module: nd_rrdplg.npl
The following example demonstrates the use of
Datasource1["DsName"] = "sun"
Datasource1["DsType"] = "GAUGE"
Datasource1["HeartBeat"] = 600
Datasource1["MinValue"] = 0.0
Datasource1["MaxValue"] = 100000.0
Datasources = Datasource1
Archive1["ConsolFun"] = "MAX"
Archive1["Xff"] = 0.5
Archive1["Steps"] = 1
Archive1["Rows"] = 600
Archives = Archive1
int nStart = 1103760000
if (RrdCreate(GetNetDecisionSystemDir(ND_RRD_DIR) + "test.rrd", 300, nStart - 1, Datasources, Archives) == FAIL)
Println("Failed to create RRD")