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