File: create-with-source-3

package info (click to toggle)
rrdtool 1.9.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,772 kB
  • sloc: ansic: 39,371; sh: 1,810; perl: 1,268; cs: 652; makefile: 573; python: 169; ruby: 61; awk: 30
file content (142 lines) | stat: -rwxr-xr-x 5,378 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#!/bin/bash

. $(dirname $0)/functions

BASE=$BASEDIR/$(basename $0)-test
PREFIX=$BUILDDIR/$(basename $0)-test

# currently, we do not properly copy cdp and pdp information, so for
# comparison of RRD dumps, we just filter out those parts we do not
# expect to match anyway...
function cdp_prep_filter {
	perl -n -e '$a=join("",<>); $a=~s,<(cdp_prep).*?</\1>,,msg ; print $a'
}

function pdp_prep_filter {
	perl -n -e '$a=join("",<>); $a=~s,<(last_ds|value|unknown_sec).*?</\1>,,msg ; print $a'
}

function data_filter_by_time {
        START="$1"
        END="$2"
#                       <!-- 2011-03-13 08:46:00 CET / 1300002360 --> <row><v>7.9666666667e+02</v>

	perl -n -e 'print unless (m,/ (\d+) -->.*<row>, && $1 >= '$START' && $1 <= '$END')'
}

FIRST=1300000000
ST=$FIRST



rm -f ${BASE}*.rrd ${BASE}*.xml
$RRDTOOL create ${PREFIX}a1_x.rrd --start $(($ST-1)) --step 60 DS:a:GAUGE:120:0:U  RRA:AVERAGE:0.5:1:100 RRA:AVERAGE:0.5:5:2 RRA:MIN:0.5:5:2 RRA:MAX:0.5:5:2 RRA:LAST:0.5:5:2 
report createa1

$RRDTOOL create ${PREFIX}b1_x.rrd --start $(($ST-1)) --step 60 DS:b:GAUGE:120:0:U  RRA:AVERAGE:0.5:1:100 RRA:AVERAGE:0.5:5:2 RRA:MIN:0.5:5:2 RRA:MAX:0.5:5:2 RRA:LAST:0.5:5:2 
report createb1

$RRDTOOL create ${PREFIX}ab1_x.rrd --start $(($ST-1)) --step 60 DS:a:GAUGE:120:0:U DS:b:GAUGE:120:0:U  RRA:AVERAGE:0.5:1:100 RRA:AVERAGE:0.5:5:2 RRA:MIN:0.5:5:2 RRA:MAX:0.5:5:2 RRA:LAST:0.5:5:2 
report createab1

$RRDTOOL create ${PREFIX}ba1_x.rrd --start $(($ST-1)) --step 60 DS:b:GAUGE:120:0:U DS:a:GAUGE:120:0:U  RRA:AVERAGE:0.5:1:100 RRA:AVERAGE:0.5:5:2 RRA:MIN:0.5:5:2 RRA:MAX:0.5:5:2 RRA:LAST:0.5:5:2 
report createba1

$RRDTOOL create ${PREFIX}bca1_x.rrd --start $(($ST-1)) --step 60 DS:b:GAUGE:120:0:U DS:c:GAUGE:120:0:U DS:a:GAUGE:120:0:U  RRA:AVERAGE:0.5:1:100 RRA:AVERAGE:0.5:5:2 RRA:MIN:0.5:5:2 RRA:MAX:0.5:5:2 RRA:LAST:0.5:5:2 
report createbca1

for A in ${BASE}*_x.rrd ; do
	cp $A ${BASEDIR}/$(basename $A _x.rrd)_y.rrd
done


UPDATEA_x=
UPDATEB_x=
UPDATEAB_x=
V=10
for A in $(seq $ST 60 $(($ST + 3000)) ) ; do
	UPDATEA_x="$UPDATEA_x $A:$V"
	UPDATEB_x="$UPDATEB_x $A:$(($V * 2))"
	UPDATEAB_x="$UPDATEAB_x $A:$V:$(($V * 2))"
	V=$(($V + 20))
	ST=$A
done

ST_X=$ST

# add a gap
ST=$((ST+1200))

UPDATEA_y=
UPDATEB_y=
UPDATEAB_y=
V=40
for A in $(seq $ST 60 $(($ST + 3000)) ) ; do
	UPDATEA_y="$UPDATEA_y $A:$V"
	UPDATEB_y="$UPDATEB_y $A:$(($V * 2))"
	UPDATEAB_y="$UPDATEAB_y $A:$V:$(($V * 2))"
	V=$(($V + 50))
	ST=$A
done

ST_Y=$ST



$RRDTOOL update ${PREFIX}a1_x.rrd  $UPDATEA_x
$RRDTOOL update ${PREFIX}b1_x.rrd  $UPDATEB_x
$RRDTOOL update ${PREFIX}ab1_x.rrd $UPDATEAB_x
$RRDTOOL update ${PREFIX}ba1_x.rrd --template a:b $UPDATEAB_x
$RRDTOOL update ${PREFIX}bca1_x.rrd --template a:b $UPDATEAB_x

