]> git.itanic.dy.fi Git - rrdd/commitdiff
kaatokone0: Add database.h
authorTimo Kokkonen <kaapeli@ee.oulu.fi>
Tue, 15 Mar 2011 17:25:38 +0000 (19:25 +0200)
committerTimo Kokkonen <kaapeli@ee.oulu.fi>
Tue, 15 Mar 2011 17:25:38 +0000 (19:25 +0200)
Signed-off-by: Timo Kokkonen <kaapeli@ee.oulu.fi>
database.h [new file with mode: 0644]

diff --git a/database.h b/database.h
new file mode 100644 (file)
index 0000000..ffc979f
--- /dev/null
@@ -0,0 +1,355 @@
+#ifndef _TESTDATA_H
+#define _TESTDATA_H
+
+#include "rrdtool.h"
+#include "scheduler.h"
+#include "parser.h"
+
+const char blank[] = "COMMENT:       ";
+#define tempfmt "% 6.2lf °C"
+
+#define numfmt " % 8.2lf "
+
+#define SYSINFO_PATH           "/home/kaapeli/sysinfo/"
+#define SYSINFO_RRD_PATH       SYSINFO_PATH "sysinfo.rrd"
+#define SYSINFO_IMAGES_PATH    SYSINFO_PATH "images/"
+
+#define DIGITEMP_RRD_PATH      "/home/kaapeli/digitemp/digitemp.rrd"
+#define HDTEMP_RRD_PATH                "/root/hdtemp/hdtemp.rrd"
+
+const char *cputext[] = {
+       "DEF:us=" SYSINFO_RRD_PATH ":User:AVERAGE",
+       "DEF:ni=" SYSINFO_RRD_PATH ":Nice:AVERAGE",
+       "DEF:sy=" SYSINFO_RRD_PATH ":Sys:AVERAGE",
+       "DEF:id=" SYSINFO_RRD_PATH ":Idle:AVERAGE",
+       "DEF:wa=" SYSINFO_RRD_PATH ":Wait:AVERAGE",
+       "DEF:in=" SYSINFO_RRD_PATH ":IRQ:AVERAGE",
+       "DEF:so=" SYSINFO_RRD_PATH ":SoftIRQ:AVERAGE",
+       "COMMENT:\\n",
+       blank,
+       "COMMENT:                   "
+       "MIN          MAX         AVG        Last\\n",
+       blank,
+       "AREA:sy#ff0000:System   ",
+       "GPRINT:sy:MIN:" numfmt,
+       "GPRINT:sy:MAX:" numfmt,
+       "GPRINT:sy:AVERAGE:" numfmt,
+       "GPRINT:sy:LAST:" numfmt "\\n",
+       blank,
+       "STACK:us#0000ff:User     ",
+       "GPRINT:us:MIN:" numfmt,
+       "GPRINT:us:MAX:" numfmt,
+       "GPRINT:us:AVERAGE:" numfmt,
+       "GPRINT:us:LAST:" numfmt "\\n",
+       blank,
+       "STACK:ni#00ff00:Nice     ",
+       "GPRINT:ni:MIN:" numfmt,
+       "GPRINT:ni:MAX:" numfmt,
+       "GPRINT:ni:AVERAGE:" numfmt,
+       "GPRINT:ni:LAST:" numfmt "\\n",
+       blank,
+       "STACK:id#ffffff:Idle     ",
+       "GPRINT:id:MIN:" numfmt,
+       "GPRINT:id:MAX:" numfmt,
+       "GPRINT:id:AVERAGE:" numfmt,
+       "GPRINT:id:LAST:" numfmt "\\n",
+       blank,
+       "STACK:wa#ff00ff:IO wait  ",
+       "GPRINT:wa:MIN:" numfmt,
+       "GPRINT:wa:MAX:" numfmt,
+       "GPRINT:wa:AVERAGE:" numfmt,
+       "GPRINT:wa:LAST:" numfmt "\\n",
+       blank,
+       "STACK:in#ffff00:IRQ      ",
+       "GPRINT:in:MIN:" numfmt,
+       "GPRINT:in:MAX:" numfmt,
+       "GPRINT:in:AVERAGE:" numfmt,
+       "GPRINT:in:LAST:" numfmt "\\n",
+       blank,
+       "STACK:so#00ffff:Soft IRQ ",
+       "GPRINT:so:MIN:" numfmt,
+       "GPRINT:so:MAX:" numfmt,
+       "GPRINT:so:AVERAGE:" numfmt,
+       "GPRINT:so:LAST:" numfmt "\\n",
+       "COMMENT: \\n",
+       0
+};
+
+const char *memtext[] = {
+       "DEF:fr=" SYSINFO_RRD_PATH ":Free:AVERAGE",
+       "DEF:bu=" SYSINFO_RRD_PATH ":Buffers:AVERAGE",
+       "DEF:ca=" SYSINFO_RRD_PATH ":Cached:AVERAGE",
+       "DEF:an=" SYSINFO_RRD_PATH ":Anon:AVERAGE",
+       "DEF:sl=" SYSINFO_RRD_PATH ":Slab:AVERAGE",
+       "DEF:ta=" SYSINFO_RRD_PATH ":Tables:AVERAGE",
+       "DEF:sw=" SYSINFO_RRD_PATH ":Swap:AVERAGE",
+       "COMMENT:\\n",
+       blank,
+       "COMMENT:                     "
+       "MIN          MAX         AVG        Last\\n",
+       blank,
+       "AREA:bu#ffff00:Buffers    ",
+       "GPRINT:bu:MIN:" numfmt,
+       "GPRINT:bu:MAX:" numfmt,
+       "GPRINT:bu:AVERAGE:" numfmt,
+       "GPRINT:bu:LAST:" numfmt "\\n",
+       blank,
+       "STACK:an#000000:AnonPages  ",
+       "GPRINT:an:MIN:" numfmt,
+       "GPRINT:an:MAX:" numfmt,
+       "GPRINT:an:AVERAGE:" numfmt,
+       "GPRINT:an:LAST:" numfmt "\\n",
+       blank,
+       "STACK:ca#00ff00:Cached     ",
+       "GPRINT:ca:MIN:" numfmt,
+       "GPRINT:ca:MAX:" numfmt,
+       "GPRINT:ca:AVERAGE:" numfmt,
+       "GPRINT:ca:LAST:" numfmt "\\n",
+       blank,
+       "STACK:fr#ffffff:Free       ",
+       "GPRINT:fr:MIN:" numfmt,
+       "GPRINT:fr:MAX:" numfmt,
+       "GPRINT:fr:AVERAGE:" numfmt,
+       "GPRINT:fr:LAST:" numfmt "\\n",
+       blank,
+       "STACK:sl#00ffff:Slab       ",
+       "GPRINT:sl:MIN:" numfmt,
+       "GPRINT:sl:MAX:" numfmt,
+       "GPRINT:sl:AVERAGE:" numfmt,
+       "GPRINT:sl:LAST:" numfmt "\\n",
+       blank,
+       "STACK:ta#0000ff:PageTables ",
+       "GPRINT:ta:MIN:" numfmt,
+       "GPRINT:ta:MAX:" numfmt,
+       "GPRINT:ta:AVERAGE:" numfmt,
+       "GPRINT:ta:LAST:" numfmt "\\n",
+       blank,
+       "STACK:sw#ff0000:Swap       ",
+       "GPRINT:sw:MIN:" numfmt,
+       "GPRINT:sw:MAX:" numfmt,
+       "GPRINT:sw:AVERAGE:" numfmt,
+       "GPRINT:sw:LAST:" numfmt "\\n",
+       "COMMENT: \\n",
+       0
+};
+
+const char *sensor2_text[] = {
+       "DEF:Anturi2_c=" DIGITEMP_RRD_PATH ":Anturi2:AVERAGE",
+       "COMMENT:\\n",
+       blank,
+       "COMMENT:                                       "
+       "MIN          MAX         AVG        Last\\n",
+       blank,
+       "LINE1:Anturi2_c#0000FF:Outdoor Temperature (sensor2)",
+       "GPRINT:Anturi2_c:MIN: " tempfmt,
+       "GPRINT:Anturi2_c:MAX: " tempfmt,
+       "GPRINT:Anturi2_c:AVERAGE: " tempfmt,
+       "GPRINT:Anturi2_c:LAST: " tempfmt "\\n",
+       "COMMENT: \\n",
+       0,
+};
+
+const char *sensor3_text[] = {
+       "DEF:Anturi3_c=" DIGITEMP_RRD_PATH ":Anturi3:AVERAGE",
+       "COMMENT:\\n",
+       blank,
+       "COMMENT:                                       "
+       "MIN          MAX         AVG        Last\\n",
+       blank,
+       "LINE1:Anturi3_c#ff0000:Indoor Temperature (sensor3) ",
+       "GPRINT:Anturi3_c:MIN: " tempfmt,
+       "GPRINT:Anturi3_c:MAX: " tempfmt,
+       "GPRINT:Anturi3_c:AVERAGE: " tempfmt,
+       "GPRINT:Anturi3_c:LAST: " tempfmt "\\n",
+       "COMMENT: \\n",
+       0,
+};
+
+const char *hdcpu_text[] = {
+       "DEF:hda_c=" HDTEMP_RRD_PATH ":hda:AVERAGE",
+       "DEF:hdb_c=" HDTEMP_RRD_PATH ":hdb:AVERAGE",
+       "DEF:hdc_c=" HDTEMP_RRD_PATH ":hdc:AVERAGE",
+       "DEF:CPU_c=" HDTEMP_RRD_PATH ":CPU:AVERAGE",
+       "COMMENT:\\n",
+       blank,
+       "COMMENT:                                    "
+       "MIN         MAX         AVG        Last\\n",
+       blank,
+       "LINE1:hda_c#0000FF:Seagate Barracuda 7200.7 ",
+       "GPRINT:hda_c:MIN: " tempfmt,
+       "GPRINT:hda_c:MAX: " tempfmt,
+       "GPRINT:hda_c:AVERAGE: " tempfmt,
+       "GPRINT:hda_c:LAST: " tempfmt,
+       "COMMENT: \\n",
+       blank,
+       "LINE1:hdb_c#00FFFF:Maxtor DIAMONDMAX+9      ",
+       "GPRINT:hdb_c:MIN: " tempfmt,
+       "GPRINT:hdb_c:MAX: " tempfmt,
+       "GPRINT:hdb_c:AVERAGE: " tempfmt,
+       "GPRINT:hdb_c:LAST: " tempfmt,
+       "COMMENT: \\n",
+       blank,
+       "LINE1:hdc_c#00FF00:Seagate Barracuda 7200.10",
+       "GPRINT:hdc_c:MIN: " tempfmt,
+       "GPRINT:hdc_c:MAX: " tempfmt,
+       "GPRINT:hdc_c:AVERAGE: " tempfmt,
+       "GPRINT:hdc_c:LAST: " tempfmt,
+       "COMMENT: \\n",
+       blank,
+       "LINE1:CPU_c#FF0000:AMD Athlon XP 2800+      ",
+       "GPRINT:CPU_c:MIN: " tempfmt,
+       "GPRINT:CPU_c:MAX: " tempfmt,
+       "GPRINT:CPU_c:AVERAGE: " tempfmt,
+       "GPRINT:CPU_c:LAST: " tempfmt "\\n",
+       "COMMENT: \\n",
+       0,
+};
+
+const char *cpuoptions[] = {
+       "--alt-autoscale-max",
+       "--lower-limit", "0",
+       "--vertical-label",
+       "CPU Tics",
+       0
+};
+
+const char *memoptions[] = {
+       "--alt-autoscale-max",
+       "--lower-limit", "0",
+       "--vertical-label",
+       "Mem usage (MB)",
+       "--units-exponent", "0",
+       0
+};
+
+const char *sensor2_options[] = {
+       "--alt-autoscale",
+       "--vertical-label", "Temp (C)",
+       0,
+};
+
+const char *sensor3_options[] = {
+       "--alt-autoscale",
+       "--vertical-label", "Temp (C)",
+       0,
+};
+
+const char *hdcpu_options[] = {
+       "--alt-autoscale",
+       "--vertical-label", "Temp (C)",
+       0,
+};
+
+#define DEFINE_IMAGE(rrdname, _filename, _width, _height, time)                \
+       static struct rrd_image rrdname ## daily = {                    \
+               .image_filename = _filename "_daily.png",               \
+               .width = _width,                                        \
+               .height = _height,                                      \
+               .timestart = "end-" #time "d",                          \
+               .timeend = "now",                                       \
+               .imageformat = "PNG",                                   \
+               .options = (char **)&rrdname ## options,                \
+               .text = (char **)&rrdname ## text,                      \
+       };                                                              \
+       static struct rrd_image rrdname ## weekly = {                   \
+               .image_filename = _filename "_weekly.png",              \
+               .width = _width,                                        \
+               .height = _height,                                      \
+               .timestart = "end-" #time "w",                          \
+               .timeend = "now",                                       \
+               .imageformat = "PNG",                                   \
+               .options = (char **)&rrdname ## options,                \
+               .text = (char **)&rrdname ## text,                      \
+       };                                                              \
+       static struct rrd_image rrdname ## monthly = {                  \
+               .image_filename = _filename "_monthly.png",             \
+               .width = _width,                                        \
+               .height = _height,                                      \
+               .timestart = "end-" #time "m",                          \
+               .timeend = "now",                                       \
+               .imageformat = "PNG",                                   \
+               .options = (char **)&rrdname ## options,                \
+               .text = (char **)&rrdname ## text,                      \
+       };                                                              \
+       static struct rrd_image rrdname ## yearly = {                   \
+               .image_filename = _filename "_yearly.png",              \
+               .width = _width,                                        \
+               .height = _height,                                      \
+               .timestart = "end-" #time "y",                          \
+               .timeend = "now",                                       \
+               .imageformat = "PNG",                                   \
+               .options = (char **)&rrdname ## options,                \
+               .text = (char **)&rrdname ## text,                      \
+       };
+
+DEFINE_IMAGE(cpu,      "/home/kaapeli/sysinfo/images/cpu", 720, 480, 1);
+DEFINE_IMAGE(mem,      "/home/kaapeli/sysinfo/images/mem", 720, 480, 1);
+DEFINE_IMAGE(sensor2_, "/home/apache2/temperature/sensor2", 600, 200, 2);
+DEFINE_IMAGE(sensor3_, "/home/apache2/temperature/sensor1-3", 600, 200, 2);
+DEFINE_IMAGE(hdcpu_,   "/home/apache2/temperature/hdcpu", 600, 200, 2);
+
+static struct rrd_image *cpu_mem_images[] = {
+       &cpudaily,
+       &cpuweekly,
+       &cpumonthly,
+       &cpuyearly,
+       &memdaily,
+       &memweekly,
+       &memmonthly,
+       &memyearly,
+       0
+};
+
+static struct rrd_image *temp_images[] = {
+       &sensor2_daily,
+       &sensor2_weekly,
+       &sensor2_monthly,
+       &sensor2_yearly,
+       &sensor3_daily,
+       &sensor3_weekly,
+       &sensor3_monthly,
+       &sensor3_yearly,
+       0,
+};
+
+static struct rrd_image *hdcpu_images[] = {
+       &hdcpu_daily,
+       &hdcpu_weekly,
+       &hdcpu_monthly,
+       &hdcpu_yearly,
+       0,
+};
+
+static struct rrd_database cpumem_rrd = {
+       .filename       = SYSINFO_RRD_PATH,
+       .interval       = 120,
+       .parse          = cpu_mem_parser,
+       .images         = (struct rrd_image **)&cpu_mem_images,
+       .name           = "cpumem"
+};
+
+static struct rrd_database digitemp_rrd = {
+       .filename       = DIGITEMP_RRD_PATH,
+       .interval       = 300,
+       .parse          = digitemp_parser_mod,
+       .images         = (struct rrd_image **)&temp_images,
+       .name           = "digitemp",
+};
+
+static struct rrd_database hdtemp_rrd = {
+       .filename       = HDTEMP_RRD_PATH,
+       .interval       = 300,
+       .parse          = 0,
+       .images         = (struct rrd_image **)&hdcpu_images,
+       .name           = "hdtemp",
+};
+
+
+static struct rrd_database *all_rrds[] = {
+       &cpumem_rrd,
+       &digitemp_rrd,
+       &hdtemp_rrd,
+       0,
+};
+
+#endif