[pve-devel] r5682 - in pve-cluster/trunk/data: . src
svn-commits at proxmox.com
svn-commits at proxmox.com
Fri Mar 11 07:49:59 CET 2011
Author: dietmar
Date: 2011-03-11 07:49:59 +0100 (Fri, 11 Mar 2011)
New Revision: 5682
Modified:
pve-cluster/trunk/data/ChangeLog
pve-cluster/trunk/data/src/status.c
Log:
rrd improvements
Modified: pve-cluster/trunk/data/ChangeLog
===================================================================
--- pve-cluster/trunk/data/ChangeLog 2011-03-11 06:28:52 UTC (rev 5681)
+++ pve-cluster/trunk/data/ChangeLog 2011-03-11 06:49:59 UTC (rev 5682)
@@ -2,6 +2,7 @@
* perl/Cluster.pm (rrd_dump): cache RRD data for one second (avoid
to many reads from API server)
+ (rrd_dump): parse RRD data
* src/status.c (update_rrd_data): add RRD definition for VMs
(update_rrd_data): use thread safe API, connect to rrdcached
Modified: pve-cluster/trunk/data/src/status.c
===================================================================
--- pve-cluster/trunk/data/src/status.c 2011-03-11 06:28:52 UTC (rev 5681)
+++ pve-cluster/trunk/data/src/status.c 2011-03-11 06:49:59 UTC (rev 5682)
@@ -782,8 +782,9 @@
static const char *rrd_def_node[] = {
"DS:loadavg:GAUGE:120:0:U",
- "DS:cpu:GAUGE:120:0:1",
- "DS:iowait:GAUGE:120:0:1",
+ "DS:maxcpu:GAUGE:120:0:U",
+ "DS:cpu:GAUGE:120:0:U",
+ "DS:iowait:GAUGE:120:0:U",
"DS:memtotal:GAUGE:120:0:U",
"DS:memused:GAUGE:120:0:U",
"DS:swaptotal:GAUGE:120:0:U",
@@ -809,7 +810,7 @@
static const char *rrd_def_vm[] = {
"DS:maxcpu:GAUGE:120:0:U",
- "DS:cpu:GAUGE:120:0:1",
+ "DS:cpu:GAUGE:120:0:U",
"DS:maxmem:GAUGE:120:0:U",
"DS:mem:GAUGE:120:0:U",
"DS:maxdisk:GAUGE:120:0:U",
@@ -871,6 +872,19 @@
}
}
+static inline const char *
+rrd_skip_data(
+ const char *data,
+ int count)
+{
+ int found = 0;
+ while (*data && found < count) {
+ if (*data++ == ':')
+ found++;
+ }
+ return data;
+}
+
static void
update_rrd_data(
const char *key,
@@ -892,9 +906,13 @@
char *filename = g_strdup_printf(RRDDIR "/%s", key);
- if (strncmp(key, "pve-node/", 9) == 0) {
- const char *node = key + 9;
+ int skip = 0;
+ if (strncmp(key, "pve2-node/", 10) == 0) {
+ const char *node = key + 10;
+
+ skip = 1;
+
if (strchr(node, '/') != NULL)
goto keyerror;
@@ -903,14 +921,16 @@
if (!g_file_test(filename, G_FILE_TEST_EXISTS)) {
- mkdir(RRDDIR "/pve-node", 0755);
+ mkdir(RRDDIR "/pve2-node", 0755);
int argcount = sizeof(rrd_def_node)/sizeof(void*) - 1;
create_rrd_file(filename, argcount, rrd_def_node);
}
- } else if (strncmp(key, "pve-vm/", 7) == 0) {
- const char *vmid = key + 7;
+ } else if (strncmp(key, "pve2-vm/", 8) == 0) {
+ const char *vmid = key + 8;
+ skip = 2;
+
if (strchr(vmid, '/') != NULL)
goto keyerror;
@@ -919,13 +939,13 @@
if (!g_file_test(filename, G_FILE_TEST_EXISTS)) {
- mkdir(RRDDIR "/pve-vm", 0755);
+ mkdir(RRDDIR "/pve2-vm", 0755);
int argcount = sizeof(rrd_def_vm)/sizeof(void*) - 1;
create_rrd_file(filename, argcount, rrd_def_vm);
}
- } else if (strncmp(key, "pve-storage/", 12) == 0) {
- const char *node = key + 12;
+ } else if (strncmp(key, "pve2-storage/", 13) == 0) {
+ const char *node = key + 13;
const char *storage = node;
while (*storage && *storage != '/')
@@ -944,7 +964,7 @@
if (!g_file_test(filename, G_FILE_TEST_EXISTS)) {
- mkdir(RRDDIR "/pve-storage", 0755);
+ mkdir(RRDDIR "/pve2-storage", 0755);
char *dir = g_path_get_dirname(filename);
mkdir(dir, 0755);
@@ -958,8 +978,10 @@
goto keyerror;
}
- const char *update_args[] = { data, NULL };
+ const char *dp = skip ? rrd_skip_data(data, skip) : data;
+ const char *update_args[] = { dp, NULL };
+
if (use_daemon) {
int status;
if ((status = rrdc_update(filename, 1, update_args)) != 0) {
More information about the pve-devel
mailing list