e7938ad5564a47f24470932f894b5202f01a0ae2
[project/luci.git] / applications / luci-statistics / luasrc / statistics / rrdtool / definitions.lua
1 --[[
2
3 Luci statistics - data definition database (obsolete)
4 (c) 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>
5
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
9
10         http://www.apache.org/licenses/LICENSE-2.0
11
12 $Id$
13
14 ]]--
15
16 module("luci.statistics.rrdtool.definitions", package.seeall)
17
18 require("luci.util")
19 require("luci.fs")
20
21
22 Instance = luci.util.class()
23
24 function Instance.__init__( self, ... )
25
26         -- used color palette
27         self.palette = {
28                 Canvas          = "FFFFFF",
29                 FullRed         = "FF0000",
30                 FullGreen       = "00E000",
31                 FullBlue        = "0000FF",
32                 FullYellow      = "F0A000",
33                 FullCyan        = "00A0FF",
34                 FullMagenta     = "A000FF",
35                 HalfRed         = "F7B7B7",
36                 HalfGreen       = "B7EFB7",
37                 HalfBlue        = "B7B7F7",
38                 HalfYellow      = "F3DFB7",
39                 HalfCyan        = "B7DFF7",
40                 HalfMagenta     = "DFB7F7",
41                 HalfBlueGreen   = "89B3C9"
42         }
43
44         -- plotting arguments for each defined datasource
45         self.definitions = {
46                 apache_bytes = {
47                         "DEF:min_raw={file}:count:MIN",
48                         "DEF:avg_raw={file}:count:AVERAGE",
49                         "DEF:max_raw={file}:count:MAX",
50                         "CDEF:min=min_raw,8,*",
51                         "CDEF:avg=avg_raw,8,*",
52                         "CDEF:max=max_raw,8,*",
53                         "CDEF:mytime=avg_raw,TIME,TIME,IF",
54                         "CDEF:sample_len_raw=mytime,PREV(mytime),-",
55                         "CDEF:sample_len=sample_len_raw,UN,0,sample_len_raw,IF",
56                         "CDEF:avg_sample=avg_raw,UN,0,avg_raw,IF,sample_len,*",
57                         "CDEF:avg_sum=PREV,UN,0,PREV,IF,avg_sample,+",
58                         "AREA:avg#" .. self.palette.HalfBlue,
59                         "LINE1:avg#" .. self.palette.FullBlue .. ":Bit/s",
60                         "GPRINT:min:MIN:%5.1lf%s Min,",
61                         "GPRINT:avg:AVERAGE:%5.1lf%s Avg,",
62                         "GPRINT:max:MAX:%5.1lf%s Max,",
63                         "GPRINT:avg:LAST:%5.1lf%s Last\\l",
64                         "GPRINT:avg_sum:LAST:(ca. %5.1lf%sB Total)"
65                 },
66
67                 apache_requests = {
68                         "DEF:min={file}:count:MIN",
69                         "DEF:avg={file}:count:AVERAGE",
70                         "DEF:max={file}:count:MAX",
71                         "AREA:max#" .. self.palette.HalfBlue,
72                         "AREA:min#" .. self.palette.Canvas,
73                         "LINE1:avg#" .. self.palette.FullBlue .. ":Requests/s",
74                         "GPRINT:min:MIN:%6.2lf Min,",
75                         "GPRINT:avg:AVERAGE:%6.2lf Avg,",
76                         "GPRINT:max:MAX:%6.2lf Max,",
77                         "GPRINT:avg:LAST:%6.2lf Last\\l"
78                 },
79
80                 apache_scoreboard = {
81                         "DEF:min={file}:count:MIN",
82                         "DEF:avg={file}:count:AVERAGE",
83                         "DEF:max={file}:count:MAX",
84                         "AREA:max#" .. self.palette.HalfBlue,
85                         "AREA:min#" .. self.palette.Canvas,
86                         "LINE1:avg#" .. self.palette.FullBlue .. ":Processes",
87                         "GPRINT:min:MIN:%6.2lf Min,",
88                         "GPRINT:avg:AVERAGE:%6.2lf Avg,",
89                         "GPRINT:max:MAX:%6.2lf Max,",
90                         "GPRINT:avg:LAST:%6.2lf Last\\l"
91                 },
92
93                 bitrate = {
94                         "-v", "Bits/s",
95                         "DEF:avg={file}:value:AVERAGE",
96                         "DEF:min={file}:value:MIN",
97                         "DEF:max={file}:value:MAX",
98                         "AREA:max#" .. self.palette.HalfBlue,
99                         "AREA:min#" .. self.palette.Canvas,
100                         "LINE1:avg#" .. self.palette.FullBlue .. ":Bits/s",
101                         "GPRINT:min:MIN:%5.1lf%s Min,",
102                         "GPRINT:avg:AVERAGE:%5.1lf%s Average,",
103                         "GPRINT:max:MAX:%5.1lf%s Max,",
104                         "GPRINT:avg:LAST:%5.1lf%s Last\\l"
105                 },
106
107                 charge = {
108                         "-v", "Ah",
109                         "DEF:avg={file}:value:AVERAGE",
110                         "DEF:min={file}:value:MIN",
111                         "DEF:max={file}:value:MAX",
112                         "AREA:max#" .. self.palette.HalfBlue,
113                         "AREA:min#" .. self.palette.Canvas,
114                         "LINE1:avg#" .. self.palette.FullBlue .. ":Charge",
115                         "GPRINT:min:MIN:%5.1lf%sAh Min,",
116                         "GPRINT:avg:AVERAGE:%5.1lf%sAh Avg,",
117                         "GPRINT:max:MAX:%5.1lf%sAh Max,",
118                         "GPRINT:avg:LAST:%5.1lf%sAh Last\\l"
119                 },
120
121                 current = {
122                         "-v", "Ampere",
123                         "DEF:avg={file}:value:AVERAGE",
124                         "DEF:min={file}:value:MIN",
125                         "DEF:max={file}:value:MAX",
126                         "AREA:max#" .. self.palette.HalfBlue,
127                         "AREA:min#" .. self.palette.Canvas,
128                         "LINE1:avg#" .. self.palette.FullBlue .. ":Current",
129                         "GPRINT:min:MIN:%5.1lf%sA Min,",
130                         "GPRINT:avg:AVERAGE:%5.1lf%sA Avg,",
131                         "GPRINT:max:MAX:%5.1lf%sA Max,",
132                         "GPRINT:avg:LAST:%5.1lf%sA Last\\l"
133                 },
134
135                 disk = {
136                         "DEF:rtime_avg={file}:rtime:AVERAGE",
137                         "DEF:rtime_min={file}:rtime:MIN",
138                         "DEF:rtime_max={file}:rtime:MAX",
139                         "DEF:wtime_avg={file}:wtime:AVERAGE",
140                         "DEF:wtime_min={file}:wtime:MIN",
141                         "DEF:wtime_max={file}:wtime:MAX",
142                         "CDEF:rtime_avg_ms=rtime_avg,1000,/",
143                         "CDEF:rtime_min_ms=rtime_min,1000,/",
144                         "CDEF:rtime_max_ms=rtime_max,1000,/",
145                         "CDEF:wtime_avg_ms=wtime_avg,1000,/",
146                         "CDEF:wtime_min_ms=wtime_min,1000,/",
147                         "CDEF:wtime_max_ms=wtime_max,1000,/",
148                         "CDEF:total_avg_ms=rtime_avg_ms,wtime_avg_ms,+",
149                         "CDEF:total_min_ms=rtime_min_ms,wtime_min_ms,+",
150                         "CDEF:total_max_ms=rtime_max_ms,wtime_max_ms,+",
151                         "AREA:total_max_ms#" .. self.palette.HalfRed,
152                         "AREA:total_min_ms#" .. self.palette.Canvas,
153                         "LINE1:wtime_avg_ms#" .. self.palette.FullGreen .. ":Write",
154                         "GPRINT:wtime_min_ms:MIN:%5.1lf%s Min,",
155                         "GPRINT:wtime_avg_ms:AVERAGE:%5.1lf%s Avg,",
156                         "GPRINT:wtime_max_ms:MAX:%5.1lf%s Max,",
157                         "GPRINT:wtime_avg_ms:LAST:%5.1lf%s Last\n",
158                         "LINE1:rtime_avg_ms#" .. self.palette.FullBlue .. ":Read ",
159                         "GPRINT:rtime_min_ms:MIN:%5.1lf%s Min,",
160                         "GPRINT:rtime_avg_ms:AVERAGE:%5.1lf%s Avg,",
161                         "GPRINT:rtime_max_ms:MAX:%5.1lf%s Max,",
162                         "GPRINT:rtime_avg_ms:LAST:%5.1lf%s Last\n",
163                         "LINE1:total_avg_ms#" .. self.palette.FullRed .. ":Total",
164                         "GPRINT:total_min_ms:MIN:%5.1lf%s Min,",
165                         "GPRINT:total_avg_ms:AVERAGE:%5.1lf%s Avg,",
166                         "GPRINT:total_max_ms:MAX:%5.1lf%s Max,",
167                         "GPRINT:total_avg_ms:LAST:%5.1lf%s Last\\l"
168                 },
169
170                 disk_octets = {
171                         "-v", "Bytes/s",
172                         "DEF:out_min={file}:write:MIN",
173                         "DEF:out_avg={file}:write:AVERAGE",
174                         "DEF:out_max={file}:write:MAX",
175                         "DEF:inc_min={file}:read:MIN",
176                         "DEF:inc_avg={file}:read:AVERAGE",
177                         "DEF:inc_max={file}:read:MAX",
178                         "CDEF:overlap=out_avg,inc_avg,GT,inc_avg,out_avg,IF",
179                         "CDEF:mytime=out_avg,TIME,TIME,IF",
180                         "CDEF:sample_len_raw=mytime,PREV(mytime),-",
181                         "CDEF:sample_len=sample_len_raw,UN,0,sample_len_raw,IF",
182                         "CDEF:out_avg_sample=out_avg,UN,0,out_avg,IF,sample_len,*",
183                         "CDEF:out_avg_sum=PREV,UN,0,PREV,IF,out_avg_sample,+",
184                         "CDEF:inc_avg_sample=inc_avg,UN,0,inc_avg,IF,sample_len,*",
185                         "CDEF:inc_avg_sum=PREV,UN,0,PREV,IF,inc_avg_sample,+",
186                         "AREA:out_avg#" .. self.palette.HalfGreen,
187                         "AREA:inc_avg#" .. self.palette.HalfBlue,
188                         "AREA:overlap#" .. self.palette.HalfBlueGreen,
189                         "LINE1:out_avg#" .. self.palette.FullGreen .. ":Written",
190                         "GPRINT:out_avg:AVERAGE:%5.1lf%s Avg,",
191                         "GPRINT:out_max:MAX:%5.1lf%s Max,",
192                         "GPRINT:out_avg:LAST:%5.1lf%s Last\\l",
193                         "GPRINT:out_avg_sum:LAST:(ca. %5.1lf%sB Total)",
194                         "LINE1:inc_avg#" .. self.palette.FullBlue .. ":Read   ",
195                         "GPRINT:inc_avg:AVERAGE:%5.1lf%s Avg,",
196                         "GPRINT:inc_max:MAX:%5.1lf%s Max,",
197                         "GPRINT:inc_avg:LAST:%5.1lf%s Last\\l",
198                         "GPRINT:inc_avg_sum:LAST:(ca. %5.1lf%sB Total)"
199                 },
200
201                 disk_merged = {
202                         "-v", "Merged Ops/s",
203                         "DEF:out_min={file}:write:MIN",
204                         "DEF:out_avg={file}:write:AVERAGE",
205                         "DEF:out_max={file}:write:MAX",
206                         "DEF:inc_min={file}:read:MIN",
207                         "DEF:inc_avg={file}:read:AVERAGE",
208                         "DEF:inc_max={file}:read:MAX",
209                         "CDEF:overlap=out_avg,inc_avg,GT,inc_avg,out_avg,IF",
210                         "AREA:out_avg#" .. self.palette.HalfGreen,
211                         "AREA:inc_avg#" .. self.palette.HalfBlue,
212                         "AREA:overlap#" .. self.palette.HalfBlueGreen,
213                         "LINE1:out_avg#" .. self.palette.FullGreen .. ":Written",
214                         "GPRINT:out_avg:AVERAGE:%6.2lf Avg,",
215                         "GPRINT:out_max:MAX:%6.2lf Max,",
216                         "GPRINT:out_avg:LAST:%6.2lf Last\\l",
217                         "LINE1:inc_avg#" .. self.palette.FullBlue .. ":Read   ",
218                         "GPRINT:inc_avg:AVERAGE:%6.2lf Avg,",
219                         "GPRINT:inc_max:MAX:%6.2lf Max,",
220                         "GPRINT:inc_avg:LAST:%6.2lf Last\\l"
221                 },
222
223                 disk_ops = {
224                         "-v", "Ops/s",
225                         "DEF:out_min={file}:write:MIN",
226                         "DEF:out_avg={file}:write:AVERAGE",
227                         "DEF:out_max={file}:write:MAX",
228                         "DEF:inc_min={file}:read:MIN",
229                         "DEF:inc_avg={file}:read:AVERAGE",
230                         "DEF:inc_max={file}:read:MAX",
231                         "CDEF:overlap=out_avg,inc_avg,GT,inc_avg,out_avg,IF",
232                         "AREA:out_avg#" .. self.palette.HalfGreen,
233                         "AREA:inc_avg#" .. self.palette.HalfBlue,
234                         "AREA:overlap#" .. self.palette.HalfBlueGreen,
235                         "LINE1:out_avg#" .. self.palette.FullGreen .. ":Written",
236                         "GPRINT:out_avg:AVERAGE:%6.2lf Avg,",
237                         "GPRINT:out_max:MAX:%6.2lf Max,",
238                         "GPRINT:out_avg:LAST:%6.2lf Last\\l",
239                         "LINE1:inc_avg#" .. self.palette.FullBlue .. ":Read   ",
240                         "GPRINT:inc_avg:AVERAGE:%6.2lf Avg,",
241                         "GPRINT:inc_max:MAX:%6.2lf Max,",
242                         "GPRINT:inc_avg:LAST:%6.2lf Last\\l"
243                 },
244
245                 disk_time = {
246                         "-v", "Seconds/s",
247                         "DEF:out_min_raw={file}:write:MIN",
248                         "DEF:out_avg_raw={file}:write:AVERAGE",
249                         "DEF:out_max_raw={file}:write:MAX",
250                         "DEF:inc_min_raw={file}:read:MIN",
251                         "DEF:inc_avg_raw={file}:read:AVERAGE",
252                         "DEF:inc_max_raw={file}:read:MAX",
253                         "CDEF:out_min=out_min_raw,1000,/",
254                         "CDEF:out_avg=out_avg_raw,1000,/",
255                         "CDEF:out_max=out_max_raw,1000,/",
256                         "CDEF:inc_min=inc_min_raw,1000,/",
257                         "CDEF:inc_avg=inc_avg_raw,1000,/",
258                         "CDEF:inc_max=inc_max_raw,1000,/",
259                         "CDEF:overlap=out_avg,inc_avg,GT,inc_avg,out_avg,IF",
260                         "AREA:out_avg#" .. self.palette.HalfGreen,
261                         "AREA:inc_avg#" .. self.palette.HalfBlue,
262                         "AREA:overlap#" .. self.palette.HalfBlueGreen,
263                         "LINE1:out_avg#" .. self.palette.FullGreen .. ":Written",
264                         "GPRINT:out_avg:AVERAGE:%5.1lf%ss Avg,",
265                         "GPRINT:out_max:MAX:%5.1lf%ss Max,",
266                         "GPRINT:out_avg:LAST:%5.1lf%ss Last\\l",
267                         "LINE1:inc_avg#" .. self.palette.FullBlue .. ":Read   ",
268                         "GPRINT:inc_avg:AVERAGE:%5.1lf%ss Avg,",
269                         "GPRINT:inc_max:MAX:%5.1lf%ss Max,",
270                         "GPRINT:inc_avg:LAST:%5.1lf%ss Last\\l"
271                 },
272
273                 dns_octets = {
274                         "DEF:rsp_min_raw={file}:responses:MIN",
275                         "DEF:rsp_avg_raw={file}:responses:AVERAGE",
276                         "DEF:rsp_max_raw={file}:responses:MAX",
277                         "DEF:qry_min_raw={file}:queries:MIN",
278                         "DEF:qry_avg_raw={file}:queries:AVERAGE",
279                         "DEF:qry_max_raw={file}:queries:MAX",
280                         "CDEF:rsp_min=rsp_min_raw,8,*",
281                         "CDEF:rsp_avg=rsp_avg_raw,8,*",
282                         "CDEF:rsp_max=rsp_max_raw,8,*",
283                         "CDEF:qry_min=qry_min_raw,8,*",
284                         "CDEF:qry_avg=qry_avg_raw,8,*",
285                         "CDEF:qry_max=qry_max_raw,8,*",
286                         "CDEF:overlap=rsp_avg,qry_avg,GT,qry_avg,rsp_avg,IF",
287                         "CDEF:mytime=rsp_avg_raw,TIME,TIME,IF",
288                         "CDEF:sample_len_raw=mytime,PREV(mytime),-",
289                         "CDEF:sample_len=sample_len_raw,UN,0,sample_len_raw,IF",
290                         "CDEF:rsp_avg_sample=rsp_avg_raw,UN,0,rsp_avg_raw,IF,sample_len,*",
291                         "CDEF:rsp_avg_sum=PREV,UN,0,PREV,IF,rsp_avg_sample,+",
292                         "CDEF:qry_avg_sample=qry_avg_raw,UN,0,qry_avg_raw,IF,sample_len,*",
293                         "CDEF:qry_avg_sum=PREV,UN,0,PREV,IF,qry_avg_sample,+",
294                         "AREA:rsp_avg#" .. self.palette.HalfGreen,
295                         "AREA:qry_avg#" .. self.palette.HalfBlue,
296                         "AREA:overlap#" .. self.palette.HalfBlueGreen,
297                         "LINE1:rsp_avg#" .. self.palette.FullGreen .. ":Responses",
298                         "GPRINT:rsp_avg:AVERAGE:%5.1lf%s Avg,",
299                         "GPRINT:rsp_max:MAX:%5.1lf%s Max,",
300                         "GPRINT:rsp_avg:LAST:%5.1lf%s Last\\l",
301                         "GPRINT:rsp_avg_sum:LAST:(ca. %5.1lf%sB Total)",
302                         "LINE1:qry_avg#" .. self.palette.FullBlue .. ":Queries  ",
303                         #"GPRINT:qry_min:MIN:%5.1lf %s Min,",
304                         "GPRINT:qry_avg:AVERAGE:%5.1lf%s Avg,",
305                         "GPRINT:qry_max:MAX:%5.1lf%s Max,",
306                         "GPRINT:qry_avg:LAST:%5.1lf%s Last\\l",
307                         "GPRINT:qry_avg_sum:LAST:(ca. %5.1lf%sB Total)"
308                 },
309
310                 dns_opcode = {
311                         "DEF:avg={file}:value:AVERAGE",
312                         "DEF:min={file}:value:MIN",
313                         "DEF:max={file}:value:MAX",
314                         "AREA:max#" .. self.palette.HalfBlue,
315                         "AREA:min#" .. self.palette.Canvas,
316                         "LINE1:avg#" .. self.palette.FullBlue .. ":Queries/s",
317                         "GPRINT:min:MIN:%9.3lf Min,",
318                         "GPRINT:avg:AVERAGE:%9.3lf Average,",
319                         "GPRINT:max:MAX:%9.3lf Max,",
320                         "GPRINT:avg:LAST:%9.3lf Last\\l"
321                 },
322
323                 email_count = {
324                         "-v", "Mails",
325                         "DEF:avg={file}:value:AVERAGE",
326                         "DEF:min={file}:value:MIN",
327                         "DEF:max={file}:value:MAX",
328                         "AREA:max#" .. self.palette.HalfMagenta,
329                         "AREA:min#" .. self.palette.Canvas,
330                         "LINE1:avg#" .. self.palette.FullMagenta .. ":Count ",
331                         "GPRINT:min:MIN:%4.1lf Min,",
332                         "GPRINT:avg:AVERAGE:%4.1lf Avg,",
333                         "GPRINT:max:MAX:%4.1lf Max,",
334                         "GPRINT:avg:LAST:%4.1lf Last\\l"
335                 },
336
337                 email_size = {
338                         "-v", "Bytes",
339                         "DEF:avg={file}:value:AVERAGE",
340                         "DEF:min={file}:value:MIN",
341                         "DEF:max={file}:value:MAX",
342                         "AREA:max#" .. self.palette.HalfMagenta,
343                         "AREA:min#" .. self.palette.Canvas,
344                         "LINE1:avg#" .. self.palette.FullMagenta .. ":Count ",
345                         "GPRINT:min:MIN:%4.1lf Min,",
346                         "GPRINT:avg:AVERAGE:%4.1lf Avg,",
347                         "GPRINT:max:MAX:%4.1lf Max,",
348                         "GPRINT:avg:LAST:%4.1lf Last\\l"
349                 },
350
351                 spam_score = {
352                         "-v", "Score",
353                         "DEF:avg={file}:value:AVERAGE",
354                         "DEF:min={file}:value:MIN",
355                         "DEF:max={file}:value:MAX",
356                         "AREA:max#" .. self.palette.HalfBlue,
357                         "AREA:min#" .. self.palette.Canvas,
358                         "LINE1:avg#" .. self.palette.FullBlue .. ":Score ",
359                         "GPRINT:min:MIN:%4.1lf Min,",
360                         "GPRINT:avg:AVERAGE:%4.1lf Avg,",
361                         "GPRINT:max:MAX:%4.1lf Max,",
362                         "GPRINT:avg:LAST:%4.1lf Last\\l"
363                 },
364
365                 spam_check = {
366                         "DEF:avg={file}:hits:AVERAGE",
367                         "DEF:min={file}:hits:MIN",
368                         "DEF:max={file}:hits:MAX",
369                         "AREA:max#" .. self.palette.HalfMagenta,
370                         "AREA:min#" .. self.palette.Canvas,
371                         "LINE1:avg#" .. self.palette.FullMagenta .. ":Count ",
372                         "GPRINT:min:MIN:%4.1lf Min,",
373                         "GPRINT:avg:AVERAGE:%4.1lf Avg,",
374                         "GPRINT:max:MAX:%4.1lf Max,",
375                         "GPRINT:avg:LAST:%4.1lf Last\\l"
376                 },
377
378                 entropy = {
379                         "-v", "Bits",
380                         "DEF:avg={file}:entropy:AVERAGE",
381                         "DEF:min={file}:entropy:MIN",
382                         "DEF:max={file}:entropy:MAX",
383                         "AREA:max#" .. self.palette.HalfBlue,
384                         "AREA:min#" .. self.palette.Canvas,
385                         "LINE1:avg#" .. self.palette.FullBlue .. ":Bits",
386                         "GPRINT:min:MIN:%4.0lfbit Min,",
387                         "GPRINT:avg:AVERAGE:%4.0lfbit Avg,",
388                         "GPRINT:max:MAX:%4.0lfbit Max,",
389                         "GPRINT:avg:LAST:%4.0lfbit Last\\l"
390                 },
391
392                 fanspeed = {
393                         "-v", "RPM",
394                         "DEF:avg={file}:value:AVERAGE",
395                         "DEF:min={file}:value:MIN",
396                         "DEF:max={file}:value:MAX",
397                         "AREA:max#" .. self.palette.HalfMagenta,
398                         "AREA:min#" .. self.palette.Canvas,
399                         "LINE1:avg#" .. self.palette.FullMagenta .. ":RPM",
400                         "GPRINT:min:MIN:%4.1lf Min,",
401                         "GPRINT:avg:AVERAGE:%4.1lf Avg,",
402                         "GPRINT:max:MAX:%4.1lf Max,",
403                         "GPRINT:avg:LAST:%4.1lf Last\\l"
404                 },
405
406                 frequency = {
407                         "-v", "Hertz",
408                         "DEF:avg={file}:frequency:AVERAGE",
409                         "DEF:min={file}:frequency:MIN",
410                         "DEF:max={file}:frequency:MAX",
411                         "AREA:max#" .. self.palette.HalfBlue,
412                         "AREA:min#" .. self.palette.Canvas,
413                         "LINE1:avg#" .. self.palette.FullBlue .. ":Frequency [Hz]",
414                         "GPRINT:min:MIN:%4.1lf Min,",
415                         "GPRINT:avg:AVERAGE:%4.1lf Avg,",
416                         "GPRINT:max:MAX:%4.1lf Max,",
417                         "GPRINT:avg:LAST:%4.1lf Last\\l"
418                 },
419
420                 frequency_offset = {
421                         "DEF:ppm_avg={file}:ppm:AVERAGE",
422                         "DEF:ppm_min={file}:ppm:MIN",
423                         "DEF:ppm_max={file}:ppm:MAX",
424                         "AREA:ppm_max#" .. self.palette.HalfBlue,
425                         "AREA:ppm_min#" .. self.palette.Canvas,
426                         "LINE1:ppm_avg#" .. self.palette.FullBlue .. ":{inst}",
427                         "GPRINT:ppm_min:MIN:%5.2lf Min,",
428                         "GPRINT:ppm_avg:AVERAGE:%5.2lf Avg,",
429                         "GPRINT:ppm_max:MAX:%5.2lf Max,",
430                         "GPRINT:ppm_avg:LAST:%5.2lf Last\\l"
431                 },
432
433                 gauge = {
434                         "-v", "Exec value",
435                         "DEF:temp_avg={file}:value:AVERAGE",
436                         "DEF:temp_min={file}:value:MIN",
437                         "DEF:temp_max={file}:value:MAX",
438                         "AREA:temp_max#" .. self.palette.HalfBlue,
439                         "AREA:temp_min#" .. self.palette.Canvas,
440                         "LINE1:temp_avg#" .. self.palette.FullBlue .. ":Exec value",
441                         "GPRINT:temp_min:MIN:%6.2lf Min,",
442                         "GPRINT:temp_avg:AVERAGE:%6.2lf Avg,",
443                         "GPRINT:temp_max:MAX:%6.2lf Max,",
444                         "GPRINT:temp_avg:LAST:%6.2lf Last\\l"
445                 },
446
447                 hddtemp = {
448                         "DEF:temp_avg={file}:value:AVERAGE",
449                         "DEF:temp_min={file}:value:MIN",
450                         "DEF:temp_max={file}:value:MAX",
451                         "AREA:temp_max#" .. self.palette.HalfRed,
452                         "AREA:temp_min#" .. self.palette.Canvas,
453                         "LINE1:temp_avg#" .. self.palette.FullRed .. ":Temperature",
454                         "GPRINT:temp_min:MIN:%4.1lf Min,",
455                         "GPRINT:temp_avg:AVERAGE:%4.1lf Avg,",
456                         "GPRINT:temp_max:MAX:%4.1lf Max,",
457                         "GPRINT:temp_avg:LAST:%4.1lf Last\\l"
458                 },
459
460                 humidity = {
461                         "-v", "Percent",
462                         "DEF:temp_avg={file}:value:AVERAGE",
463                         "DEF:temp_min={file}:value:MIN",
464                         "DEF:temp_max={file}:value:MAX",
465                         "AREA:temp_max#" .. self.palette.HalfGreen,
466                         "AREA:temp_min#" .. self.palette.Canvas,
467                         "LINE1:temp_avg#" .. self.palette.FullGreen .. ":Temperature",
468                         "GPRINT:temp_min:MIN:%4.1lf%% Min,",
469                         "GPRINT:temp_avg:AVERAGE:%4.1lf%% Avg,",
470                         "GPRINT:temp_max:MAX:%4.1lf%% Max,",
471                         "GPRINT:temp_avg:LAST:%4.1lf%% Last\\l"
472                 },
473
474                 load = {
475                         "-v", "System load",
476                         "DEF:s_avg={file}:shortterm:AVERAGE",
477                         "DEF:s_min={file}:shortterm:MIN",
478                         "DEF:s_max={file}:shortterm:MAX",
479                         "DEF:m_avg={file}:midterm:AVERAGE",
480                         "DEF:m_min={file}:midterm:MIN",
481                         "DEF:m_max={file}:midterm:MAX",
482                         "DEF:l_avg={file}:longterm:AVERAGE",
483                         "DEF:l_min={file}:longterm:MIN",
484                         "DEF:l_max={file}:longterm:MAX",
485                         "AREA:s_max#" .. self.palette.HalfGreen,
486                         "AREA:s_min#" .. self.palette.Canvas,
487                         "LINE1:s_avg#" .. self.palette.FullGreen .. ": 1m average",
488                         "GPRINT:s_min:MIN:%4.2lf Min,",
489                         "GPRINT:s_avg:AVERAGE:%4.2lf Avg,",
490                         "GPRINT:s_max:MAX:%4.2lf Max,",
491                         "GPRINT:s_avg:LAST:%4.2lf Last\n",
492                         "LINE1:m_avg#" .. self.palette.FullBlue .. ": 5m average",
493                         "GPRINT:m_min:MIN:%4.2lf Min,",
494                         "GPRINT:m_avg:AVERAGE:%4.2lf Avg,",
495                         "GPRINT:m_max:MAX:%4.2lf Max,",
496                         "GPRINT:m_avg:LAST:%4.2lf Last\n",
497                         "LINE1:l_avg#" .. self.palette.FullRed .. ":15m average",
498                         "GPRINT:l_min:MIN:%4.2lf Min,",
499                         "GPRINT:l_avg:AVERAGE:%4.2lf Avg,",
500                         "GPRINT:l_max:MAX:%4.2lf Max,",
501                         "GPRINT:l_avg:LAST:%4.2lf Last\\l"
502                 },
503
504                 load_percent = {
505                         "DEF:avg={file}:percent:AVERAGE",
506                         "DEF:min={file}:percent:MIN",
507                         "DEF:max={file}:percent:MAX",
508                         "AREA:max#" .. self.palette.HalfBlue,
509                         "AREA:min#" .. self.palette.Canvas,
510                         "LINE1:avg#" .. self.palette.FullBlue .. ":Load",
511                         "GPRINT:min:MIN:%5.1lf%s%% Min,",
512                         "GPRINT:avg:AVERAGE:%5.1lf%s%% Avg,",
513                         "GPRINT:max:MAX:%5.1lf%s%% Max,",
514                         "GPRINT:avg:LAST:%5.1lf%s%% Last\\l"
515                 },
516
517                 mails = {
518                         "DEF:rawgood={file}:good:AVERAGE",
519                         "DEF:rawspam={file}:spam:AVERAGE",
520                         "CDEF:good=rawgood,UN,0,rawgood,IF",
521                         "CDEF:spam=rawspam,UN,0,rawspam,IF",
522                         "CDEF:negspam=spam,-1,*",
523                         "AREA:good#" .. self.palette.HalfGreen,
524                         "LINE1:good#" .. self.palette.FullGreen .. ":Good mails",
525                         "GPRINT:good:AVERAGE:%4.1lf Avg,",
526                         "GPRINT:good:MAX:%4.1lf Max,",
527                         "GPRINT:good:LAST:%4.1lf Last\n",
528                         "AREA:negspam#" .. self.palette.HalfRed,
529                         "LINE1:negspam#" .. self.palette.FullRed .. ":Spam mails",
530                         "GPRINT:spam:AVERAGE:%4.1lf Avg,",
531                         "GPRINT:spam:MAX:%4.1lf Max,",
532                         "GPRINT:spam:LAST:%4.1lf Last\\l",
533                         "HRULE:0#000000"
534                 },
535
536                 memory = {
537                         "-b", "1024", "-v", "Bytes",
538                         "DEF:avg={file}:value:AVERAGE",
539                         "DEF:min={file}:value:MIN",
540                         "DEF:max={file}:value:MAX",
541                         "AREA:max#" .. self.palette.HalfBlue,
542                         "AREA:min#" .. self.palette.Canvas,
543                         "LINE1:avg#" .. self.palette.FullBlue .. ":Memory",
544                         "GPRINT:min:MIN:%5.1lf%sbyte Min,",
545                         "GPRINT:avg:AVERAGE:%5.1lf%sbyte Avg,",
546                         "GPRINT:max:MAX:%5.1lf%sbyte Max,",
547                         "GPRINT:avg:LAST:%5.1lf%sbyte Last\\l"
548                 },
549
550                 old_memory = {
551                         "DEF:used_avg={file}:used:AVERAGE",
552                         "DEF:free_avg={file}:free:AVERAGE",
553                         "DEF:buffers_avg={file}:buffers:AVERAGE",
554                         "DEF:cached_avg={file}:cached:AVERAGE",
555                         "DEF:used_min={file}:used:MIN",
556                         "DEF:free_min={file}:free:MIN",
557                         "DEF:buffers_min={file}:buffers:MIN",
558                         "DEF:cached_min={file}:cached:MIN",
559                         "DEF:used_max={file}:used:MAX",
560                         "DEF:free_max={file}:free:MAX",
561                         "DEF:buffers_max={file}:buffers:MAX",
562                         "DEF:cached_max={file}:cached:MAX",
563                         "CDEF:cached_avg_nn=cached_avg,UN,0,cached_avg,IF",
564                         "CDEF:buffers_avg_nn=buffers_avg,UN,0,buffers_avg,IF",
565                         "CDEF:free_cached_buffers_used=free_avg,cached_avg_nn,+,buffers_avg_nn,+,used_avg,+",
566                         "CDEF:cached_buffers_used=cached_avg,buffers_avg_nn,+,used_avg,+",
567                         "CDEF:buffers_used=buffers_avg,used_avg,+",
568                         "AREA:free_cached_buffers_used#" .. self.palette.HalfGreen,
569                         "AREA:cached_buffers_used#" .. self.palette.HalfBlue,
570                         "AREA:buffers_used#" .. self.palette.HalfYellow,
571                         "AREA:used_avg#" .. self.palette.HalfRed,
572                         "LINE1:free_cached_buffers_used#" .. self.palette.FullGreen .. ":Free        ",
573                         "GPRINT:free_min:MIN:%5.1lf%s Min,",
574                         "GPRINT:free_avg:AVERAGE:%5.1lf%s Avg,",
575                         "GPRINT:free_max:MAX:%5.1lf%s Max,",
576                         "GPRINT:free_avg:LAST:%5.1lf%s Last\n",
577                         "LINE1:cached_buffers_used#" .. self.palette.FullBlue .. ":Page cache  ",
578                         "GPRINT:cached_min:MIN:%5.1lf%s Min,",
579                         "GPRINT:cached_avg:AVERAGE:%5.1lf%s Avg,",
580                         "GPRINT:cached_max:MAX:%5.1lf%s Max,",
581                         "GPRINT:cached_avg:LAST:%5.1lf%s Last\n",
582                         "LINE1:buffers_used#" .. self.palette.FullYellow .. ":Buffer cache",
583                         "GPRINT:buffers_min:MIN:%5.1lf%s Min,",
584                         "GPRINT:buffers_avg:AVERAGE:%5.1lf%s Avg,",
585                         "GPRINT:buffers_max:MAX:%5.1lf%s Max,",
586                         "GPRINT:buffers_avg:LAST:%5.1lf%s Last\n",
587                         "LINE1:used_avg#" .. self.palette.FullRed .. ":Used        ",
588                         "GPRINT:used_min:MIN:%5.1lf%s Min,",
589                         "GPRINT:used_avg:AVERAGE:%5.1lf%s Avg,",
590                         "GPRINT:used_max:MAX:%5.1lf%s Max,",
591                         "GPRINT:used_avg:LAST:%5.1lf%s Last\\l"
592                 },
593
594                 mysql_commands = {
595                         "-v", "Issues/s",
596                         "DEF:val_avg={file}:value:AVERAGE",
597                         "DEF:val_min={file}:value:MIN",
598                         "DEF:val_max={file}:value:MAX",
599                         "AREA:val_max#" .. self.palette.HalfBlue,
600                         "AREA:val_min#" .. self.palette.Canvas,
601                         "LINE1:val_avg#" .. self.palette.FullBlue .. ":Issues/s",
602                         "GPRINT:val_min:MIN:%5.2lf Min,",
603                         "GPRINT:val_avg:AVERAGE:%5.2lf Avg,",
604                         "GPRINT:val_max:MAX:%5.2lf Max,",
605                         "GPRINT:val_avg:LAST:%5.2lf Last\\l"
606                 },
607
608                 mysql_handler = {
609                         "-v", "Issues/s",
610                         "DEF:val_avg={file}:value:AVERAGE",
611                         "DEF:val_min={file}:value:MIN",
612                         "DEF:val_max={file}:value:MAX",
613                         "AREA:val_max#" .. self.palette.HalfBlue,
614                         "AREA:val_min#" .. self.palette.Canvas,
615                         "LINE1:val_avg#" .. self.palette.FullBlue .. ":Issues/s",
616                         "GPRINT:val_min:MIN:%5.2lf Min,",
617                         "GPRINT:val_avg:AVERAGE:%5.2lf Avg,",
618                         "GPRINT:val_max:MAX:%5.2lf Max,",
619                         "GPRINT:val_avg:LAST:%5.2lf Last\\l"
620                 },
621
622                 mysql_octets = {
623                         "-v", "Bits/s",
624                         "DEF:out_min={file}:tx:MIN",
625                         "DEF:out_avg={file}:tx:AVERAGE",
626                         "DEF:out_max={file}:tx:MAX",
627                         "DEF:inc_min={file}:rx:MIN",
628                         "DEF:inc_avg={file}:rx:AVERAGE",
629                         "DEF:inc_max={file}:rx:MAX",
630                         "CDEF:mytime=out_avg,TIME,TIME,IF",
631                         "CDEF:sample_len_raw=mytime,PREV(mytime),-",
632                         "CDEF:sample_len=sample_len_raw,UN,0,sample_len_raw,IF",
633                         "CDEF:out_avg_sample=out_avg,UN,0,out_avg,IF,sample_len,*",
634                         "CDEF:out_avg_sum=PREV,UN,0,PREV,IF,out_avg_sample,+",
635                         "CDEF:inc_avg_sample=inc_avg,UN,0,inc_avg,IF,sample_len,*",
636                         "CDEF:inc_avg_sum=PREV,UN,0,PREV,IF,inc_avg_sample,+",
637                         "CDEF:out_bit_min=out_min,8,*",
638                         "CDEF:out_bit_avg=out_avg,8,*",
639                         "CDEF:out_bit_max=out_max,8,*",
640                         "CDEF:inc_bit_min=inc_min,8,*",
641                         "CDEF:inc_bit_avg=inc_avg,8,*",
642                         "CDEF:inc_bit_max=inc_max,8,*",
643                         "CDEF:overlap=out_bit_avg,inc_bit_avg,GT,inc_bit_avg,out_bit_avg,IF",
644                         "AREA:out_bit_avg#" .. self.palette.HalfGreen,
645                         "AREA:inc_bit_avg#" .. self.palette.HalfBlue,
646                         "AREA:overlap#" .. self.palette.HalfBlueGreen,
647                         "LINE1:out_bit_avg#" .. self.palette.FullGreen .. ":Written",
648                         "GPRINT:out_bit_avg:AVERAGE:%5.1lf%s Avg,",
649                         "GPRINT:out_bit_max:MAX:%5.1lf%s Max,",
650                         "GPRINT:out_bit_avg:LAST:%5.1lf%s Last\\l",
651                         "GPRINT:out_avg_sum:LAST:(ca. %5.1lf%sB Total)",
652                         "LINE1:inc_bit_avg#" .. self.palette.FullBlue .. ":Read   ",
653                         "GPRINT:inc_bit_avg:AVERAGE:%5.1lf%s Avg,",
654                         "GPRINT:inc_bit_max:MAX:%5.1lf%s Max,",
655                         "GPRINT:inc_bit_avg:LAST:%5.1lf%s Last\\l",
656                         "GPRINT:inc_avg_sum:LAST:(ca. %5.1lf%sB Total)"
657                 },
658
659                 mysql_qcache = {
660                         "-v", "Queries/s",
661                         "DEF:hits_min={file}:hits:MIN",
662                         "DEF:hits_avg={file}:hits:AVERAGE",
663                         "DEF:hits_max={file}:hits:MAX",
664                         "DEF:inserts_min={file}:inserts:MIN",
665                         "DEF:inserts_avg={file}:inserts:AVERAGE",
666                         "DEF:inserts_max={file}:inserts:MAX",
667                         "DEF:not_cached_min={file}:not_cached:MIN",
668                         "DEF:not_cached_avg={file}:not_cached:AVERAGE",
669                         "DEF:not_cached_max={file}:not_cached:MAX",
670                         "DEF:lowmem_prunes_min={file}:lowmem_prunes:MIN",
671                         "DEF:lowmem_prunes_avg={file}:lowmem_prunes:AVERAGE",
672                         "DEF:lowmem_prunes_max={file}:lowmem_prunes:MAX",
673                         "DEF:queries_min={file}:queries_in_cache:MIN",
674                         "DEF:queries_avg={file}:queries_in_cache:AVERAGE",
675                         "DEF:queries_max={file}:queries_in_cache:MAX",
676                         "CDEF:unknown=queries_avg,UNKN,+",
677                         "CDEF:not_cached_agg=hits_avg,inserts_avg,+,not_cached_avg,+",
678                         "CDEF:inserts_agg=hits_avg,inserts_avg,+",
679                         "CDEF:hits_agg=hits_avg",
680                         "AREA:not_cached_agg#" .. self.palette.HalfYellow,
681                         "AREA:inserts_agg#" .. self.palette.HalfBlue,
682                         "AREA:hits_agg#" .. self.palette.HalfGreen,
683                         "LINE1:not_cached_agg#" .. self.palette.FullYellow .. ":Not Cached      ",
684                         "GPRINT:not_cached_min:MIN:%5.2lf Min,",
685                         "GPRINT:not_cached_avg:AVERAGE:%5.2lf Avg,",
686                         "GPRINT:not_cached_max:MAX:%5.2lf Max,",
687                         "GPRINT:not_cached_avg:LAST:%5.2lf Last\\l",
688                         "LINE1:inserts_agg#" .. self.palette.FullBlue .. ":Inserts         ",
689                         "GPRINT:inserts_min:MIN:%5.2lf Min,",
690                         "GPRINT:inserts_avg:AVERAGE:%5.2lf Avg,",
691                         "GPRINT:inserts_max:MAX:%5.2lf Max,",
692                         "GPRINT:inserts_avg:LAST:%5.2lf Last\\l",
693                         "LINE1:hits_agg#" .. self.palette.FullGreen .. ":Hits            ",
694                         "GPRINT:hits_min:MIN:%5.2lf Min,",
695                         "GPRINT:hits_avg:AVERAGE:%5.2lf Avg,",
696                         "GPRINT:hits_max:MAX:%5.2lf Max,",
697                         "GPRINT:hits_avg:LAST:%5.2lf Last\\l",
698                         "LINE1:lowmem_prunes_avg#" .. self.palette.FullRed .. ":Lowmem Prunes   ",
699                         "GPRINT:lowmem_prunes_min:MIN:%5.2lf Min,",
700                         "GPRINT:lowmem_prunes_avg:AVERAGE:%5.2lf Avg,",
701                         "GPRINT:lowmem_prunes_max:MAX:%5.2lf Max,",
702                         "GPRINT:lowmem_prunes_avg:LAST:%5.2lf Last\\l",
703                         "LINE1:unknown#" .. self.palette.Canvas .. ":Queries in cache",
704                         "GPRINT:queries_min:MIN:%5.0lf Min,",
705                         "GPRINT:queries_avg:AVERAGE:%5.0lf Avg,",
706                         "GPRINT:queries_max:MAX:%5.0lf Max,",
707                         "GPRINT:queries_avg:LAST:%5.0lf Last\\l"
708                 },
709
710                 mysql_threads = {
711                         "-v", "Threads",
712                         "DEF:running_min={file}:running:MIN",
713                         "DEF:running_avg={file}:running:AVERAGE",
714                         "DEF:running_max={file}:running:MAX",
715                         "DEF:connected_min={file}:connected:MIN",
716                         "DEF:connected_avg={file}:connected:AVERAGE",
717                         "DEF:connected_max={file}:connected:MAX",
718                         "DEF:cached_min={file}:cached:MIN",
719                         "DEF:cached_avg={file}:cached:AVERAGE",
720                         "DEF:cached_max={file}:cached:MAX",
721                         "DEF:created_min={file}:created:MIN",
722                         "DEF:created_avg={file}:created:AVERAGE",
723                         "DEF:created_max={file}:created:MAX",
724                         "CDEF:unknown=created_avg,UNKN,+",
725                         "CDEF:cached_agg=connected_avg,cached_avg,+",
726                         "AREA:cached_agg#" .. self.palette.HalfGreen,
727                         "AREA:connected_avg#" .. self.palette.HalfBlue,
728                         "AREA:running_avg#" .. self.palette.HalfRed,
729                         "LINE1:cached_agg#" .. self.palette.FullGreen .. ":Cached   ",
730                         "GPRINT:cached_min:MIN:%5.1lf Min,",
731                         "GPRINT:cached_avg:AVERAGE:%5.1lf Avg,",
732                         "GPRINT:cached_max:MAX:%5.1lf Max,",
733                         "GPRINT:cached_avg:LAST:%5.1lf Last\\l",
734                         "LINE1:connected_avg#" .. self.palette.FullBlue .. ":Connected",
735                         "GPRINT:connected_min:MIN:%5.1lf Min,",
736                         "GPRINT:connected_avg:AVERAGE:%5.1lf Avg,",
737                         "GPRINT:connected_max:MAX:%5.1lf Max,",
738                         "GPRINT:connected_avg:LAST:%5.1lf Last\\l",
739                         "LINE1:running_avg#" .. self.palette.FullRed .. ":Running  ",
740                         "GPRINT:running_min:MIN:%5.1lf Min,",
741                         "GPRINT:running_avg:AVERAGE:%5.1lf Avg,",
742                         "GPRINT:running_max:MAX:%5.1lf Max,",
743                         "GPRINT:running_avg:LAST:%5.1lf Last\\l",
744                         "LINE1:unknown#" .. self.palette.Canvas .. ":Created  ",
745                         "GPRINT:created_min:MIN:%5.0lf Min,",
746                         "GPRINT:created_avg:AVERAGE:%5.0lf Avg,",
747                         "GPRINT:created_max:MAX:%5.0lf Max,",
748                         "GPRINT:created_avg:LAST:%5.0lf Last\\l"
749                 },
750
751                 nfs_procedure = {
752                         "-v", "Issues/s",
753                         "DEF:avg={file}:value:AVERAGE",
754                         "DEF:min={file}:value:MIN",
755                         "DEF:max={file}:value:MAX",
756                         "AREA:max#" .. self.palette.HalfBlue,
757                         "AREA:min#" .. self.palette.Canvas,
758                         "LINE1:avg#" .. self.palette.FullBlue .. ":Issues/s",
759                         "GPRINT:min:MIN:%6.2lf Min,",
760                         "GPRINT:avg:AVERAGE:%6.2lf Avg,",
761                         "GPRINT:max:MAX:%6.2lf Max,",
762                         "GPRINT:avg:LAST:%6.2lf Last\\l"
763                 },
764
765                 nfs3_procedures = {
766                         "DEF:null_avg={file}:null:AVERAGE",
767                         "DEF:getattr_avg={file}:getattr:AVERAGE",
768                         "DEF:setattr_avg={file}:setattr:AVERAGE",
769                         "DEF:lookup_avg={file}:lookup:AVERAGE",
770                         "DEF:access_avg={file}:access:AVERAGE",
771                         "DEF:readlink_avg={file}:readlink:AVERAGE",
772                         "DEF:read_avg={file}:read:AVERAGE",
773                         "DEF:write_avg={file}:write:AVERAGE",
774                         "DEF:create_avg={file}:create:AVERAGE",
775                         "DEF:mkdir_avg={file}:mkdir:AVERAGE",
776                         "DEF:symlink_avg={file}:symlink:AVERAGE",
777                         "DEF:mknod_avg={file}:mknod:AVERAGE",
778                         "DEF:remove_avg={file}:remove:AVERAGE",
779                         "DEF:rmdir_avg={file}:rmdir:AVERAGE",
780                         "DEF:rename_avg={file}:rename:AVERAGE",
781                         "DEF:link_avg={file}:link:AVERAGE",
782                         "DEF:readdir_avg={file}:readdir:AVERAGE",
783                         "DEF:readdirplus_avg={file}:readdirplus:AVERAGE",
784                         "DEF:fsstat_avg={file}:fsstat:AVERAGE",
785                         "DEF:fsinfo_avg={file}:fsinfo:AVERAGE",
786                         "DEF:pathconf_avg={file}:pathconf:AVERAGE",
787                         "DEF:commit_avg={file}:commit:AVERAGE",
788                         "DEF:null_max={file}:null:MAX",
789                         "DEF:getattr_max={file}:getattr:MAX",
790                         "DEF:setattr_max={file}:setattr:MAX",
791                         "DEF:lookup_max={file}:lookup:MAX",
792                         "DEF:access_max={file}:access:MAX",
793                         "DEF:readlink_max={file}:readlink:MAX",
794                         "DEF:read_max={file}:read:MAX",
795                         "DEF:write_max={file}:write:MAX",
796                         "DEF:create_max={file}:create:MAX",
797                         "DEF:mkdir_max={file}:mkdir:MAX",
798                         "DEF:symlink_max={file}:symlink:MAX",
799                         "DEF:mknod_max={file}:mknod:MAX",
800                         "DEF:remove_max={file}:remove:MAX",
801                         "DEF:rmdir_max={file}:rmdir:MAX",
802                         "DEF:rename_max={file}:rename:MAX",
803                         "DEF:link_max={file}:link:MAX",
804                         "DEF:readdir_max={file}:readdir:MAX",
805                         "DEF:readdirplus_max={file}:readdirplus:MAX",
806                         "DEF:fsstat_max={file}:fsstat:MAX",
807                         "DEF:fsinfo_max={file}:fsinfo:MAX",
808                         "DEF:pathconf_max={file}:pathconf:MAX",
809                         "DEF:commit_max={file}:commit:MAX",
810                         "CDEF:other_avg=null_avg,readlink_avg,create_avg,mkdir_avg,symlink_avg,mknod_avg,remove_avg,rmdir_avg,rename_avg,link_avg,readdir_avg,readdirplus_avg,fsstat_avg,fsinfo_avg,pathconf_avg,+,+,+,+,+,+,+,+,+,+,+,+,+,+",
811                         "CDEF:other_max=null_max,readlink_max,create_max,mkdir_max,symlink_max,mknod_max,remove_max,rmdir_max,rename_max,link_max,readdir_max,readdirplus_max,fsstat_max,fsinfo_max,pathconf_max,+,+,+,+,+,+,+,+,+,+,+,+,+,+",
812                         "CDEF:stack_read=read_avg",
813                         "CDEF:stack_getattr=stack_read,getattr_avg,+",
814                         "CDEF:stack_access=stack_getattr,access_avg,+",
815                         "CDEF:stack_lookup=stack_access,lookup_avg,+",
816                         "CDEF:stack_write=stack_lookup,write_avg,+",
817                         "CDEF:stack_commit=stack_write,commit_avg,+",
818                         "CDEF:stack_setattr=stack_commit,setattr_avg,+",
819                         "CDEF:stack_other=stack_setattr,other_avg,+",
820                         "AREA:stack_other#" .. self.palette.HalfRed,
821                         "AREA:stack_setattr#" .. self.palette.HalfGreen,
822                         "AREA:stack_commit#" .. self.palette.HalfYellow,
823                         "AREA:stack_write#" .. self.palette.HalfGreen,
824                         "AREA:stack_lookup#" .. self.palette.HalfBlue,
825                         "AREA:stack_access#" .. self.palette.HalfMagenta,
826                         "AREA:stack_getattr#" .. self.palette.HalfCyan,
827                         "AREA:stack_read#" .. self.palette.HalfBlue,
828                         "LINE1:stack_other#" .. self.palette.FullRed .. ":Other  ",
829                         "GPRINT:other_max:MAX:%5.1lf Max,",
830                         "GPRINT:other_avg:AVERAGE:%5.1lf Avg,",
831                         "GPRINT:other_avg:LAST:%5.1lf Last\\l",
832                         "LINE1:stack_setattr#" .. self.palette.FullGreen .. ":setattr",
833                         "GPRINT:setattr_max:MAX:%5.1lf Max,",
834                         "GPRINT:setattr_avg:AVERAGE:%5.1lf Avg,",
835                         "GPRINT:setattr_avg:LAST:%5.1lf Last\\l",
836                         "LINE1:stack_commit#" .. self.palette.FullYellow .. ":commit ",
837                         "GPRINT:commit_max:MAX:%5.1lf Max,",
838                         "GPRINT:commit_avg:AVERAGE:%5.1lf Avg,",
839                         "GPRINT:commit_avg:LAST:%5.1lf Last\\l",
840                         "LINE1:stack_write#" .. self.palette.FullGreen .. ":write  ",
841                         "GPRINT:write_max:MAX:%5.1lf Max,",
842                         "GPRINT:write_avg:AVERAGE:%5.1lf Avg,",
843                         "GPRINT:write_avg:LAST:%5.1lf Last\\l",
844                         "LINE1:stack_lookup#" .. self.palette.FullBlue .. ":lookup ",
845                         "GPRINT:lookup_max:MAX:%5.1lf Max,",
846                         "GPRINT:lookup_avg:AVERAGE:%5.1lf Avg,",
847                         "GPRINT:lookup_avg:LAST:%5.1lf Last\\l",
848                         "LINE1:stack_access#" .. self.palette.FullMagenta .. ":access ",
849                         "GPRINT:access_max:MAX:%5.1lf Max,",
850                         "GPRINT:access_avg:AVERAGE:%5.1lf Avg,",
851                         "GPRINT:access_avg:LAST:%5.1lf Last\\l",
852                         "LINE1:stack_getattr#" .. self.palette.FullCyan .. ":getattr",
853                         "GPRINT:getattr_max:MAX:%5.1lf Max,",
854                         "GPRINT:getattr_avg:AVERAGE:%5.1lf Avg,",
855                         "GPRINT:getattr_avg:LAST:%5.1lf Last\\l",
856                         "LINE1:stack_read#" .. self.palette.FullBlue .. ":read   ",
857                         "GPRINT:read_max:MAX:%5.1lf Max,",
858                         "GPRINT:read_avg:AVERAGE:%5.1lf Avg,",
859                         "GPRINT:read_avg:LAST:%5.1lf Last\\l"
860                 },
861
862                 partition = {
863                         "DEF:rbyte_avg={file}:rbytes:AVERAGE",
864                         "DEF:rbyte_min={file}:rbytes:MIN",
865                         "DEF:rbyte_max={file}:rbytes:MAX",
866                         "DEF:wbyte_avg={file}:wbytes:AVERAGE",
867                         "DEF:wbyte_min={file}:wbytes:MIN",
868                         "DEF:wbyte_max={file}:wbytes:MAX",
869                         "CDEF:overlap=wbyte_avg,rbyte_avg,GT,rbyte_avg,wbyte_avg,IF",
870                         "AREA:wbyte_avg#" .. self.palette.HalfGreen,
871                         "AREA:rbyte_avg#" .. self.palette.HalfBlue,
872                         "AREA:overlap#" .. self.palette.HalfBlueGreen,
873                         "LINE1:wbyte_avg#" .. self.palette.FullGreen .. ":Write",
874                         "GPRINT:wbyte_min:MIN:%5.1lf%s Min,",
875                         "GPRINT:wbyte_avg:AVERAGE:%5.1lf%s Avg,",
876                         "GPRINT:wbyte_max:MAX:%5.1lf%s Max,",
877                         "GPRINT:wbyte_avg:LAST:%5.1lf%s Last\\l",
878                         "LINE1:rbyte_avg#" .. self.palette.FullBlue .. ":Read ",
879                         "GPRINT:rbyte_min:MIN:%5.1lf%s Min,",
880                         "GPRINT:rbyte_avg:AVERAGE:%5.1lf%s Avg,",
881                         "GPRINT:rbyte_max:MAX:%5.1lf%s Max,",
882                         "GPRINT:rbyte_avg:LAST:%5.1lf%s Last\\l"
883                 },
884
885                 percent = {
886                         "-v", "Percent",
887                         "DEF:avg={file}:percent:AVERAGE",
888                         "DEF:min={file}:percent:MIN",
889                         "DEF:max={file}:percent:MAX",
890                         "AREA:max#" .. self.palette.HalfBlue,
891                         "AREA:min#" .. self.palette.Canvas,
892                         "LINE1:avg#" .. self.palette.FullBlue .. ":Percent",
893                         "GPRINT:min:MIN:%5.1lf%% Min,",
894                         "GPRINT:avg:AVERAGE:%5.1lf%% Avg,",
895                         "GPRINT:max:MAX:%5.1lf%% Max,",
896                         "GPRINT:avg:LAST:%5.1lf%% Last\\l"
897                 },
898
899                 power = {
900                         "-v", "Watt",
901                         "DEF:avg={file}:value:AVERAGE",
902                         "DEF:min={file}:value:MIN",
903                         "DEF:max={file}:value:MAX",
904                         "AREA:max#" .. self.palette.HalfBlue,
905                         "AREA:min#" .. self.palette.Canvas,
906                         "LINE1:avg#" .. self.palette.FullBlue .. ":Watt",
907                         "GPRINT:min:MIN:%5.1lf%sW Min,",
908                         "GPRINT:avg:AVERAGE:%5.1lf%sW Avg,",
909                         "GPRINT:max:MAX:%5.1lf%sW Max,",
910                         "GPRINT:avg:LAST:%5.1lf%sW Last\\l"
911                 },
912
913                 swap = {
914                         "-v", "Bytes", "-b", "1024",
915                         "DEF:avg={file}:value:AVERAGE",
916                         "DEF:min={file}:value:MIN",
917                         "DEF:max={file}:value:MAX",
918                         "AREA:max#" .. self.palette.HalfBlue,
919                         "AREA:min#" .. self.palette.Canvas,
920                         "LINE1:avg#" .. self.palette.FullBlue .. ":Bytes",
921                         "GPRINT:min:MIN:%6.2lf%sByte Min,",
922                         "GPRINT:avg:AVERAGE:%6.2lf%sByte Avg,",
923                         "GPRINT:max:MAX:%6.2lf%sByte Max,",
924                         "GPRINT:avg:LAST:%6.2lf%sByte Last\\l"
925                 },
926
927                 old_swap = {
928                         "DEF:used_avg={file}:used:AVERAGE",
929                         "DEF:used_min={file}:used:MIN",
930                         "DEF:used_max={file}:used:MAX",
931                         "DEF:free_avg={file}:free:AVERAGE",
932                         "DEF:free_min={file}:free:MIN",
933                         "DEF:free_max={file}:free:MAX",
934                         "DEF:cach_avg={file}:cached:AVERAGE",
935                         "DEF:cach_min={file}:cached:MIN",
936                         "DEF:cach_max={file}:cached:MAX",
937                         "DEF:resv_avg={file}:resv:AVERAGE",
938                         "DEF:resv_min={file}:resv:MIN",
939                         "DEF:resv_max={file}:resv:MAX",
940                         "CDEF:cach_avg_notnull=cach_avg,UN,0,cach_avg,IF",
941                         "CDEF:resv_avg_notnull=resv_avg,UN,0,resv_avg,IF",
942                         "CDEF:used_acc=used_avg",
943                         "CDEF:resv_acc=used_acc,resv_avg_notnull,+",
944                         "CDEF:cach_acc=resv_acc,cach_avg_notnull,+",
945                         "CDEF:free_acc=cach_acc,free_avg,+",
946                         "AREA:free_acc#" .. self.palette.HalfGreen,
947                         "AREA:cach_acc#" .. self.palette.HalfBlue,
948                         "AREA:resv_acc#" .. self.palette.HalfYellow,
949                         "AREA:used_acc#" .. self.palette.HalfRed,
950                         "LINE1:free_acc#" .. self.palette.FullGreen .. ":Free    ",
951                         "GPRINT:free_min:MIN:%5.1lf%s Min,",
952                         "GPRINT:free_avg:AVERAGE:%5.1lf%s Avg,",
953                         "GPRINT:free_max:MAX:%5.1lf%s Max,",
954                         "GPRINT:free_avg:LAST:%5.1lf%s Last\n",
955                         "LINE1:cach_acc#" .. self.palette.FullBlue .. ":Cached  ",
956                         "GPRINT:cach_min:MIN:%5.1lf%s Min,",
957                         "GPRINT:cach_avg:AVERAGE:%5.1lf%s Avg,",
958                         "GPRINT:cach_max:MAX:%5.1lf%s Max,",
959                         "GPRINT:cach_avg:LAST:%5.1lf%s Last\\l",
960                         "LINE1:resv_acc#" .. self.palette.FullYellow .. ":Reserved",
961                         "GPRINT:resv_min:MIN:%5.1lf%s Min,",
962                         "GPRINT:resv_avg:AVERAGE:%5.1lf%s Avg,",
963                         "GPRINT:resv_max:MAX:%5.1lf%s Max,",
964                         "GPRINT:resv_avg:LAST:%5.1lf%s Last\n",
965                         "LINE1:used_acc#" .. self.palette.FullRed .. ":Used    ",
966                         "GPRINT:used_min:MIN:%5.1lf%s Min,",
967                         "GPRINT:used_avg:AVERAGE:%5.1lf%s Avg,",
968                         "GPRINT:used_max:MAX:%5.1lf%s Max,",
969                         "GPRINT:used_avg:LAST:%5.1lf%s Last\\l"
970                 },
971
972                 tcp_connections = {
973                         "-v", "Connections",
974                         "DEF:avg={file}:value:AVERAGE",
975                         "DEF:min={file}:value:MIN",
976                         "DEF:max={file}:value:MAX",
977                         "AREA:max#" .. self.palette.HalfBlue,
978                         "AREA:min#" .. self.palette.Canvas,
979                         "LINE1:avg#" .. self.palette.FullBlue .. ":Connections",
980                         "GPRINT:min:MIN:%4.1lf Min,",
981                         "GPRINT:avg:AVERAGE:%4.1lf Avg,",
982                         "GPRINT:max:MAX:%4.1lf Max,",
983                         "GPRINT:avg:LAST:%4.1lf Last\\l"
984                 },
985
986                 temperature = {
987                         "-v", "Celsius",
988                         "DEF:temp_avg={file}:value:AVERAGE",
989                         "DEF:temp_min={file}:value:MIN",
990                         "DEF:temp_max={file}:value:MAX",
991                         "CDEF:average=temp_avg,0.2,*,PREV,UN,temp_avg,PREV,IF,0.8,*,+",
992                         "AREA:temp_max#" .. self.palette.HalfRed,
993                         "AREA:temp_min#" .. self.palette.Canvas,
994                         "LINE1:temp_avg#" .. self.palette.FullRed .. ":Temperature",
995                         "GPRINT:temp_min:MIN:%4.1lf Min,",
996                         "GPRINT:temp_avg:AVERAGE:%4.1lf Avg,",
997                         "GPRINT:temp_max:MAX:%4.1lf Max,",
998                         "GPRINT:temp_avg:LAST:%4.1lf Last\\l"
999                 },
1000
1001                 timeleft = {
1002                         "-v", "Minutes",
1003                         "DEF:avg={file}:timeleft:AVERAGE",
1004                         "DEF:min={file}:timeleft:MIN",
1005                         "DEF:max={file}:timeleft:MAX",
1006                         "AREA:max#" .. self.palette.HalfBlue,
1007                         "AREA:min#" .. self.palette.Canvas,
1008                         "LINE1:avg#" .. self.palette.FullBlue .. ":Time left [min]",
1009                         "GPRINT:min:MIN:%5.1lf%s Min,",
1010                         "GPRINT:avg:AVERAGE:%5.1lf%s Avg,",
1011                         "GPRINT:max:MAX:%5.1lf%s Max,",
1012                         "GPRINT:avg:LAST:%5.1lf%s Last\\l"
1013                 },
1014
1015                 time_offset = {
1016                         "DEF:s_avg={file}:seconds:AVERAGE",
1017                         "DEF:s_min={file}:seconds:MIN",
1018                         "DEF:s_max={file}:seconds:MAX",
1019                         "AREA:s_max#" .. self.palette.HalfBlue,
1020                         "AREA:s_min#" .. self.palette.Canvas,
1021                         "LINE1:s_avg#" .. self.palette.FullBlue .. ":{inst}",
1022                         "GPRINT:s_min:MIN:%7.3lf%s Min,",
1023                         "GPRINT:s_avg:AVERAGE:%7.3lf%s Avg,",
1024                         "GPRINT:s_max:MAX:%7.3lf%s Max,",
1025                         "GPRINT:s_avg:LAST:%7.3lf%s Last\\l"
1026                 },
1027
1028                 cpufreq = {
1029                         "DEF:cpufreq_avg={file}:value:AVERAGE",
1030                         "DEF:cpufreq_min={file}:value:MIN",
1031                         "DEF:cpufreq_max={file}:value:MAX",
1032                         "AREA:cpufreq_max#" .. self.palette.HalfBlue,
1033                         "AREA:cpufreq_min#" .. self.palette.Canvas,
1034                         "LINE1:cpufreq_avg#" .. self.palette.FullBlue .. ":Frequency",
1035                         "GPRINT:cpufreq_min:MIN:%5.1lf%s Min,",
1036                         "GPRINT:cpufreq_avg:AVERAGE:%5.1lf%s Avg,",
1037                         "GPRINT:cpufreq_max:MAX:%5.1lf%s Max,",
1038                         "GPRINT:cpufreq_avg:LAST:%5.1lf%s Last\\l"
1039                 },
1040
1041                 multimeter = {
1042                         "DEF:multimeter_avg={file}:value:AVERAGE",
1043                         "DEF:multimeter_min={file}:value:MIN",
1044                         "DEF:multimeter_max={file}:value:MAX",
1045                         "AREA:multimeter_max#" .. self.palette.HalfBlue,
1046                         "AREA:multimeter_min#" .. self.palette.Canvas,
1047                         "LINE1:multimeter_avg#" .. self.palette.FullBlue .. ":Multimeter",
1048                         "GPRINT:multimeter_min:MIN:%4.1lf Min,",
1049                         "GPRINT:multimeter_avg:AVERAGE:%4.1lf Average,",
1050                         "GPRINT:multimeter_max:MAX:%4.1lf Max,",
1051                         "GPRINT:multimeter_avg:LAST:%4.1lf Last\\l"
1052                 },
1053
1054                 users = {
1055                         "-v", "Users",
1056                         "DEF:users_avg={file}:users:AVERAGE",
1057                         "DEF:users_min={file}:users:MIN",
1058                         "DEF:users_max={file}:users:MAX",
1059                         "AREA:users_max#" .. self.palette.HalfBlue,
1060                         "AREA:users_min#" .. self.palette.Canvas,
1061                         "LINE1:users_avg#" .. self.palette.FullBlue .. ":Users",
1062                         "GPRINT:users_min:MIN:%4.1lf Min,",
1063                         "GPRINT:users_avg:AVERAGE:%4.1lf Average,",
1064                         "GPRINT:users_max:MAX:%4.1lf Max,",
1065                         "GPRINT:users_avg:LAST:%4.1lf Last\\l"
1066                 },
1067
1068                 voltage = {
1069                         "-v", "Voltage",
1070                         "DEF:avg={file}:value:AVERAGE",
1071                         "DEF:min={file}:value:MIN",
1072                         "DEF:max={file}:value:MAX",
1073                         "AREA:max#" .. self.palette.HalfBlue,
1074                         "AREA:min#" .. self.palette.Canvas,
1075                         "LINE1:avg#" .. self.palette.FullBlue .. ":Voltage",
1076                         "GPRINT:min:MIN:%5.1lf%sV Min,",
1077                         "GPRINT:avg:AVERAGE:%5.1lf%sV Avg,",
1078                         "GPRINT:max:MAX:%5.1lf%sV Max,",
1079                         "GPRINT:avg:LAST:%5.1lf%sV Last\\l"
1080                 },
1081
1082                 vs_threads = {
1083                         "DEF:avg={file}:value:AVERAGE",
1084                         "DEF:min={file}:value:MIN",
1085                         "DEF:max={file}:value:MAX",
1086                         "AREA:max#" .. self.palette.HalfBlue,
1087                         "AREA:min#" .. self.palette.Canvas,
1088                         "LINE1:avg#" .. self.palette.FullBlue .. ":Threads",
1089                         "GPRINT:min:MIN:%5.1lf Min,",
1090                         "GPRINT:avg:AVERAGE:%5.1lf Avg.,",
1091                         "GPRINT:max:MAX:%5.1lf Max,",
1092                         "GPRINT:avg:LAST:%5.1lf Last\\l",
1093                 },
1094
1095                 vs_memory = {
1096                         "-b", "1024", "-v", "Bytes",
1097                         "DEF:avg={file}:value:AVERAGE",
1098                         "DEF:min={file}:value:MIN",
1099                         "DEF:max={file}:value:MAX",
1100                         "AREA:max#" .. self.palette.HalfBlue,
1101                         "AREA:min#" .. self.palette.Canvas,
1102                         "LINE1:avg#" .. self.palette.FullBlue .. ":",
1103                         "GPRINT:min:MIN:%5.1lf%sbytes Min,",
1104                         "GPRINT:avg:AVERAGE:%5.1lf%sbytes Avg.,",
1105                         "GPRINT:max:MAX:%5.1lf%sbytes Max,",
1106                         "GPRINT:avg:LAST:%5.1lf%sbytes Last\\l",
1107                 },
1108
1109                 vs_processes = {
1110                         "DEF:avg={file}:value:AVERAGE",
1111                         "DEF:min={file}:value:MIN",
1112                         "DEF:max={file}:value:MAX",
1113                         "AREA:max#" .. self.palette.HalfBlue,
1114                         "AREA:min#" .. self.palette.Canvas,
1115                         "LINE1:avg#" .. self.palette.FullBlue .. ":Processes",
1116                         "GPRINT:min:MIN:%5.1lf Min,",
1117                         "GPRINT:avg:AVERAGE:%5.1lf Avg.,",
1118                         "GPRINT:max:MAX:%5.1lf Max,",
1119                         "GPRINT:avg:LAST:%5.1lf Last\\l",
1120                 },
1121         }
1122 end
1123