How to generate nicely formatted columns in the legend graph?

"K. de Jong" <[email protected]> Fri, 14 Apr 2017 16:07:30 +0200
Newsgroups gmane.comp.db.rrdtool.user
Message-ID <CAAH150b_0Z0XvrtioswDJynwyNNffWzAyrPDVGS=8bAcd6o7SQ@mail.gmail.com>
--===============6755364516579278621==
Content-Type: multipart/alternative; boundary=001a1141bc1ebab9c6054d20f82a

--001a1141bc1ebab9c6054d20f82a
Content-Type: text/plain; charset=UTF-8

Hi,


Quick question, how can I create nice columns that won't mess up the layout
if numbers increment or decrements? Something like this:
http://martybugs.net/linux/rrdtool/images/traffic_detail.png

I'm not trying stuff like here below, but it doesn't handle changing
values, the columns shift position then...

 40       "DEF:cpu_user_avg=$RRDCOLLECT/stat_cpu.rrd:cpu_user:AVERAGE" \

 41       "DEF:cpu_nice_avg=$RRDCOLLECT/stat_cpu.rrd:cpu_nice:AVERAGE" \

 42       "DEF:cpu_system_avg=$RRDCOLLECT/stat_cpu.rrd:cpu_system:AVERAGE"
\
 43       "DEF:cpu_iowait_avg=$RRDCOLLECT/stat_cpu.rrd:cpu_iowait:AVERAGE"
\
 44       "DEF:cpu_user_min=$RRDCOLLECT/stat_cpu.rrd:cpu_user:MIN" \

 45       "DEF:cpu_nice_min=$RRDCOLLECT/stat_cpu.rrd:cpu_nice:MIN" \

 46       "DEF:cpu_system_min=$RRDCOLLECT/stat_cpu.rrd:cpu_system:MIN" \

 47       "DEF:cpu_iowait_min=$RRDCOLLECT/stat_cpu.rrd:cpu_iowait:MIN" \

 48       "DEF:cpu_user_max=$RRDCOLLECT/stat_cpu.rrd:cpu_user:MAX" \

 49       "DEF:cpu_nice_max=$RRDCOLLECT/stat_cpu.rrd:cpu_nice:MAX" \

 50       "DEF:cpu_system_max=$RRDCOLLECT/stat_cpu.rrd:cpu_system:MAX" \

 51       "DEF:cpu_iowait_max=$RRDCOLLECT/stat_cpu.rrd:cpu_iowait:MAX" \

 52       "DEF:cpu_user_last=$RRDCOLLECT/stat_cpu.rrd:cpu_user:LAST" \

 53       "DEF:cpu_nice_last=$RRDCOLLECT/stat_cpu.rrd:cpu_nice:LAST" \

 54       "DEF:cpu_system_last=$RRDCOLLECT/stat_cpu.rrd:cpu_system:LAST" \

 55       "DEF:cpu_iowait_last=$RRDCOLLECT/stat_cpu.rrd:cpu_iowait:LAST" \

 56       "TEXTALIGN:left" \

 57       "LINE1:cpu_user_avg$RED:User\:  " \

 58       "GPRINT:cpu_user_avg:AVERAGE:%3.1lf" \

 59       "GPRINT:cpu_user_min:MIN:%3.1lf" \

 60       "GPRINT:cpu_user_max:MAX:%3.1lf" \

 61       "GPRINT:cpu_user_last:LAST:%3.1lf" \

 62       "LINE1:cpu_nice_avg$GREEN:User (nice)\:" \

 63       "GPRINT:cpu_nice_avg:AVERAGE:%3.1lf" \

 64       "GPRINT:cpu_nice_min:MIN:%3.1lf" \

 65       "GPRINT:cpu_nice_max:MAX:%3.1lf" \

 66       "GPRINT:cpu_nice_last:LAST:%3.1lf" \

 67       "COMMENT:\n" \

 68       "LINE1:cpu_system_avg$BLUE:System\:" \

 69       "GPRINT:cpu_system_avg:AVERAGE:%3.1lf" \

 70       "GPRINT:cpu_system_min:MIN:%3.1lf" \

 71       "GPRINT:cpu_system_max:MAX:%3.1lf" \

 72       "GPRINT:cpu_system_last:LAST:%3.1lf" \

 73       "LINE1:cpu_iowait_avg$MAGENTA:I/O\:       " \

 74       "GPRINT:cpu_iowait_avg:AVERAGE:%3.1lf" \

 75       "GPRINT:cpu_iowait_min:MIN:%3.1lf" \

 76       "GPRINT:cpu_iowait_max:MAX:%3.1lf" \

 77       "GPRINT:cpu_iowait_last:LAST:%3.1lf"


