1 /*----------------------------------------------------------------------------*/
2 /* Xymon RRD handler module. */
3 /* */
4 /* This module handles "getvis" messages. */
5 /* */
6 /* Copyright (C) 2006-2011 Henrik Storner <henrik@hswn.dk> */
7 /* Copyright (C) 2008 Rich Smrcina */
8 /* */
9 /* This program is released under the GNU General Public License (GPL), */
10 /* version 2. See the file "COPYING" for details. */
11 /* */
12 /*----------------------------------------------------------------------------*/
13
14 static char getvis_rcsid[] = "$Id: do_getvis.c 6585 2010-11-14 15:12:56Z storner $";
15
16 static char *getvis_params[] = { "DS:below:GAUGE:600:0:100", "DS:any:GAUGE:600:0:100", NULL };
17 static char *getvis_tpl = NULL;
18
do_getvis_rrd(char * hostname,char * testname,char * classname,char * pagepaths,char * msg,time_t tstamp)19 int do_getvis_rrd(char *hostname, char *testname, char *classname, char *pagepaths, char *msg, time_t tstamp)
20 {
21 char *p;
22 char pid[4], jnm[9];
23 int j1, j2, j3, j4, j5, j6; /* All junk, don't need it here */
24 int used24p, usedanyp;
25
26 if (strstr(msg, "z/VSE Getvis Map")) {
27
28 p = strstr(msg, "PID ");
29 if (!p) {
30 return 0;
31 }
32
33 p = strtok(p, "\n"); /* Skip heading line */
34 if (p) {
35 p = strtok(NULL, "\n");
36 }
37
38 while (p != NULL) {
39 sscanf(p, "%s %s %d %d %d %d %d %d %d %d", pid, jnm, &j1, &j2, &j3, &j4, &j5, &j6, &used24p, &usedanyp);
40 setupfn2("%s.%s.rrd", "getvis", pid);
41 snprintf(rrdvalues, sizeof(rrdvalues), "%d:%d:%d", (int)tstamp, used24p, usedanyp);
42 create_and_update_rrd(hostname, testname, classname, pagepaths, getvis_params, getvis_tpl);
43 p = strtok(NULL, "\n");
44 }
45
46 }
47
48 return 0;
49 }
50