Finds the RRA (round robin array) that best matches the consolidation function
and the step
and imports all values (from all data stores) in that RRA that are between timestamp start
and end
. Note that start
is not included in the result.
Returns a data.frame
object having the timestamp
and the data stores as columns. The data store names are retrieved from the RRD file and set as the corresponding column names. The timestamps are also used as row names.
Usage
read_rra(filename, cf, step, n_steps, start, end = Sys.time())
Arguments
- filename
File name
- cf
The consolidation function that is applied to the data you want to fetch. Must be one of
c("AVERAGE", "MIN", "MAX", "LAST")
- step
step
- n_steps
number of steps to return
- start
start time
- end
end time, defaults to the current system time
Details
The filename
, cf
(consolidation function) and step
arguments uniquely identify an RRA array in the RRD file.
The arguments start
and end
define the time-slice to be retrieved. Note that start
is not included in the result. Refer to the documentation for rrdfetch for more information.
The returned data.frame
has the timestamp
and the data stores as separate columns. The names of the data sources are extracted from the RRD file and set as column names. The timestamps are also used as row names.
See also
Other rrd functions:
describe_rrd()
,
read_rrd()
Examples
rrd_cpu_0 <- system.file("extdata/cpu-0.rrd", package = "rrd")
# Note that the default end time is the current time (Sys.time())
# However, since the sample data is historic, specify the end time
start_time <- as.POSIXct("2018-05-01") # timestamp with data in example
end_time <- as.POSIXct("2018-05-02") # timestamp with data in example
# read archive by specifying start time
avg_60 <- read_rra(rrd_cpu_0, cf = "AVERAGE", step = 60L,
start = start_time,
end = end_time)
names(avg_60)
#> [1] "timestamp" "user" "sys" "nice" "idle" "wait"
#> [7] "irq" "softirq" "stolen"
head(avg_60)
#> # A tibble: 6 × 9
#> timestamp user sys nice idle wait irq softirq stolen
#> <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 2018-05-01 00:01:00 0.00458 0.00201 0 0.992 0 0 0 0.00144
#> 2 2018-05-01 00:02:00 0.00258 0.000570 0 0.996 0 0 0 0.000570
#> 3 2018-05-01 00:03:00 0.00633 0.00144 0 0.992 0 0 0 0
#> 4 2018-05-01 00:04:00 0.00515 0.00201 0 0.991 0 0 0 0.00144
#> 5 2018-05-01 00:05:00 0.00402 0.000569 0 0.995 0 0 0 0.000569
#> 6 2018-05-01 00:06:00 0.00689 0.00144 0 0.992 0 0 0 0
tail(avg_60)
#> # A tibble: 6 × 9
#> timestamp user sys nice idle wait irq softirq stolen
#> <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 2018-05-01 23:55:00 0.00546 0.00201 0 0.993 0 0 0 0
#> 2 2018-05-01 23:56:00 0.00458 0.00201 0 0.993 0 0 0 0
#> 3 2018-05-01 23:57:00 0.00258 0.000568 0 0.997 0 0 0 0
#> 4 2018-05-01 23:58:00 0.00633 0 0 0.994 0 0 0 0
#> 5 2018-05-01 23:59:00 0.00802 0.00144 0 0.991 0 0 0 0
#> 6 2018-05-02 00:00:00 0.00515 0.00345 0 0.991 0 0 0 0
# read archive by specifying number of rows to retrieve
avg_60 <- read_rra(rrd_cpu_0, cf = "AVERAGE", step = 60L,
n_steps = 5,
end = end_time)
names(avg_60)
#> [1] "timestamp" "user" "sys" "nice" "idle" "wait"
#> [7] "irq" "softirq" "stolen"
avg_60
#> # A tibble: 5 × 9
#> timestamp user sys nice idle wait irq softirq stolen
#> <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 2018-05-01 23:56:00 0.00458 0.00201 0 0.993 0 0 0 0
#> 2 2018-05-01 23:57:00 0.00258 0.000568 0 0.997 0 0 0 0
#> 3 2018-05-01 23:58:00 0.00633 0 0 0.994 0 0 0 0
#> 4 2018-05-01 23:59:00 0.00802 0.00144 0 0.991 0 0 0 0
#> 5 2018-05-02 00:00:00 0.00515 0.00345 0 0.991 0 0 0 0