$RRDTOOL update ${PREFIX}a1_y.rrd  $UPDATEA_y
$RRDTOOL update ${PREFIX}b1_y.rrd  $UPDATEB_y
$RRDTOOL update ${PREFIX}ab1_y.rrd $UPDATEAB_y
$RRDTOOL update ${PREFIX}ba1_y.rrd --template a:b $UPDATEAB_y
$RRDTOOL update ${PREFIX}bca1_y.rrd --template a:b $UPDATEAB_y




$RRDTOOL create ${PREFIX}ab2_xy.rrd --start $ST --step 60 --source ${PREFIX}a1_x.rrd --source ${PREFIX}b1_x.rrd --source ${PREFIX}a1_y.rrd --source ${PREFIX}b1_y.rrd DS:a:GAUGE:120:0:U DS:b:GAUGE:120:0:U RRA:AVERAGE:0.5:1:400 RRA:AVERAGE:0.5:5:8 RRA:MIN:0.5:5:8 RRA:MAX:0.5:5:8 RRA:LAST:0.5:5:8 
report create-ab-with-four-sources


# now re-extract single value RRDs from the combined one....
# NOTE: We cannot re-create the pdp_prep information here, so filter it out....

$RRDTOOL create ${PREFIX}a2_x.rrd --start $ST_X --step 60 --source ${PREFIX}ab2_xy.rrd DS:a:GAUGE:120:0:U RRA:AVERAGE:0.5:1:100 RRA:AVERAGE:0.5:5:2 RRA:MIN:0.5:5:2 RRA:MAX:0.5:5:2 RRA:LAST:0.5:5:2
report recreate-original-a1_x-from-combined-source

$RRDTOOL dump ${PREFIX}a1_x.rrd | pdp_prep_filter > ${PREFIX}a1_x.xml
$RRDTOOL dump ${PREFIX}a2_x.rrd | pdp_prep_filter > ${PREFIX}a2_x.xml
$DIFF ${PREFIX}a1_x.xml ${PREFIX}a2_x.xml
report data-match-a1_x

$RRDTOOL create ${PREFIX}b2_x.rrd --start $ST_X --step 60 --source ${PREFIX}ab2_xy.rrd DS:b:GAUGE:120:0:U RRA:AVERAGE:0.5:1:100 RRA:AVERAGE:0.5:5:2 RRA:MIN:0.5:5:2 RRA:MAX:0.5:5:2 RRA:LAST:0.5:5:2
report recreate-original-b1_x-from-combined-source

$RRDTOOL dump ${PREFIX}b1_x.rrd | pdp_prep_filter > ${PREFIX}b1_x.xml
$RRDTOOL dump ${PREFIX}b2_x.rrd | pdp_prep_filter > ${PREFIX}b2_x.xml
$DIFF ${PREFIX}b1_x.xml ${PREFIX}b2_x.xml
report data-match-b1_x

$RRDTOOL create ${PREFIX}a2_y.rrd --start $ST_Y --step 60 --source ${PREFIX}ab2_xy.rrd DS:a:GAUGE:120:0:U RRA:AVERAGE:0.5:1:100 RRA:AVERAGE:0.5:5:2 RRA:MIN:0.5:5:2 RRA:MAX:0.5:5:2 RRA:LAST:0.5:5:2
report recreate-original-a1_y-from-combined-source

$RRDTOOL dump ${PREFIX}a1_y.rrd | data_filter_by_time $FIRST $ST_X > ${PREFIX}a1_y.xml
$RRDTOOL dump ${PREFIX}a2_y.rrd | data_filter_by_time $FIRST $ST_X > ${PREFIX}a2_y.xml

$DIFF ${PREFIX}a1_y.xml ${PREFIX}a2_y.xml
report data-match-a2_y

$RRDTOOL create ${PREFIX}b2_y.rrd --start $ST_Y --step 60 --source ${PREFIX}ab2_xy.rrd DS:b:GAUGE:120:0:U RRA:AVERAGE:0.5:1:100 RRA:AVERAGE:0.5:5:2 RRA:MIN:0.5:5:2 RRA:MAX:0.5:5:2 RRA:LAST:0.5:5:2
report recreate-original-b1_y-from-combined-source

$RRDTOOL dump ${PREFIX}b1_y.rrd | data_filter_by_time $FIRST $ST_X > ${PREFIX}b1_y.xml
$RRDTOOL dump ${PREFIX}b2_y.rrd | data_filter_by_time $FIRST $ST_X > ${PREFIX}b2_y.xml

$DIFF ${PREFIX}b1_y.xml ${PREFIX}b2_y.xml
report data-match-b2_y

rm -f ${PREFIX}*.rrd ${PREFIX}*.xml