--
Kind regards,
Kees de Jong  |  OpenPGP fingerprint: 0x0E45C98AB51428E6

--001a1141bc1ebab9c6054d20f82a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64

PGRpdiBkaXI9Imx0ciI+SGksPGRpdj48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5RdWlj
ayBxdWVzdGlvbizCoGhvdyBjYW4gSSBjcmVhdGUgbmljZSBjb2x1bW5zIHRoYXQgd29uJiMzOTt0
IG1lc3MgdXAgdGhlIGxheW91dCBpZiBudW1iZXJzIGluY3JlbWVudCBvciBkZWNyZW1lbnRzPyBT
b21ldGhpbmcgbGlrZSB0aGlzOsKgPGEgaHJlZj0iaHR0cDovL21hcnR5YnVncy5uZXQvbGludXgv
cnJkdG9vbC9pbWFnZXMvdHJhZmZpY19kZXRhaWwucG5nIj5odHRwOi8vbWFydHlidWdzLm5ldC9s
aW51eC9ycmR0b29sL2ltYWdlcy90cmFmZmljX2RldGFpbC5wbmc8L2E+PC9kaXY+PGRpdj48YnI+
PC9kaXY+PGRpdj5JJiMzOTttIG5vdCB0cnlpbmcgc3R1ZmYgbGlrZSBoZXJlIGJlbG93LCBidXQg
aXQgZG9lc24mIzM5O3QgaGFuZGxlIGNoYW5naW5nIHZhbHVlcywgdGhlIGNvbHVtbnMgc2hpZnQg
cG9zaXRpb24gdGhlbi4uLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGRpdj7CoDQwIMKgIMKg
IMKgICZxdW90O0RFRjpjcHVfdXNlcl9hdmc9JFJSRENPTExFQ1Qvc3RhdF9jcHUucnJkOmNwdV91
c2VyOkFWRVJBR0UmcXVvdDsgXCDCoCDCoCDCoCDCoCDCoCDCoMKgPC9kaXY+PGRpdj7CoDQxIMKg
IMKgIMKgICZxdW90O0RFRjpjcHVfbmljZV9hdmc9JFJSRENPTExFQ1Qvc3RhdF9jcHUucnJkOmNw
dV9uaWNlOkFWRVJBR0UmcXVvdDsgXCDCoCDCoCDCoCDCoCDCoCDCoMKgPC9kaXY+PGRpdj7CoDQy
IMKgIMKgIMKgICZxdW90O0RFRjpjcHVfc3lzdGVtX2F2Zz0kUlJEQ09MTEVDVC9zdGF0X2NwdS5y
cmQ6Y3B1X3N5c3RlbTpBVkVSQUdFJnF1b3Q7IFwgwqAgwqAgwqAgwqDCoDwvZGl2PjxkaXY+wqA0
MyDCoCDCoCDCoCAmcXVvdDtERUY6Y3B1X2lvd2FpdF9hdmc9JFJSRENPTExFQ1Qvc3RhdF9jcHUu
cnJkOmNwdV9pb3dhaXQ6QVZFUkFHRSZxdW90OyBcIMKgIMKgIMKgIMKgwqA8L2Rpdj48ZGl2PsKg
NDQgwqAgwqAgwqAgJnF1b3Q7REVGOmNwdV91c2VyX21pbj0kUlJEQ09MTEVDVC9zdGF0X2NwdS5y
cmQ6Y3B1X3VzZXI6TUlOJnF1b3Q7IFwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoDwvZGl2Pjxk
aXY+wqA0NSDCoCDCoCDCoCAmcXVvdDtERUY6Y3B1X25pY2VfbWluPSRSUkRDT0xMRUNUL3N0YXRf
Y3B1LnJyZDpjcHVfbmljZTpNSU4mcXVvdDsgXCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgPC9k
aXY+PGRpdj7CoDQ2IMKgIMKgIMKgICZxdW90O0RFRjpjcHVfc3lzdGVtX21pbj0kUlJEQ09MTEVD
VC9zdGF0X2NwdS5ycmQ6Y3B1X3N5c3RlbTpNSU4mcXVvdDsgXCDCoCDCoCDCoCDCoCDCoCDCoMKg
PC9kaXY+PGRpdj7CoDQ3IMKgIMKgIMKgICZxdW90O0RFRjpjcHVfaW93YWl0X21pbj0kUlJEQ09M
TEVDVC9zdGF0X2NwdS5ycmQ6Y3B1X2lvd2FpdDpNSU4mcXVvdDsgXCDCoCDCoCDCoCDCoCDCoCDC
oMKgPC9kaXY+PGRpdj7CoDQ4IMKgIMKgIMKgICZxdW90O0RFRjpjcHVfdXNlcl9tYXg9JFJSRENP
TExFQ1Qvc3RhdF9jcHUucnJkOmNwdV91c2VyOk1BWCZxdW90OyBcIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgwqA8L2Rpdj48ZGl2PsKgNDkgwqAgwqAgwqAgJnF1b3Q7REVGOmNwdV9uaWNlX21heD0k
UlJEQ09MTEVDVC9zdGF0X2NwdS5ycmQ6Y3B1X25pY2U6TUFYJnF1b3Q7IFwgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqDCoDwvZGl2PjxkaXY+wqA1MCDCoCDCoCDCoCAmcXVvdDtERUY6Y3B1X3N5c3Rl
bV9tYXg9JFJSRENPTExFQ1Qvc3RhdF9jcHUucnJkOmNwdV9zeXN0ZW06TUFYJnF1b3Q7IFwgwqAg
wqAgwqAgwqAgwqAgwqDCoDwvZGl2PjxkaXY+wqA1MSDCoCDCoCDCoCAmcXVvdDtERUY6Y3B1X2lv
d2FpdF9tYXg9JFJSRENPTExFQ1Qvc3RhdF9jcHUucnJkOmNwdV9pb3dhaXQ6TUFYJnF1b3Q7IFwg
wqAgwqAgwqAgwqAgwqAgwqDCoDwvZGl2PjxkaXY+wqA1MiDCoCDCoCDCoCAmcXVvdDtERUY6Y3B1
X3VzZXJfbGFzdD0kUlJEQ09MTEVDVC9zdGF0X2NwdS5ycmQ6Y3B1X3VzZXI6TEFTVCZxdW90OyBc
IMKgIMKgIMKgIMKgIMKgIMKgIMKgwqA8L2Rpdj48ZGl2PsKgNTMgwqAgwqAgwqAgJnF1b3Q7REVG
OmNwdV9uaWNlX2xhc3Q9JFJSRENPTExFQ1Qvc3RhdF9jcHUucnJkOmNwdV9uaWNlOkxBU1QmcXVv
dDsgXCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgPC9kaXY+PGRpdj7CoDU0IMKgIMKgIMKgICZxdW90
O0RFRjpjcHVfc3lzdGVtX2xhc3Q9JFJSRENPTExFQ1Qvc3RhdF9jcHUucnJkOmNwdV9zeXN0ZW06
TEFTVCZxdW90OyBcIMKgIMKgIMKgIMKgIMKgwqA8L2Rpdj48ZGl2PsKgNTUgwqAgwqAgwqAgJnF1
b3Q7REVGOmNwdV9pb3dhaXRfbGFzdD0kUlJEQ09MTEVDVC9zdGF0X2NwdS5ycmQ6Y3B1X2lvd2Fp
dDpMQVNUJnF1b3Q7IFwgwqAgwqAgwqAgwqAgwqDCoDwvZGl2PjxkaXY+wqA1NiDCoCDCoCDCoCAm
cXVvdDtURVhUQUxJR046bGVmdCZxdW90OyBcIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqA8
L2Rpdj48ZGl2PsKgNTcgwqAgwqAgwqAgJnF1b3Q7TElORTE6Y3B1X3VzZXJfYXZnJFJFRDpVc2Vy
XDogwqAmcXVvdDsgXCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoDwvZGl2PjxkaXY+wqA1OCDCoCDCoCDCoCAmcXVvdDtHUFJJTlQ6Y3B1
X3VzZXJfYXZnOkFWRVJBR0U6JTMuMWxmJnF1b3Q7IFwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoDwvZGl2PjxkaXY+wqA1OSDCoCDCoCDCoCAm
cXVvdDtHUFJJTlQ6Y3B1X3VzZXJfbWluOk1JTjolMy4xbGYmcXVvdDsgXCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgPC9kaXY+PGRp
dj7CoDYwIMKgIMKgIMKgICZxdW90O0dQUklOVDpjcHVfdXNlcl9tYXg6TUFYOiUzLjFsZiZxdW90
OyBcIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgwqA8L2Rpdj48ZGl2PsKgNjEgwqAgwqAgwqAgJnF1b3Q7R1BSSU5UOmNwdV91c2VyX2xh
c3Q6TEFTVDolMy4xbGYmcXVvdDsgXCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgPC9kaXY+PGRpdj7CoDYyIMKgIMKgIMKgICZxdW90O0xJ
TkUxOmNwdV9uaWNlX2F2ZyRHUkVFTjpVc2VyIChuaWNlKVw6JnF1b3Q7IFwgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoDwvZGl2PjxkaXY+wqA2MyDCoCDC
oCDCoCAmcXVvdDtHUFJJTlQ6Y3B1X25pY2VfYXZnOkFWRVJBR0U6JTMuMWxmJnF1b3Q7IFwgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoDwvZGl2
PjxkaXY+wqA2NCDCoCDCoCDCoCAmcXVvdDtHUFJJTlQ6Y3B1X25pY2VfbWluOk1JTjolMy4xbGYm
cXVvdDsgXCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoMKgPC9kaXY+PGRpdj7CoDY1IMKgIMKgIMKgICZxdW90O0dQUklOVDpjcHVfbmlj
ZV9tYXg6TUFYOiUzLjFsZiZxdW90OyBcIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqA8L2Rpdj48ZGl2PsKgNjYgwqAgwqAgwqAgJnF1
b3Q7R1BSSU5UOmNwdV9uaWNlX2xhc3Q6TEFTVDolMy4xbGYmcXVvdDsgXCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgPC9kaXY+PGRpdj7C
oDY3IMKgIMKgIMKgICZxdW90O0NPTU1FTlQ6XG4mcXVvdDsgXCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoMKgPC9kaXY+PGRpdj7CoDY4IMKgIMKgIMKgICZxdW90O0xJTkUxOmNwdV9z
eXN0ZW1fYXZnJEJMVUU6U3lzdGVtXDomcXVvdDsgXCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgPC9kaXY+PGRpdj7CoDY5IMKgIMKgIMKgICZx
dW90O0dQUklOVDpjcHVfc3lzdGVtX2F2ZzpBVkVSQUdFOiUzLjFsZiZxdW90OyBcIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqA8L2Rpdj48ZGl2PsKg
NzAgwqAgwqAgwqAgJnF1b3Q7R1BSSU5UOmNwdV9zeXN0ZW1fbWluOk1JTjolMy4xbGYmcXVvdDsg
XCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oMKgPC9kaXY+PGRpdj7CoDcxIMKgIMKgIMKgICZxdW90O0dQUklOVDpjcHVfc3lzdGVtX21heDpN
QVg6JTMuMWxmJnF1b3Q7IFwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqDCoDwvZGl2PjxkaXY+wqA3MiDCoCDCoCDCoCAmcXVvdDtHUFJJTlQ6
Y3B1X3N5c3RlbV9sYXN0OkxBU1Q6JTMuMWxmJnF1b3Q7IFwgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoDwvZGl2PjxkaXY+wqA3MyDCoCDCoCDC
oCAmcXVvdDtMSU5FMTpjcHVfaW93YWl0X2F2ZyRNQUdFTlRBOkkvT1w6IMKgIMKgIMKgICZxdW90
OyBcIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPC9kaXY+PGRp
dj7CoDc0IMKgIMKgIMKgICZxdW90O0dQUklOVDpjcHVfaW93YWl0X2F2ZzpBVkVSQUdFOiUzLjFs
ZiZxdW90OyBcIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgwqA8L2Rpdj48ZGl2PsKgNzUgwqAgwqAgwqAgJnF1b3Q7R1BSSU5UOmNwdV9pb3dhaXRfbWlu
Ok1JTjolMy4xbGYmcXVvdDsgXCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoMKgPC9kaXY+PGRpdj7CoDc2IMKgIMKgIMKgICZxdW90O0dQUklO
VDpjcHVfaW93YWl0X21heDpNQVg6JTMuMWxmJnF1b3Q7IFwgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoDwvZGl2PjxkaXY+wqA3NyDCoCDC
oCDCoCAmcXVvdDtHUFJJTlQ6Y3B1X2lvd2FpdF9sYXN0OkxBU1Q6JTMuMWxmJnF1b3Q7wqA8L2Rp
dj48ZGl2PjxkaXYgY2xhc3M9ImdtYWlsX3NpZ25hdHVyZSI+PGRpdiBkaXI9Imx0ciI+PGRpdj48
ZGl2IGRpcj0ibHRyIj48ZGl2PjxkaXYgZGlyPSJsdHIiPjxicj48YnI+LS08YnI+S2luZCByZWdh
cmRzLDxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi44cHgiPktlZXMgZGUgSm9uZyDCoHwg
wqA8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi44cHgiPk9wZW5QR1AgZmluZ2VycHJp
bnQ6IDB4MEU0NUM5OEFCNTE0MjhFNjwvc3Bhbj48YnI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+
PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+DQo8L2Rpdj48L2Rpdj4NCg==
--001a1141bc1ebab9c6054d20f82a--


--===============6755364516579278621==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
rrd-users mailing list
[email protected]
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users

--===============6755364516579278621==--