]> arthur.barton.de Git - netdata.git/commitdiff
split rrd.c into multiple files
authorCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Sat, 18 Feb 2017 08:57:49 +0000 (10:57 +0200)
committerCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Sat, 18 Feb 2017 08:57:49 +0000 (10:57 +0200)
49 files changed:
CMakeLists.txt
src/Makefile.am
src/backends.c
src/daemon.c
src/global_statistics.c
src/ipc.c
src/macos_fw.c
src/macos_mach_smi.c
src/macos_sysctl.c
src/main.c
src/plugin_checks.c
src/plugin_idlejitter.c
src/plugin_nfacct.c
src/plugin_proc.c
src/plugin_proc_diskspace.c
src/plugin_tc.c
src/plugins_d.c
src/proc_diskstats.c
src/proc_interrupts.c
src/proc_loadavg.c
src/proc_meminfo.c
src/proc_net_dev.c
src/proc_net_ip_vs_stats.c
src/proc_net_netstat.c
src/proc_net_rpc_nfs.c
src/proc_net_rpc_nfsd.c
src/proc_net_snmp.c
src/proc_net_snmp6.c
src/proc_net_softnet_stat.c
src/proc_net_stat_conntrack.c
src/proc_net_stat_synproxy.c
src/proc_softirqs.c
src/proc_stat.c
src/proc_sys_kernel_random_entropy_avail.c
src/proc_uptime.c
src/proc_vmstat.c
src/registry.c
src/rrd.c
src/rrd.h
src/rrd2json.c
src/rrddim.c [new file with mode: 0644]
src/rrdfamily.c [new file with mode: 0644]
src/rrdhost.c [new file with mode: 0644]
src/rrdset.c [new file with mode: 0644]
src/sys_devices_system_edac_mc.c
src/sys_devices_system_node.c
src/sys_fs_cgroup.c
src/sys_kernel_mm_ksm.c
src/unit_test.c

index 893af80660953a7d7438136c2f45ca3fbb7d49ac..9dc59010cb24e5d7ca8c249bb483bead28064d00 100755 (executable)
@@ -123,7 +123,7 @@ set(NETDATA_SOURCE_FILES
         src/web_client.h
         src/web_server.c
         src/web_server.h
-        )
+        src/rrdhost.c src/rrdfamily.c src/rrdset.c src/rrddim.c)
 
 set(APPS_PLUGIN_SOURCE_FILES
         src/appconfig.c
index bec3ef92d80db15b9264ce6481211bbe781de399..c562b27e7c53629bdefa7fdd4a0b8aa3d3ca0278 100644 (file)
@@ -30,7 +30,7 @@ endif
 
 netdata_SOURCES = \
        appconfig.c appconfig.h \
-       adaptive_resortable_list.c adaptive_resortable_list.h \
+       adaptive_resortable_list.c \adaptive_resortable_list.h \
        avl.c avl.h \
        backends.c backends.h \
        clocks.c clocks.h \
@@ -65,6 +65,10 @@ netdata_SOURCES = \
        registry_db.c \
        registry_log.c \
        rrd.c rrd.h \
+       rrddim.c \
+       rrdfamily.c \
+       rrdhost.c \
+       rrdset.c \
        rrd2json.c rrd2json.h \
        storage_number.c storage_number.h \
        unit_test.c unit_test.h \
index e1c886dc7063bb8b43952d5301b4a039cb5a1932..b1c10d9d0631e3cad91b22fb135a20bfd6202b18 100644 (file)
@@ -240,28 +240,28 @@ void *backends_main(void *ptr) {
     RRDSET *chart_metrics = rrdset_find_localhost("netdata.backend_metrics");
     if(!chart_metrics) {
         chart_metrics = rrdset_create("netdata", "backend_metrics", NULL, "backend", NULL, "Netdata Buffered Metrics", "metrics", 130600, frequency, RRDSET_TYPE_LINE);
-        rrddim_add(chart_metrics, "buffered", NULL,  1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(chart_metrics, "lost",     NULL,  1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(chart_metrics, "sent",     NULL,  1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_metrics, "buffered", NULL,  1, 1, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_metrics, "lost",     NULL,  1, 1, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_metrics, "sent",     NULL,  1, 1, RRD_ALGORITHM_ABSOLUTE);
     }
 
     RRDSET *chart_bytes = rrdset_find_localhost("netdata.backend_bytes");
     if(!chart_bytes) {
         chart_bytes = rrdset_create("netdata", "backend_bytes", NULL, "backend", NULL, "Netdata Backend Data Size", "KB", 130610, frequency, RRDSET_TYPE_AREA);
-        rrddim_add(chart_bytes, "buffered", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(chart_bytes, "lost",     NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(chart_bytes, "sent",     NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(chart_bytes, "received", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_bytes, "buffered", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_bytes, "lost",     NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_bytes, "sent",     NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_bytes, "received", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
     }
 
     RRDSET *chart_ops = rrdset_find_localhost("netdata.backend_ops");
     if(!chart_ops) {
         chart_ops = rrdset_create("netdata", "backend_ops", NULL, "backend", NULL, "Netdata Backend Operations", "operations", 130630, frequency, RRDSET_TYPE_LINE);
-        rrddim_add(chart_ops, "write",     NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(chart_ops, "discard",   NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(chart_ops, "reconnect", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(chart_ops, "failure",   NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(chart_ops, "read",      NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_ops, "write",     NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_ops, "discard",   NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_ops, "reconnect", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_ops, "failure",   NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_ops, "read",      NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
     }
 
     /*
@@ -274,15 +274,15 @@ void *backends_main(void *ptr) {
     RRDSET *chart_latency = rrdset_find_localhost("netdata.backend_latency");
     if(!chart_latency) {
         chart_latency = rrdset_create("netdata", "backend_latency", NULL, "backend", NULL, "Netdata Backend Latency", "ms", 130620, frequency, RRDSET_TYPE_AREA);
-        rrddim_add(chart_latency, "latency",   NULL,  1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(chart_latency, "latency",   NULL,  1, 1000, RRD_ALGORITHM_ABSOLUTE);
     }
     */
 
     RRDSET *chart_rusage = rrdset_find_localhost("netdata.backend_thread_cpu");
     if(!chart_rusage) {
         chart_rusage = rrdset_create("netdata", "backend_thread_cpu", NULL, "backend", NULL, "NetData Backend Thread CPU usage", "milliseconds/s", 130630, frequency, RRDSET_TYPE_STACKED);
-        rrddim_add(chart_rusage, "user",   NULL, 1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
-        rrddim_add(chart_rusage, "system", NULL, 1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
+        rrddim_add(chart_rusage, "user",   NULL, 1, 1000, RRD_ALGORITHM_INCREMENTAL);
+        rrddim_add(chart_rusage, "system", NULL, 1, 1000, RRD_ALGORITHM_INCREMENTAL);
     }
 
     // ------------------------------------------------------------------------
index e7f3b037fd73bd808ea5d999bb00bd1b60b107ff..835c014a7a5b8f074021f7c18dad0f89ee9365c3 100644 (file)
@@ -27,7 +27,7 @@ void sig_handler_save(int signo)
     if(signo) {
         error_log_limit_unlimited();
         info("Received signal %d to save the database...", signo);
-        rrdset_save_all();
+        rrdhost_save_all();
         error_log_limit_reset();
     }
 }
index ea23b154578fd2aaf44b8300c2bb586874f91d1f..90f0699f7ff033d93a1d3eca7edd5afa941e1a55 100644 (file)
@@ -135,8 +135,8 @@ void global_statistics_charts(void) {
                                      "NetData Proc Plugin CPU usage", "milliseconds/s", 132000, rrd_update_every,
                                      RRDSET_TYPE_STACKED);
 
-        rrddim_add(stcpu_thread, "user", NULL, 1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
-        rrddim_add(stcpu_thread, "system", NULL, 1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
+        rrddim_add(stcpu_thread, "user", NULL, 1, 1000, RRD_ALGORITHM_INCREMENTAL);
+        rrddim_add(stcpu_thread, "system", NULL, 1, 1000, RRD_ALGORITHM_INCREMENTAL);
     } else rrdset_next(stcpu_thread);
 
     rrddim_set(stcpu_thread, "user", thread.ru_utime.tv_sec * 1000000ULL + thread.ru_utime.tv_usec);
@@ -150,8 +150,8 @@ void global_statistics_charts(void) {
         stcpu = rrdset_create("netdata", "server_cpu", NULL, "netdata", NULL, "NetData CPU usage", "milliseconds/s",
                               130000, rrd_update_every, RRDSET_TYPE_STACKED);
 
-        rrddim_add(stcpu, "user", NULL, 1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
-        rrddim_add(stcpu, "system", NULL, 1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
+        rrddim_add(stcpu, "user", NULL, 1, 1000, RRD_ALGORITHM_INCREMENTAL);
+        rrddim_add(stcpu, "system", NULL, 1, 1000, RRD_ALGORITHM_INCREMENTAL);
     } else rrdset_next(stcpu);
 
     rrddim_set(stcpu, "user", me.ru_utime.tv_sec * 1000000ULL + me.ru_utime.tv_usec);
@@ -165,7 +165,7 @@ void global_statistics_charts(void) {
         stclients = rrdset_create("netdata", "clients", NULL, "netdata", NULL, "NetData Web Clients",
                                   "connected clients", 130200, rrd_update_every, RRDSET_TYPE_LINE);
 
-        rrddim_add(stclients, "clients", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(stclients, "clients", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
     } else rrdset_next(stclients);
 
     rrddim_set(stclients, "clients", gs.connected_clients);
@@ -178,7 +178,7 @@ void global_statistics_charts(void) {
         streqs = rrdset_create("netdata", "requests", NULL, "netdata", NULL, "NetData Web Requests", "requests/s",
                                130300, rrd_update_every, RRDSET_TYPE_LINE);
 
-        rrddim_add(streqs, "requests", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+        rrddim_add(streqs, "requests", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
     } else rrdset_next(streqs);
 
     rrddim_set(streqs, "requests", (collected_number) gs.web_requests);
@@ -191,8 +191,8 @@ void global_statistics_charts(void) {
         stbytes = rrdset_create("netdata", "net", NULL, "netdata", NULL, "NetData Network Traffic", "kilobits/s",
                                 130000, rrd_update_every, RRDSET_TYPE_AREA);
 
-        rrddim_add(stbytes, "in", NULL, 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-        rrddim_add(stbytes, "out", NULL, -8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+        rrddim_add(stbytes, "in", NULL, 8, 1024, RRD_ALGORITHM_INCREMENTAL);
+        rrddim_add(stbytes, "out", NULL, -8, 1024, RRD_ALGORITHM_INCREMENTAL);
     } else rrdset_next(stbytes);
 
     rrddim_set(stbytes, "in", (collected_number) gs.bytes_received);
@@ -206,8 +206,8 @@ void global_statistics_charts(void) {
         stduration = rrdset_create("netdata", "response_time", NULL, "netdata", NULL, "NetData API Response Time",
                                    "ms/request", 130400, rrd_update_every, RRDSET_TYPE_LINE);
 
-        rrddim_add(stduration, "average", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(stduration, "max", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(stduration, "average", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(stduration, "max", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
     } else rrdset_next(stduration);
 
     uint64_t gweb_usec = gs.web_usec;
@@ -238,7 +238,7 @@ void global_statistics_charts(void) {
                                       "NetData API Responses Compression Savings Ratio", "percentage", 130500,
                                       rrd_update_every, RRDSET_TYPE_LINE);
 
-        rrddim_add(stcompression, "savings", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(stcompression, "savings", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
     } else rrdset_next(stcompression);
 
     // since we don't lock here to read the global statistics
index 8714510e14125ba74851f26b5c45fbbcf12e0001..b66d65272a917ddb31f5baefc518bdffd2a56967 100644 (file)
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -194,13 +194,13 @@ int do_ipc(int update_every, usec_t dt) {
         semaphores = rrdset_find_localhost("system.ipc_semaphores");
         if(!semaphores) {
             semaphores = rrdset_create("system", "ipc_semaphores", NULL, "ipc semaphores", NULL, "IPC Semaphores", "semaphores", 1000, rrd_update_every, RRDSET_TYPE_AREA);
-            rrddim_add(semaphores, "semaphores", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(semaphores, "semaphores", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
         }
 
         arrays = rrdset_find_localhost("system.ipc_semaphore_arrays");
         if(!arrays) {
             arrays = rrdset_create("system", "ipc_semaphore_arrays", NULL, "ipc semaphores", NULL, "IPC Semaphore Arrays", "arrays", 1000, rrd_update_every, RRDSET_TYPE_AREA);
-            rrddim_add(arrays, "arrays", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(arrays, "arrays", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
         }
     }
 
index 7917855d3a292487edc78a906de0b435f7560762..f9a3a6b0ece3a4e4b8747ff832cb290dfb7e2d29 100644 (file)
@@ -140,8 +140,8 @@ int do_macos_iokit(int update_every, usec_t dt) {
                     if (unlikely(!st)) {
                         st = rrdset_create("disk", diskstat.name, NULL, diskstat.name, "disk.io", "Disk I/O Bandwidth", "kilobytes/s", 2000, update_every, RRDSET_TYPE_AREA);
 
-                        rrddim_add(st, "reads", NULL, 1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                        rrddim_add(st, "writes", NULL, -1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                        rrddim_add(st, "reads", NULL, 1, 1024, RRD_ALGORITHM_INCREMENTAL);
+                        rrddim_add(st, "writes", NULL, -1, 1024, RRD_ALGORITHM_INCREMENTAL);
                     }
                     else rrdset_next(st);
 
@@ -166,8 +166,8 @@ int do_macos_iokit(int update_every, usec_t dt) {
                         st = rrdset_create("disk_ops", diskstat.name, NULL, diskstat.name, "disk.ops", "Disk Completed I/O Operations", "operations/s", 2001, update_every, RRDSET_TYPE_LINE);
                         st->isdetail = 1;
 
-                        rrddim_add(st, "reads", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                        rrddim_add(st, "writes", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                        rrddim_add(st, "reads", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                        rrddim_add(st, "writes", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                     }
                     else rrdset_next(st);
 
@@ -192,7 +192,7 @@ int do_macos_iokit(int update_every, usec_t dt) {
                         st = rrdset_create("disk_util", diskstat.name, NULL, diskstat.name, "disk.util", "Disk Utilization Time", "% of time working", 2004, update_every, RRDSET_TYPE_AREA);
                         st->isdetail = 1;
 
-                        rrddim_add(st, "utilization", NULL, 1, 10000000, RRDDIM_ALGORITHM_INCREMENTAL);
+                        rrddim_add(st, "utilization", NULL, 1, 10000000, RRD_ALGORITHM_INCREMENTAL);
                     }
                     else rrdset_next(st);
 
@@ -217,8 +217,8 @@ int do_macos_iokit(int update_every, usec_t dt) {
                         st = rrdset_create("disk_iotime", diskstat.name, NULL, diskstat.name, "disk.iotime", "Disk Total I/O Time", "milliseconds/s", 2022, update_every, RRDSET_TYPE_LINE);
                         st->isdetail = 1;
 
-                        rrddim_add(st, "reads", NULL, 1, 1000000, RRDDIM_ALGORITHM_INCREMENTAL);
-                        rrddim_add(st, "writes", NULL, -1, 1000000, RRDDIM_ALGORITHM_INCREMENTAL);
+                        rrddim_add(st, "reads", NULL, 1, 1000000, RRD_ALGORITHM_INCREMENTAL);
+                        rrddim_add(st, "writes", NULL, -1, 1000000, RRD_ALGORITHM_INCREMENTAL);
                     }
                     else rrdset_next(st);
 
@@ -241,8 +241,8 @@ int do_macos_iokit(int update_every, usec_t dt) {
                             st = rrdset_create("disk_await", diskstat.name, NULL, diskstat.name, "disk.await", "Average Completed I/O Operation Time", "ms per operation", 2005, update_every, RRDSET_TYPE_LINE);
                             st->isdetail = 1;
 
-                            rrddim_add(st, "reads", NULL, 1, 1000000, RRDDIM_ALGORITHM_ABSOLUTE);
-                            rrddim_add(st, "writes", NULL, -1, 1000000, RRDDIM_ALGORITHM_ABSOLUTE);
+                            rrddim_add(st, "reads", NULL, 1, 1000000, RRD_ALGORITHM_ABSOLUTE);
+                            rrddim_add(st, "writes", NULL, -1, 1000000, RRD_ALGORITHM_ABSOLUTE);
                         }
                         else rrdset_next(st);
 
@@ -259,8 +259,8 @@ int do_macos_iokit(int update_every, usec_t dt) {
                             st = rrdset_create("disk_avgsz", diskstat.name, NULL, diskstat.name, "disk.avgsz", "Average Completed I/O Operation Bandwidth", "kilobytes per operation", 2006, update_every, RRDSET_TYPE_AREA);
                             st->isdetail = 1;
 
-                            rrddim_add(st, "reads", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-                            rrddim_add(st, "writes", NULL, -1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                            rrddim_add(st, "reads", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+                            rrddim_add(st, "writes", NULL, -1, 1024, RRD_ALGORITHM_ABSOLUTE);
                         }
                         else rrdset_next(st);
 
@@ -277,7 +277,7 @@ int do_macos_iokit(int update_every, usec_t dt) {
                             st = rrdset_create("disk_svctm", diskstat.name, NULL, diskstat.name, "disk.svctm", "Average Service Time", "ms per operation", 2007, update_every, RRDSET_TYPE_LINE);
                             st->isdetail = 1;
 
-                            rrddim_add(st, "svctm", NULL, 1, 1000000, RRDDIM_ALGORITHM_ABSOLUTE);
+                            rrddim_add(st, "svctm", NULL, 1, 1000000, RRD_ALGORITHM_ABSOLUTE);
                         }
                         else rrdset_next(st);
 
@@ -304,8 +304,8 @@ int do_macos_iokit(int update_every, usec_t dt) {
         st = rrdset_find_bytype_localhost("system", "io");
         if (unlikely(!st)) {
             st = rrdset_create("system", "io", NULL, "disk", NULL, "Disk I/O", "kilobytes/s", 150, update_every, RRDSET_TYPE_AREA);
-            rrddim_add(st, "in",  NULL,  1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "out", NULL, -1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "in",  NULL,  1, 1024, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "out", NULL, -1, 1024, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -347,10 +347,10 @@ int do_macos_iokit(int update_every, usec_t dt) {
                                            update_every,
                                            RRDSET_TYPE_STACKED);
 
-                        rrddim_add(st, "avail", NULL, mntbuf[i].f_bsize, GIGA_FACTOR, RRDDIM_ALGORITHM_ABSOLUTE);
-                        rrddim_add(st, "used", NULL, mntbuf[i].f_bsize, GIGA_FACTOR, RRDDIM_ALGORITHM_ABSOLUTE);
+                        rrddim_add(st, "avail", NULL, mntbuf[i].f_bsize, GIGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
+                        rrddim_add(st, "used", NULL, mntbuf[i].f_bsize, GIGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
                         rrddim_add(st, "reserved_for_root", "reserved for root", mntbuf[i].f_bsize, GIGA_FACTOR,
-                                   RRDDIM_ALGORITHM_ABSOLUTE);
+                                   RRD_ALGORITHM_ABSOLUTE);
                     } else
                         rrdset_next(st);
 
@@ -369,9 +369,9 @@ int do_macos_iokit(int update_every, usec_t dt) {
                         st = rrdset_create("disk_inodes", mntbuf[i].f_mntonname, NULL, mntbuf[i].f_mntonname, "disk.inodes", title, "Inodes", 2024,
                                            update_every, RRDSET_TYPE_STACKED);
 
-                        rrddim_add(st, "avail", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-                        rrddim_add(st, "used", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-                        rrddim_add(st, "reserved_for_root", "reserved for root", 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+                        rrddim_add(st, "avail", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+                        rrddim_add(st, "used", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+                        rrddim_add(st, "reserved_for_root", "reserved for root", 1, 1, RRD_ALGORITHM_ABSOLUTE);
                     } else
                         rrdset_next(st);
 
@@ -402,8 +402,8 @@ int do_macos_iokit(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("net", ifa->ifa_name, NULL, ifa->ifa_name, "net.net", "Bandwidth", "kilobits/s", 7000, update_every, RRDSET_TYPE_AREA);
 
-                    rrddim_add(st, "received", NULL, 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "sent", NULL, -8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "received", NULL, 8, 1024, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "sent", NULL, -8, 1024, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -418,10 +418,10 @@ int do_macos_iokit(int update_every, usec_t dt) {
                     st = rrdset_create("net_packets", ifa->ifa_name, NULL, ifa->ifa_name, "net.packets", "Packets", "packets/s", 7001, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "multicast_received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "multicast_sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "multicast_received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "multicast_sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -438,8 +438,8 @@ int do_macos_iokit(int update_every, usec_t dt) {
                     st = rrdset_create("net_errors", ifa->ifa_name, NULL, ifa->ifa_name, "net.errors", "Interface Errors", "errors/s", 7002, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "inbound", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "outbound", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "inbound", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "outbound", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -454,7 +454,7 @@ int do_macos_iokit(int update_every, usec_t dt) {
                     st = rrdset_create("net_drops", ifa->ifa_name, NULL, ifa->ifa_name, "net.drops", "Interface Drops", "drops/s", 7003, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "inbound", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "inbound", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -468,9 +468,9 @@ int do_macos_iokit(int update_every, usec_t dt) {
                     st = rrdset_create("net_events", ifa->ifa_name, NULL, ifa->ifa_name, "net.events", "Network Interface Events", "events/s", 7006, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "frames", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "collisions", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "carrier", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "frames", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "collisions", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "carrier", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
index 60da6d7a3f21c27900da90264df6e11f0b38b02a..9578a7af7dfa8d96fd24d9dfc59ea742ddf11b57 100644 (file)
@@ -52,10 +52,10 @@ int do_macos_mach_smi(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("system", "cpu", NULL, "cpu", "system.cpu", "Total CPU utilization", "percentage", 100, update_every, RRDSET_TYPE_STACKED);
 
-                    rrddim_add(st, "user", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-                    rrddim_add(st, "nice", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-                    rrddim_add(st, "system", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-                    rrddim_add(st, "idle", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "user", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "nice", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "system", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "idle", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
                     rrddim_hide(st, "idle");
                 }
                 else rrdset_next(st);
@@ -88,14 +88,14 @@ int do_macos_mach_smi(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("system", "ram", NULL, "ram", NULL, "System RAM", "MB", 200, update_every, RRDSET_TYPE_STACKED);
 
-                    rrddim_add(st, "active",    NULL, system_pagesize, 1048576, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(st, "wired",     NULL, system_pagesize, 1048576, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(st, "throttled", NULL, system_pagesize, 1048576, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(st, "compressor", NULL, system_pagesize, 1048576, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(st, "inactive",  NULL, system_pagesize, 1048576, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(st, "purgeable", NULL, system_pagesize, 1048576, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(st, "speculative", NULL, system_pagesize, 1048576, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(st, "free",      NULL, system_pagesize, 1048576, RRDDIM_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "active",    NULL, system_pagesize, 1048576, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "wired",     NULL, system_pagesize, 1048576, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "throttled", NULL, system_pagesize, 1048576, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "compressor", NULL, system_pagesize, 1048576, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "inactive",  NULL, system_pagesize, 1048576, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "purgeable", NULL, system_pagesize, 1048576, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "speculative", NULL, system_pagesize, 1048576, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "free",      NULL, system_pagesize, 1048576, RRD_ALGORITHM_ABSOLUTE);
                 }
                 else rrdset_next(st);
 
@@ -117,8 +117,8 @@ int do_macos_mach_smi(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("system", "swapio", NULL, "swap", NULL, "Swap I/O", "kilobytes/s", 250, update_every, RRDSET_TYPE_AREA);
 
-                    rrddim_add(st, "in",  NULL, system_pagesize, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "out", NULL, -system_pagesize, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "in",  NULL, system_pagesize, 1024, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "out", NULL, -system_pagesize, 1024, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -135,15 +135,15 @@ int do_macos_mach_smi(int update_every, usec_t dt) {
                     st = rrdset_create("mem", "pgfaults", NULL, "system", NULL, "Memory Page Faults", "page faults/s", 500, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "memory",    NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "cow",       NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "pagein",    NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "pageout",   NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "compress",  NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "decompress", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "zero_fill", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "reactivate", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "purge",     NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "memory",    NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "cow",       NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "pagein",    NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "pageout",   NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "compress",  NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "decompress", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "zero_fill", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "reactivate", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "purge",     NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
index 250faa7d10e1742fca3db96fd945568158554028..7f71a4cd08d8690256474f57e17727695b62a6ae 100644 (file)
@@ -218,9 +218,9 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                 st = rrdset_find_bytype_localhost("system", "load");
                 if (unlikely(!st)) {
                     st = rrdset_create("system", "load", NULL, "load", NULL, "System Load Average", "load", 100, (update_every < MIN_LOADAVG_UPDATE_EVERY) ? MIN_LOADAVG_UPDATE_EVERY : update_every, RRDSET_TYPE_LINE);
-                    rrddim_add(st, "load1", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(st, "load5", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(st, "load15", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "load1", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "load5", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "load15", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
                 }
                 else rrdset_next(st);
 
@@ -247,8 +247,8 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                 st = rrdset_create("system", "swap", NULL, "swap", NULL, "System Swap", "MB", 201, update_every, RRDSET_TYPE_STACKED);
                 st->isdetail = 1;
 
-                rrddim_add(st, "free",    NULL, 1, 1048576, RRDDIM_ALGORITHM_ABSOLUTE);
-                rrddim_add(st, "used",    NULL, 1, 1048576, RRDDIM_ALGORITHM_ABSOLUTE);
+                rrddim_add(st, "free",    NULL, 1, 1048576, RRD_ALGORITHM_ABSOLUTE);
+                rrddim_add(st, "used",    NULL, 1, 1048576, RRD_ALGORITHM_ABSOLUTE);
             }
             else rrdset_next(st);
 
@@ -295,8 +295,8 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("system", "ipv4", NULL, "network", NULL, "IPv4 Bandwidth", "kilobits/s", 500, update_every, RRDSET_TYPE_AREA);
 
-                    rrddim_add(st, "InOctets", "received", 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutOctets", "sent", -8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InOctets", "received", 8, 1024, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutOctets", "sent", -8, 1024, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -334,8 +334,8 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        "packets/s",
                                        2600, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InSegs", "received", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutSegs", "sent", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InSegs", "received", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutSegs", "sent", -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -354,9 +354,9 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        2700, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InErrs", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "RetransSegs", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InErrs", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "RetransSegs", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -376,10 +376,10 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        "events/s", 2900, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "EstabResets", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "ActiveOpens", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "PassiveOpens", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "AttemptFails", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "EstabResets", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ActiveOpens", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "PassiveOpens", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "AttemptFails", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -398,10 +398,10 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("ipv4", "tcpconnaborts", NULL, "tcp", NULL, "TCP Connection Aborts", "connections/s", 3010, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "TCPAbortOnData",    "baddata",     1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPAbortOnClose",   "userclosed",  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPAbortOnMemory",  "nomemory",    1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPAbortOnTimeout", "timeout",     1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPAbortOnData",    "baddata",     1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPAbortOnClose",   "userclosed",  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPAbortOnMemory",  "nomemory",    1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPAbortOnTimeout", "timeout",     1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -420,7 +420,7 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("ipv4", "tcpofo", NULL, "tcp", NULL, "TCP Out-Of-Order Queue", "packets/s", 3050, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "TCPOFOQueue", "inqueue",  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPOFOQueue", "inqueue",  1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -437,9 +437,9 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("ipv4", "tcpsyncookies", NULL, "tcp", NULL, "TCP SYN Cookies", "packets/s", 3100, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "SyncookiesRecv",   "received",  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "SyncookiesSent",   "sent",     -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "SyncookiesFailed", "failed",   -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "SyncookiesRecv",   "received",  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "SyncookiesSent",   "sent",     -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "SyncookiesFailed", "failed",   -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -458,8 +458,8 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                     st = rrdset_create("ipv4", "ecnpkts", NULL, "ecn", NULL, "IPv4 ECN Statistics", "packets/s", 8700, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InCEPkts", "CEP", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InNoECTPkts", "NoECTP", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InCEPkts", "CEP", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InNoECTPkts", "NoECTP", -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -487,8 +487,8 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                     st = rrdset_create("ipv4", "udppackets", NULL, "udp", NULL, "IPv4 UDP Packets",
                                        "packets/s", 2601, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InDatagrams", "received", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutDatagrams", "sent", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InDatagrams", "received", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutDatagrams", "sent", -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -506,11 +506,11 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        2701, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "RcvbufErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "NoPorts", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "IgnoredMulti", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "RcvbufErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "NoPorts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "IgnoredMulti", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -549,8 +549,8 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        2602,
                                        update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InMsgs", "received", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutMsgs", "sent", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InMsgs", "received", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutMsgs", "sent", -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -567,9 +567,9 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        "packets/s",
                                        2603, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutErrors", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutErrors", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -588,10 +588,10 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                     st = rrdset_create("ipv4", "icmpmsg", NULL, "icmp", NULL, "IPv4 ICMP Messsages",
                                        "packets/s", 2604, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InEchoReps", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutEchoReps", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InEchos", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutEchos", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InEchoReps", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutEchoReps", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InEchos", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutEchos", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -625,10 +625,10 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                     st = rrdset_create("ipv4", "packets", NULL, "packets", NULL, "IPv4 Packets", "packets/s",
                                        3000, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InReceives", "received", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutRequests", "sent", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "ForwDatagrams", "forwarded", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InDelivers", "delivered", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InReceives", "received", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutRequests", "sent", -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ForwDatagrams", "forwarded", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InDelivers", "delivered", 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -648,9 +648,9 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        "packets/s", 3010, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "FragOKs", "ok", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "FragFails", "failed", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "FragCreates", "created", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "FragOKs", "ok", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "FragFails", "failed", -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "FragCreates", "created", 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -670,9 +670,9 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        "packets/s", 3011, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "ReasmOKs", "ok", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "ReasmFails", "failed", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "ReasmReqds", "all", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ReasmOKs", "ok", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ReasmFails", "failed", -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ReasmReqds", "all", 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -692,14 +692,14 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InDiscards", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutDiscards", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InDiscards", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutDiscards", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
 
-                    rrddim_add(st, "InHdrErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutNoRoutes", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InHdrErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutNoRoutes", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
 
-                    rrddim_add(st, "InAddrErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InUnknownProtos", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InAddrErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InUnknownProtos", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -736,10 +736,10 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                     st = rrdset_create("ipv6", "packets", NULL, "packets", NULL, "IPv6 Packets", "packets/s", 3000,
                                        update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "forwarded", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "delivers", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "forwarded", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "delivers", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -762,9 +762,9 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        "packets/s", 3010, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "ok", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "failed", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "all", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ok", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "failed", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "all", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -786,10 +786,10 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        "packets/s", 3011, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "ok", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "failed", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "timeout", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "all", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ok", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "failed", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "timeout", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "all", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -819,15 +819,15 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                                        update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InDiscards", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutDiscards", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InDiscards", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutDiscards", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
 
-                    rrddim_add(st, "InHdrErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InAddrErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InTruncatedPkts", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InNoRoutes", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InHdrErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InAddrErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InTruncatedPkts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InNoRoutes", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
-                    rrddim_add(st, "OutNoRoutes", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutNoRoutes", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -865,8 +865,8 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                     st = rrdset_create("ipv6", "icmp", NULL, "icmp", NULL, "IPv6 ICMP Messages",
                                        "messages/s", 10000, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -884,8 +884,8 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                     st = rrdset_create("ipv6", "icmpredir", NULL, "icmp", NULL, "IPv6 ICMP Redirects",
                                        "redirects/s", 10050, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -913,17 +913,17 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("ipv6", "icmperrors", NULL, "icmp", NULL, "IPv6 ICMP Errors", "errors/s", 10100, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutErrors", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-
-                    rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InDestUnreachs", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InPktTooBigs", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InTimeExcds", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InParmProblems", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutDestUnreachs", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutTimeExcds", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutParmProblems", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutErrors", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+
+                    rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InDestUnreachs", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InPktTooBigs", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InTimeExcds", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InParmProblems", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutDestUnreachs", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutTimeExcds", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutParmProblems", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -952,10 +952,10 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("ipv6", "icmpechos", NULL, "icmp", NULL, "IPv6 ICMP Echo", "messages/s", 10200, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InEchos", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutEchos", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InEchoReplies", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutEchoReplies", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InEchos", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutEchos", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InEchoReplies", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutEchoReplies", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -978,10 +978,10 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("ipv6", "icmprouter", NULL, "icmp", NULL, "IPv6 Router Messages", "messages/s", 10400, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InSolicits", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutSolicits", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InAdvertisements", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutAdvertisements", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InSolicits", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutSolicits", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InAdvertisements", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutAdvertisements", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -1004,10 +1004,10 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                 if (unlikely(!st)) {
                     st = rrdset_create("ipv6", "icmpneighbor", NULL, "icmp", NULL, "IPv6 Neighbor Messages", "messages/s", 10500, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InSolicits", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutSolicits", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InAdvertisements", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutAdvertisements", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InSolicits", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutSolicits", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InAdvertisements", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutAdvertisements", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -1037,16 +1037,16 @@ int do_macos_sysctl(int update_every, usec_t dt) {
                     st = rrdset_create("ipv6", "icmptypes", NULL, "icmp", NULL, "IPv6 ICMP Types",
                                        "messages/s", 10700, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InType1", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InType128", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InType129", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InType136", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutType1", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutType128", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutType129", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutType133", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutType135", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutType143", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InType1", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InType128", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InType129", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InType136", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutType1", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutType128", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutType129", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutType133", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutType135", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutType143", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 } else
                     rrdset_next(st);
 
@@ -1077,7 +1077,7 @@ int do_macos_sysctl(int update_every, usec_t dt) {
 
             if(unlikely(!st)) {
                 st = rrdset_create("system", "uptime", NULL, "uptime", NULL, "System Uptime", "seconds", 1000, update_every, RRDSET_TYPE_LINE);
-                rrddim_add(st, "uptime", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+                rrddim_add(st, "uptime", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
             }
             else rrdset_next(st);
 
index 278e0aafd827c968539300e619c7ba3ab3956f85..61e2fa39d28cb51e9ebab4a5c7c00c772891787a 100644 (file)
@@ -10,7 +10,7 @@ void netdata_cleanup_and_exit(int ret) {
     debug(D_EXIT, "Called: netdata_cleanup_and_exit()");
 
     // save the database
-    rrdset_save_all();
+    rrdhost_save_all();
 
     // unlink the pid
     if(pidfile[0]) {
@@ -23,7 +23,7 @@ void netdata_cleanup_and_exit(int ret) {
     //kill_childs();
 
     // free database
-    rrdset_free_all();
+    rrdhost_free_all();
 #endif
 
     info("netdata exiting. Bye bye...");
index 9646e859c33b61e411019e5811f58d1457e5455d..bddacb66b5c70d597489f024f24f2df6fe091d1c 100644 (file)
@@ -17,17 +17,17 @@ void *checks_main(void *ptr) {
     RRDSET *check1, *check2, *check3, *apps_cpu = NULL;
 
     check1 = rrdset_create("netdata", "check1", NULL, "netdata", NULL, "Caller gives microseconds", "a million !", 99999, rrd_update_every, RRDSET_TYPE_LINE);
-    rrddim_add(check1, "absolute", NULL, -1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-    rrddim_add(check1, "incremental", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+    rrddim_add(check1, "absolute", NULL, -1, 1, RRD_ALGORITHM_ABSOLUTE);
+    rrddim_add(check1, "incremental", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
     check2 = rrdset_create("netdata", "check2", NULL, "netdata", NULL, "Netdata calcs microseconds", "a million !", 99999, rrd_update_every, RRDSET_TYPE_LINE);
-    rrddim_add(check2, "absolute", NULL, -1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-    rrddim_add(check2, "incremental", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+    rrddim_add(check2, "absolute", NULL, -1, 1, RRD_ALGORITHM_ABSOLUTE);
+    rrddim_add(check2, "incremental", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
     check3 = rrdset_create("netdata", "checkdt", NULL, "netdata", NULL, "Clock difference", "microseconds diff", 99999, rrd_update_every, RRDSET_TYPE_LINE);
-    rrddim_add(check3, "caller", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-    rrddim_add(check3, "netdata", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-    rrddim_add(check3, "apps.plugin", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+    rrddim_add(check3, "caller", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+    rrddim_add(check3, "netdata", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+    rrddim_add(check3, "apps.plugin", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
 
     now_realtime_timeval(&last);
     while(1) {
index a95804825add29aeafb83a3324208464d0a6645b..f4903e35ba302667d9da8e800b1af7098ef46315 100644 (file)
@@ -22,7 +22,7 @@ void *cpuidlejitter_main(void *ptr) {
     RRDSET *st = rrdset_find_localhost("system.idlejitter");
     if(!st) {
         st = rrdset_create("system", "idlejitter", NULL, "processes", NULL, "CPU Idle Jitter", "microseconds lost/s", 9999, rrd_update_every, RRDSET_TYPE_LINE);
-        rrddim_add(st, "jitter", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(st, "jitter", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
     }
 
     struct timeval before, after;
index c6b748168dd3dda681889cc6ca52af8f607d0fc0..ca67ec19262b808c0ac7a8f7a9524bdda0d56b13 100644 (file)
@@ -142,14 +142,14 @@ void *nfacct_main(void *ptr) {
                 st = rrdset_create("netfilter", "nfacct_packets", NULL, "nfacct", NULL, "Netfilter Accounting Packets", "packets/s", 3206, rrd_update_every, RRDSET_TYPE_STACKED);
 
                 for(i = 0; i < nfacct_list->len ; i++)
-                    rrddim_add(st, nfacct_list->data[i].name, NULL, 1, rrd_update_every, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, nfacct_list->data[i].name, NULL, 1, rrd_update_every, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(st);
 
             for(i = 0; i < nfacct_list->len ; i++) {
                 RRDDIM *rd = rrddim_find(st, nfacct_list->data[i].name);
 
-                if(!rd) rd = rrddim_add(st, nfacct_list->data[i].name, NULL, 1, rrd_update_every, RRDDIM_ALGORITHM_INCREMENTAL);
+                if(!rd) rd = rrddim_add(st, nfacct_list->data[i].name, NULL, 1, rrd_update_every, RRD_ALGORITHM_INCREMENTAL);
                 if(rd) rrddim_set_by_pointer(st, rd, nfacct_list->data[i].pkts);
             }
 
@@ -162,14 +162,14 @@ void *nfacct_main(void *ptr) {
                 st = rrdset_create("netfilter", "nfacct_bytes", NULL, "nfacct", NULL, "Netfilter Accounting Bandwidth", "kilobytes/s", 3207, rrd_update_every, RRDSET_TYPE_STACKED);
 
                 for(i = 0; i < nfacct_list->len ; i++)
-                    rrddim_add(st, nfacct_list->data[i].name, NULL, 1, 1000 * rrd_update_every, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, nfacct_list->data[i].name, NULL, 1, 1000 * rrd_update_every, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(st);
 
             for(i = 0; i < nfacct_list->len ; i++) {
                 RRDDIM *rd = rrddim_find(st, nfacct_list->data[i].name);
 
-                if(!rd) rd = rrddim_add(st, nfacct_list->data[i].name, NULL, 1, 1000 * rrd_update_every, RRDDIM_ALGORITHM_INCREMENTAL);
+                if(!rd) rd = rrddim_add(st, nfacct_list->data[i].name, NULL, 1, 1000 * rrd_update_every, RRD_ALGORITHM_INCREMENTAL);
                 if(rd) rrddim_set_by_pointer(st, rd, nfacct_list->data[i].bytes);
             }
 
index cbcd0339e4d8c24e5da101702768486a64f0a383..a97954165df3d6fff043cc369bf9221a2b646b67 100644 (file)
@@ -121,7 +121,7 @@ void *proc_main(void *ptr) {
                         struct proc_module *pm = &proc_modules[i];
                         if(unlikely(!pm->enabled)) continue;
 
-                        pm->rd = rrddim_add(st, pm->dim, NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
+                        pm->rd = rrddim_add(st, pm->dim, NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
                     }
                 }
             }
index 4e0aa0feda4feb6b8087b4c0d6e1b962ca0e7088..0d346da978357d8d05e3030c4b1367544163e5e0 100644 (file)
@@ -160,9 +160,9 @@ static inline void do_disk_space_stats(struct mountinfo *mi, int update_every) {
                 m->st_space = rrdset_create("disk_space", disk, NULL, family, "disk.space", title, "GB", 2023, update_every, RRDSET_TYPE_STACKED);
             }
 
-            m->rd_space_avail    = rrddim_add(m->st_space, "avail", NULL, bsize, 1024 * 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            m->rd_space_used     = rrddim_add(m->st_space, "used", NULL, bsize, 1024 * 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            m->rd_space_reserved = rrddim_add(m->st_space, "reserved_for_root", "reserved for root", bsize, 1024 * 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+            m->rd_space_avail    = rrddim_add(m->st_space, "avail", NULL, bsize, 1024 * 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+            m->rd_space_used     = rrddim_add(m->st_space, "used", NULL, bsize, 1024 * 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+            m->rd_space_reserved = rrddim_add(m->st_space, "reserved_for_root", "reserved for root", bsize, 1024 * 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
         }
         else
             rrdset_next(m->st_space);
@@ -187,9 +187,9 @@ static inline void do_disk_space_stats(struct mountinfo *mi, int update_every) {
                 m->st_inodes = rrdset_create("disk_inodes", disk, NULL, family, "disk.inodes", title, "Inodes", 2024, update_every, RRDSET_TYPE_STACKED);
             }
 
-            m->rd_inodes_avail    = rrddim_add(m->st_inodes, "avail", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-            m->rd_inodes_used     = rrddim_add(m->st_inodes, "used", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-            m->rd_inodes_reserved = rrddim_add(m->st_inodes, "reserved_for_root", "reserved for root", 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+            m->rd_inodes_avail    = rrddim_add(m->st_inodes, "avail", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+            m->rd_inodes_used     = rrddim_add(m->st_inodes, "used", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+            m->rd_inodes_reserved = rrddim_add(m->st_inodes, "reserved_for_root", "reserved for root", 1, 1, RRD_ALGORITHM_ABSOLUTE);
         }
         else
             rrdset_next(m->st_inodes);
@@ -277,8 +277,8 @@ void *proc_diskspace_main(void *ptr) {
                                                  , "NetData Disk Space Plugin CPU usage", "milliseconds/s", 132020
                                                  , update_every, RRDSET_TYPE_STACKED);
 
-                rd_user   = rrddim_add(stcpu_thread, "user", NULL, 1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
-                rd_system = rrddim_add(stcpu_thread, "system", NULL, 1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
+                rd_user   = rrddim_add(stcpu_thread, "user", NULL, 1, 1000, RRD_ALGORITHM_INCREMENTAL);
+                rd_system = rrddim_add(stcpu_thread, "system", NULL, 1, 1000, RRD_ALGORITHM_INCREMENTAL);
             }
             else
                 rrdset_next(stcpu_thread);
@@ -295,7 +295,7 @@ void *proc_diskspace_main(void *ptr) {
                                                  , "NetData Disk Space Plugin Duration", "milliseconds/run", 132021
                                                  , update_every, RRDSET_TYPE_AREA);
 
-                rd_duration = rrddim_add(st_duration, "duration", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
+                rd_duration = rrddim_add(st_duration, "duration", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
             }
             else
                 rrdset_next(st_duration);
index 9ef7cead81db7dee7bccbf2cc5582476118b5f32..037fd8bf35ce49554c4c31319fbc1aea648bf930 100644 (file)
@@ -388,7 +388,7 @@ static inline void tc_device_commit(struct tc_device *d) {
             if(unlikely(!c->render)) continue;
 
             if(unlikely(!c->rd_bytes))
-                c->rd_bytes = rrddim_add(d->st_bytes, c->id, c->name?c->name:c->id, 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                c->rd_bytes = rrddim_add(d->st_bytes, c->id, c->name?c->name:c->id, 8, 1024, RRD_ALGORITHM_INCREMENTAL);
             else if(unlikely(c->name_updated))
                 rrddim_set_name(d->st_bytes, c->rd_bytes, c->name);
 
@@ -428,7 +428,7 @@ static inline void tc_device_commit(struct tc_device *d) {
             if(unlikely(!c->render)) continue;
 
             if(unlikely(!c->rd_packets))
-                c->rd_packets = rrddim_add(d->st_packets, c->id, c->name?c->name:c->id, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                c->rd_packets = rrddim_add(d->st_packets, c->id, c->name?c->name:c->id, 1, 1, RRD_ALGORITHM_INCREMENTAL);
             else if(unlikely(c->name_updated))
                 rrddim_set_name(d->st_packets, c->rd_packets, c->name);
 
@@ -468,7 +468,7 @@ static inline void tc_device_commit(struct tc_device *d) {
             if(unlikely(!c->render)) continue;
 
             if(unlikely(!c->rd_dropped))
-                c->rd_dropped = rrddim_add(d->st_dropped, c->id, c->name?c->name:c->id, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                c->rd_dropped = rrddim_add(d->st_dropped, c->id, c->name?c->name:c->id, 1, 1, RRD_ALGORITHM_INCREMENTAL);
             else if(unlikely(c->name_updated))
                 rrddim_set_name(d->st_dropped, c->rd_dropped, c->name);
 
@@ -508,7 +508,7 @@ static inline void tc_device_commit(struct tc_device *d) {
             if(unlikely(!c->render)) continue;
 
             if(unlikely(!c->rd_tokens)) {
-                c->rd_tokens = rrddim_add(d->st_tokens, c->id, c->name?c->name:c->id, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+                c->rd_tokens = rrddim_add(d->st_tokens, c->id, c->name?c->name:c->id, 1, 1, RRD_ALGORITHM_ABSOLUTE);
             }
             else if(unlikely(c->name_updated))
                 rrddim_set_name(d->st_tokens, c->rd_tokens, c->name);
@@ -550,7 +550,7 @@ static inline void tc_device_commit(struct tc_device *d) {
             if(unlikely(!c->render)) continue;
 
             if(unlikely(!c->rd_ctokens))
-                c->rd_ctokens = rrddim_add(d->st_ctokens, c->id, c->name?c->name:c->id, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+                c->rd_ctokens = rrddim_add(d->st_ctokens, c->id, c->name?c->name:c->id, 1, 1, RRD_ALGORITHM_ABSOLUTE);
             else if(unlikely(c->name_updated))
                 rrddim_set_name(d->st_ctokens, c->rd_ctokens, c->name);
 
@@ -977,8 +977,8 @@ void *tc_main(void *ptr) {
                 if(unlikely(!stcpu)) stcpu = rrdset_find_localhost("netdata.plugin_tc_cpu");
                 if(unlikely(!stcpu)) {
                     stcpu = rrdset_create("netdata", "plugin_tc_cpu", NULL, "tc.helper", NULL, "NetData TC CPU usage", "milliseconds/s", 135000, rrd_update_every, RRDSET_TYPE_STACKED);
-                    rrddim_add(stcpu, "user",  NULL,  1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(stcpu, "system", NULL, 1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(stcpu, "user",  NULL,  1, 1000, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(stcpu, "system", NULL, 1, 1000, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(stcpu);
 
@@ -989,7 +989,7 @@ void *tc_main(void *ptr) {
                 if(unlikely(!sttime)) stcpu = rrdset_find_localhost("netdata.plugin_tc_time");
                 if(unlikely(!sttime)) {
                     sttime = rrdset_create("netdata", "plugin_tc_time", NULL, "tc.helper", NULL, "NetData TC script execution", "milliseconds/run", 135001, rrd_update_every, RRDSET_TYPE_AREA);
-                    rrddim_add(sttime, "run_time",  "run time",  1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+                    rrddim_add(sttime, "run_time",  "run time",  1, 1, RRD_ALGORITHM_ABSOLUTE);
                 }
                 else rrdset_next(sttime);
 
index 37c7092d07a2d35ee8e4458167ca745807c3ae80..c40f221d9b97711e1853d2e47e60599b47521cfe 100644 (file)
@@ -84,8 +84,7 @@ static int pluginsd_split_words(char *str, char **words, int max_words) {
 }
 
 
-void *pluginsd_worker_thread(void *arg)
-{
+void *pluginsd_worker_thread(void *arg) {
     struct plugind *cd = (struct plugind *)arg;
     cd->obsolete = 0;
 
@@ -97,6 +96,7 @@ void *pluginsd_worker_thread(void *arg)
 #endif
 
     char *words[MAX_WORDS] = { NULL };
+    uint32_t HOST_HASH = simple_hash("HOST");
     uint32_t BEGIN_HASH = simple_hash("BEGIN");
     uint32_t END_HASH = simple_hash("END");
     uint32_t FLUSH_HASH = simple_hash("FLUSH");
@@ -109,6 +109,7 @@ void *pluginsd_worker_thread(void *arg)
 #endif
 
     size_t count = 0;
+    RRDHOST *host = &localhost;
 
     for(;;) {
         if(unlikely(netdata_exit)) break;
@@ -175,7 +176,7 @@ void *pluginsd_worker_thread(void *arg)
                     break;
                 }
 
-                st = rrdset_find_localhost(id);
+                st = rrdset_find(host, id);
                 if(unlikely(!st)) {
                     error("PLUGINSD: '%s' is requesting a BEGIN on chart '%s', which does not exist. Disabling it.", cd->fullfilename, id);
                     cd->enabled = 0;
@@ -252,7 +253,7 @@ void *pluginsd_worker_thread(void *arg)
                 if(unlikely(!family || !*family)) family = NULL;
                 if(unlikely(!context || !*context)) context = NULL;
 
-                st = rrdset_find_bytype_localhost(type, id);
+                st = rrdset_find_bytype(host, type, id);
                 if(unlikely(!st)) {
                     debug(D_PLUGINSD, "PLUGINSD: Creating chart type='%s', id='%s', name='%s', family='%s', context='%s', chart='%s', priority=%d, update_every=%d"
                         , type, id
@@ -305,7 +306,7 @@ void *pluginsd_worker_thread(void *arg)
                     , st->id
                     , id
                     , name?name:""
-                    , rrddim_algorithm_name(rrddim_algorithm_id(algorithm))
+                    , rrd_algorithm_name(rrd_algorithm_id(algorithm))
                     , multiplier
                     , divisor
                     , options?options:""
@@ -313,7 +314,7 @@ void *pluginsd_worker_thread(void *arg)
 
                 RRDDIM *rd = rrddim_find(st, id);
                 if(unlikely(!rd)) {
-                    rd = rrddim_add(st, id, name, multiplier, divisor, rrddim_algorithm_id(algorithm));
+                    rd = rrddim_add(st, id, name, multiplier, divisor, rrd_algorithm_id(algorithm));
                     rd->flags = 0x00000000;
                     if(options && *options) {
                         if(strstr(options, "hidden") != NULL) rrddim_flag_set(rd, RRDDIM_FLAG_HIDDEN);
index 628562d421ededd485702687981a0d88da390d3b..22ce0571471bfa84c0729f63624dfe4df7edd2b5 100644 (file)
@@ -421,8 +421,8 @@ int do_proc_diskstats(int update_every, usec_t dt) {
             if(unlikely(!st)) {
                 st = rrdset_create(RRD_TYPE_DISK, disk, NULL, family, "disk.io", "Disk I/O Bandwidth", "kilobytes/s", 2000, update_every, RRDSET_TYPE_AREA);
 
-                rrddim_add(st, "reads", NULL, d->sector_size, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(st, "writes", NULL, d->sector_size * -1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, "reads", NULL, d->sector_size, 1024, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, "writes", NULL, d->sector_size * -1, 1024, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(st);
 
@@ -441,8 +441,8 @@ int do_proc_diskstats(int update_every, usec_t dt) {
                 st = rrdset_create("disk_ops", disk, NULL, family, "disk.ops", "Disk Completed I/O Operations", "operations/s", 2001, update_every, RRDSET_TYPE_LINE);
                 st->isdetail = 1;
 
-                rrddim_add(st, "reads", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(st, "writes", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, "reads", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, "writes", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(st);
 
@@ -461,7 +461,7 @@ int do_proc_diskstats(int update_every, usec_t dt) {
                 st = rrdset_create("disk_qops", disk, NULL, family, "disk.qops", "Disk Current I/O Operations", "operations", 2002, update_every, RRDSET_TYPE_LINE);
                 st->isdetail = 1;
 
-                rrddim_add(st, "operations", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+                rrddim_add(st, "operations", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
             }
             else rrdset_next(st);
 
@@ -479,7 +479,7 @@ int do_proc_diskstats(int update_every, usec_t dt) {
                 st = rrdset_create("disk_backlog", disk, NULL, family, "disk.backlog", "Disk Backlog", "backlog (ms)", 2003, update_every, RRDSET_TYPE_AREA);
                 st->isdetail = 1;
 
-                rrddim_add(st, "backlog", NULL, 1, 10, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, "backlog", NULL, 1, 10, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(st);
 
@@ -497,7 +497,7 @@ int do_proc_diskstats(int update_every, usec_t dt) {
                 st = rrdset_create("disk_util", disk, NULL, family, "disk.util", "Disk Utilization Time", "% of time working", 2004, update_every, RRDSET_TYPE_AREA);
                 st->isdetail = 1;
 
-                rrddim_add(st, "utilization", NULL, 1, 10, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, "utilization", NULL, 1, 10, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(st);
 
@@ -515,8 +515,8 @@ int do_proc_diskstats(int update_every, usec_t dt) {
                 st = rrdset_create("disk_mops", disk, NULL, family, "disk.mops", "Disk Merged Operations", "merged operations/s", 2021, update_every, RRDSET_TYPE_LINE);
                 st->isdetail = 1;
 
-                rrddim_add(st, "reads", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(st, "writes", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, "reads", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, "writes", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(st);
 
@@ -535,8 +535,8 @@ int do_proc_diskstats(int update_every, usec_t dt) {
                 st = rrdset_create("disk_iotime", disk, NULL, family, "disk.iotime", "Disk Total I/O Time", "milliseconds/s", 2022, update_every, RRDSET_TYPE_LINE);
                 st->isdetail = 1;
 
-                rrddim_add(st, "reads", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(st, "writes", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, "reads", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, "writes", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(st);
 
@@ -557,8 +557,8 @@ int do_proc_diskstats(int update_every, usec_t dt) {
                     st = rrdset_create("disk_await", disk, NULL, family, "disk.await", "Average Completed I/O Operation Time", "ms per operation", 2005, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "reads", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(st, "writes", NULL, -1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "reads", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "writes", NULL, -1, 1, RRD_ALGORITHM_ABSOLUTE);
                 }
                 else rrdset_next(st);
 
@@ -574,8 +574,8 @@ int do_proc_diskstats(int update_every, usec_t dt) {
                     st = rrdset_create("disk_avgsz", disk, NULL, family, "disk.avgsz", "Average Completed I/O Operation Bandwidth", "kilobytes per operation", 2006, update_every, RRDSET_TYPE_AREA);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "reads", NULL, d->sector_size, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(st, "writes", NULL, d->sector_size * -1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "reads", NULL, d->sector_size, 1024, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "writes", NULL, d->sector_size * -1, 1024, RRD_ALGORITHM_ABSOLUTE);
                 }
                 else rrdset_next(st);
 
@@ -591,7 +591,7 @@ int do_proc_diskstats(int update_every, usec_t dt) {
                     st = rrdset_create("disk_svctm", disk, NULL, family, "disk.svctm", "Average Service Time", "ms per operation", 2007, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "svctm", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "svctm", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
                 }
                 else rrdset_next(st);
 
index 8e97481641c065ed506208783074ec969a626df0..25ffd8f0bab573dd790475da2203f756f6f88e3f 100644 (file)
@@ -159,7 +159,7 @@ int do_proc_interrupts(int update_every, usec_t dt) {
         if(unlikely(!irr->rd || strncmp(irr->rd->name, irr->name, MAX_INTERRUPT_NAME) != 0)) {
             irr->rd = rrddim_find(st, irr->id);
             if(unlikely(!irr->rd))
-                irr->rd = rrddim_add(st, irr->id, irr->name, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                irr->rd = rrddim_add(st, irr->id, irr->name, 1, 1, RRD_ALGORITHM_INCREMENTAL);
             else
                 rrddim_set_name(st, irr->rd, irr->name);
 
@@ -195,7 +195,7 @@ int do_proc_interrupts(int update_every, usec_t dt) {
                 if(unlikely(!irr->cpu[c].rd)) {
                     irr->cpu[c].rd = rrddim_find(st, irr->id);
                     if(unlikely(!irr->cpu[c].rd))
-                        irr->cpu[c].rd = rrddim_add(st, irr->id, irr->name, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                        irr->cpu[c].rd = rrddim_add(st, irr->id, irr->name, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                     else
                         rrddim_set_name(st, irr->cpu[c].rd, irr->name);
                 }
index aecc93288fc60994194a9ea4f9e5a3863838ff3f..91d470a96f7acb06760c2d74cf94a7cf31b79652 100644 (file)
@@ -53,9 +53,9 @@ int do_proc_loadavg(int update_every, usec_t dt) {
                 load_chart = rrdset_find_byname_localhost("system.load");
                 if(unlikely(!load_chart)) {
                     load_chart = rrdset_create("system", "load", NULL, "load", NULL, "System Load Average", "load", 100, (update_every < MIN_LOADAVG_UPDATE_EVERY) ? MIN_LOADAVG_UPDATE_EVERY : update_every, RRDSET_TYPE_LINE);
-                    rrddim_add(load_chart, "load1", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(load_chart, "load5", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-                    rrddim_add(load_chart, "load15", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
+                    rrddim_add(load_chart, "load1", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(load_chart, "load5", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+                    rrddim_add(load_chart, "load15", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
                 }
             }
             else
@@ -78,7 +78,7 @@ int do_proc_loadavg(int update_every, usec_t dt) {
             processes_chart = rrdset_find_byname_localhost("system.active_processes");
             if(unlikely(!processes_chart)) {
                 processes_chart = rrdset_create("system", "active_processes", NULL, "processes", NULL, "System Active Processes", "processes", 750, update_every, RRDSET_TYPE_LINE);
-                rrddim_add(processes_chart, "active", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+                rrddim_add(processes_chart, "active", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
             }
         }
         else rrdset_next(processes_chart);
index be3720186b48fa95094767193902b02a53c3ea43..6b22058e1d30e08b68cf459997a8fb588601c2fb 100644 (file)
@@ -144,10 +144,10 @@ int do_proc_meminfo(int update_every, usec_t dt) {
         if(!st) {
             st = rrdset_create("system", "ram", NULL, "ram", NULL, "System RAM", "MB", 200, update_every, RRDSET_TYPE_STACKED);
 
-            rrddim_add(st, "free",    NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "used",    NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "cached",  NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "buffers", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "free",    NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "used",    NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "cached",  NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "buffers", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
@@ -170,8 +170,8 @@ int do_proc_meminfo(int update_every, usec_t dt) {
             st = rrdset_create("system", "swap", NULL, "swap", NULL, "System Swap", "MB", 201, update_every, RRDSET_TYPE_STACKED);
             st->isdetail = 1;
 
-            rrddim_add(st, "free",    NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "used",    NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "free",    NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "used",    NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
@@ -190,7 +190,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
             st = rrdset_create("mem", "hwcorrupt", NULL, "ecc", NULL, "Hardware Corrupted ECC", "MB", 9000, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "HardwareCorrupted", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "HardwareCorrupted", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
@@ -206,7 +206,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
             st = rrdset_create("mem", "committed", NULL, "system", NULL, "Committed (Allocated) Memory", "MB", 5000, update_every, RRDSET_TYPE_AREA);
             st->isdetail = 1;
 
-            rrddim_add(st, "Committed_AS", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "Committed_AS", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
@@ -222,11 +222,11 @@ int do_proc_meminfo(int update_every, usec_t dt) {
             st = rrdset_create("mem", "writeback", NULL, "kernel", NULL, "Writeback Memory", "MB", 4000, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "Dirty", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "Writeback", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "FuseWriteback", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "NfsWriteback", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "Bounce", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "Dirty", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "Writeback", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "FuseWriteback", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "NfsWriteback", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "Bounce", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
@@ -246,10 +246,10 @@ int do_proc_meminfo(int update_every, usec_t dt) {
             st = rrdset_create("mem", "kernel", NULL, "kernel", NULL, "Memory Used by Kernel", "MB", 6000, update_every, RRDSET_TYPE_STACKED);
             st->isdetail = 1;
 
-            rrddim_add(st, "Slab", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "KernelStack", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "PageTables", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "VmallocUsed", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "Slab", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "KernelStack", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "PageTables", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "VmallocUsed", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
@@ -268,8 +268,8 @@ int do_proc_meminfo(int update_every, usec_t dt) {
             st = rrdset_create("mem", "slab", NULL, "slab", NULL, "Reclaimable Kernel Memory", "MB", 6500, update_every, RRDSET_TYPE_STACKED);
             st->isdetail = 1;
 
-            rrddim_add(st, "reclaimable", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "unreclaimable", NULL, 1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "reclaimable", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "unreclaimable", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
index 3389ae997ae8623058eac9c71bf03896decae896..f2c575f073fb7617e36b5aaa407e8796091e5472 100644 (file)
@@ -228,8 +228,8 @@ int do_proc_net_dev(int update_every, usec_t dt) {
                 if(!d->st_bandwidth)
                     d->st_bandwidth = rrdset_create("net", d->name, NULL, d->name, "net.net", "Bandwidth", "kilobits/s", 7000, update_every, RRDSET_TYPE_AREA);
 
-                d->rd_rbytes = rrddim_add(d->st_bandwidth, "received", NULL, 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                d->rd_tbytes = rrddim_add(d->st_bandwidth, "sent", NULL, -8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                d->rd_rbytes = rrddim_add(d->st_bandwidth, "received", NULL, 8, 1024, RRD_ALGORITHM_INCREMENTAL);
+                d->rd_tbytes = rrddim_add(d->st_bandwidth, "sent", NULL, -8, 1024, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(d->st_bandwidth);
 
@@ -252,9 +252,9 @@ int do_proc_net_dev(int update_every, usec_t dt) {
 
                 d->st_packets->isdetail = 1;
 
-                d->rd_rpackets = rrddim_add(d->st_packets, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                d->rd_tpackets = rrddim_add(d->st_packets, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                d->rd_rmulticast = rrddim_add(d->st_packets, "multicast", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                d->rd_rpackets = rrddim_add(d->st_packets, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                d->rd_tpackets = rrddim_add(d->st_packets, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                d->rd_rmulticast = rrddim_add(d->st_packets, "multicast", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(d->st_packets);
 
@@ -278,8 +278,8 @@ int do_proc_net_dev(int update_every, usec_t dt) {
 
                 d->st_errors->isdetail = 1;
 
-                d->rd_rerrors = rrddim_add(d->st_errors, "inbound", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                d->rd_terrors = rrddim_add(d->st_errors, "outbound", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                d->rd_rerrors = rrddim_add(d->st_errors, "inbound", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                d->rd_terrors = rrddim_add(d->st_errors, "outbound", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(d->st_errors);
 
@@ -302,8 +302,8 @@ int do_proc_net_dev(int update_every, usec_t dt) {
 
                 d->st_drops->isdetail = 1;
 
-                d->rd_rdrops = rrddim_add(d->st_drops, "inbound", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                d->rd_tdrops = rrddim_add(d->st_drops, "outbound", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                d->rd_rdrops = rrddim_add(d->st_drops, "inbound", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                d->rd_tdrops = rrddim_add(d->st_drops, "outbound", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(d->st_drops);
 
@@ -326,8 +326,8 @@ int do_proc_net_dev(int update_every, usec_t dt) {
 
                 d->st_fifo->isdetail = 1;
 
-                d->rd_rfifo = rrddim_add(d->st_fifo, "receive", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                d->rd_tfifo = rrddim_add(d->st_fifo, "transmit", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                d->rd_rfifo = rrddim_add(d->st_fifo, "receive", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                d->rd_tfifo = rrddim_add(d->st_fifo, "transmit", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(d->st_fifo);
 
@@ -349,8 +349,8 @@ int do_proc_net_dev(int update_every, usec_t dt) {
 
                 d->st_compressed->isdetail = 1;
 
-                d->rd_rcompressed = rrddim_add(d->st_compressed, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                d->rd_tcompressed = rrddim_add(d->st_compressed, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                d->rd_rcompressed = rrddim_add(d->st_compressed, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                d->rd_tcompressed = rrddim_add(d->st_compressed, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(d->st_compressed);
 
@@ -372,9 +372,9 @@ int do_proc_net_dev(int update_every, usec_t dt) {
 
                 d->st_events->isdetail = 1;
 
-                d->rd_rframe      = rrddim_add(d->st_events, "frames", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                d->rd_tcollisions = rrddim_add(d->st_events, "collisions", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                d->rd_tcarrier    = rrddim_add(d->st_events, "carrier", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                d->rd_rframe      = rrddim_add(d->st_events, "frames", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                d->rd_tcollisions = rrddim_add(d->st_events, "collisions", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                d->rd_tcarrier    = rrddim_add(d->st_events, "carrier", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(d->st_events);
 
index b01657c7401179b7e6081d93dfd4f36c7e079e70..8577070133e43d2fe1739a0abddb98da1bfd50db 100644 (file)
@@ -44,7 +44,7 @@ int do_proc_net_ip_vs_stats(int update_every, usec_t dt) {
         if(!st) {
             st = rrdset_create(RRD_TYPE_NET_IPVS, "sockets", NULL, RRD_TYPE_NET_IPVS, NULL, "IPVS New Connections", "connections/s", 3101, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "connections", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "connections", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -59,8 +59,8 @@ int do_proc_net_ip_vs_stats(int update_every, usec_t dt) {
         if(!st) {
             st = rrdset_create(RRD_TYPE_NET_IPVS, "packets", NULL, RRD_TYPE_NET_IPVS, NULL, "IPVS Packets", "packets/s", 3102, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -76,8 +76,8 @@ int do_proc_net_ip_vs_stats(int update_every, usec_t dt) {
         if(!st) {
             st = rrdset_create(RRD_TYPE_NET_IPVS, "net", NULL, RRD_TYPE_NET_IPVS, NULL, "IPVS Bandwidth", "kilobits/s", 3100, update_every, RRDSET_TYPE_AREA);
 
-            rrddim_add(st, "received", NULL, 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 8, 1024, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -8, 1024, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
index 875f6620feff99dba55ec9d3ebe3467a18baf91e..60e724eb08f59c17f23fe81cb2f06e2cc773d358 100644 (file)
@@ -234,8 +234,8 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                 if(unlikely(!st)) {
                     st = rrdset_create("system", "ipv4", NULL, "network", NULL, "IPv4 Bandwidth", "kilobits/s", 500, update_every, RRDSET_TYPE_AREA);
 
-                    rrddim_add(st, "InOctets", "received", 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutOctets", "sent", -8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InOctets", "received", 8, 1024, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutOctets", "sent", -8, 1024, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -253,9 +253,9 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                     st = rrdset_create("ipv4", "inerrors", NULL, "errors", NULL, "IPv4 Input Errors", "packets/s", 4000, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InNoRoutes", "noroutes", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InTruncatedPkts", "truncated", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InCsumErrors", "checksum", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InNoRoutes", "noroutes", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InTruncatedPkts", "truncated", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InCsumErrors", "checksum", 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -274,8 +274,8 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                     st = rrdset_create("ipv4", "mcast", NULL, "multicast", NULL, "IPv4 Multicast Bandwidth", "kilobits/s", 9000, update_every, RRDSET_TYPE_AREA);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InMcastOctets", "received", 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutMcastOctets", "sent", -8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InMcastOctets", "received", 8, 1024, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutMcastOctets", "sent", -8, 1024, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -293,8 +293,8 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                     st = rrdset_create("ipv4", "bcast", NULL, "broadcast", NULL, "IPv4 Broadcast Bandwidth", "kilobits/s", 8000, update_every, RRDSET_TYPE_AREA);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InBcastOctets", "received", 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutBcastOctets", "sent", -8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InBcastOctets", "received", 8, 1024, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutBcastOctets", "sent", -8, 1024, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -312,8 +312,8 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                     st = rrdset_create("ipv4", "mcastpkts", NULL, "multicast", NULL, "IPv4 Multicast Packets", "packets/s", 8600, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InMcastPkts", "received", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutMcastPkts", "sent", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InMcastPkts", "received", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutMcastPkts", "sent", -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -331,8 +331,8 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                     st = rrdset_create("ipv4", "bcastpkts", NULL, "broadcast", NULL, "IPv4 Broadcast Packets", "packets/s", 8500, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InBcastPkts", "received", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutBcastPkts", "sent", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InBcastPkts", "received", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutBcastPkts", "sent", -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -350,10 +350,10 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                     st = rrdset_create("ipv4", "ecnpkts", NULL, "ecn", NULL, "IPv4 ECN Statistics", "packets/s", 8700, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InCEPkts", "CEP", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InNoECTPkts", "NoECTP", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InECT0Pkts", "ECTP0", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InECT1Pkts", "ECTP1", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InCEPkts", "CEP", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InNoECTPkts", "NoECTP", -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InECT0Pkts", "ECTP0", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InECT1Pkts", "ECTP1", 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -385,7 +385,7 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                 if(unlikely(!st)) {
                     st = rrdset_create("ipv4", "tcpmemorypressures", NULL, "tcp", NULL, "TCP Memory Pressures", "events/s", 3000, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "TCPMemoryPressures",   "pressures",  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPMemoryPressures",   "pressures",  1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -401,12 +401,12 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                 if(unlikely(!st)) {
                     st = rrdset_create("ipv4", "tcpconnaborts", NULL, "tcp", NULL, "TCP Connection Aborts", "connections/s", 3010, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "TCPAbortOnData",    "baddata",     1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPAbortOnClose",   "userclosed",  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPAbortOnMemory",  "nomemory",    1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPAbortOnTimeout", "timeout",     1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPAbortOnLinger",  "linger",      1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPAbortFailed",    "failed",     -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPAbortOnData",    "baddata",     1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPAbortOnClose",   "userclosed",  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPAbortOnMemory",  "nomemory",    1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPAbortOnTimeout", "timeout",     1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPAbortOnLinger",  "linger",      1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPAbortFailed",    "failed",     -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -426,10 +426,10 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                 if(unlikely(!st)) {
                     st = rrdset_create("ipv4", "tcpreorders", NULL, "tcp", NULL, "TCP Reordered Packets by Detection Method", "packets/s", 3020, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "TCPTSReorder",   "timestamp",   1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPSACKReorder", "sack",        1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPFACKReorder", "fack",        1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPRenoReorder", "reno",        1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPTSReorder",   "timestamp",   1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPSACKReorder", "sack",        1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPFACKReorder", "fack",        1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPRenoReorder", "reno",        1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -448,10 +448,10 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                 if(unlikely(!st)) {
                     st = rrdset_create("ipv4", "tcpofo", NULL, "tcp", NULL, "TCP Out-Of-Order Queue", "packets/s", 3050, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "TCPOFOQueue", "inqueue",  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPOFODrop",  "dropped", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "TCPOFOMerge", "merged",   1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OfoPruned",   "pruned",  -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPOFOQueue", "inqueue",  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPOFODrop",  "dropped", -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "TCPOFOMerge", "merged",   1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OfoPruned",   "pruned",  -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -470,9 +470,9 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
                 if(unlikely(!st)) {
                     st = rrdset_create("ipv4", "tcpsyncookies", NULL, "tcp", NULL, "TCP SYN Cookies", "packets/s", 3100, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "SyncookiesRecv",   "received",  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "SyncookiesSent",   "sent",     -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "SyncookiesFailed", "failed",   -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "SyncookiesRecv",   "received",  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "SyncookiesSent",   "sent",     -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "SyncookiesFailed", "failed",   -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
index 4a6153af60cef11321c3bd6de94f5a8f6fb0933c..1cb43b722df6502b1b34d7e5e164373802c9002a 100644 (file)
@@ -274,8 +274,8 @@ int do_proc_net_rpc_nfs(int update_every, usec_t dt) {
             st = rrdset_create("nfs", "net", NULL, "network", NULL, "NFS Client Network", "operations/s", 5007, update_every, RRDSET_TYPE_STACKED);
             st->isdetail = 1;
 
-            rrddim_add(st, "udp", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "tcp", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "udp", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "tcp", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -296,9 +296,9 @@ int do_proc_net_rpc_nfs(int update_every, usec_t dt) {
             st = rrdset_create("nfs", "rpc", NULL, "rpc", NULL, "NFS Client Remote Procedure Calls Statistics", "calls/s", 5008, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "calls", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "retransmits", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "auth_refresh", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "calls", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "retransmits", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "auth_refresh", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -317,7 +317,7 @@ int do_proc_net_rpc_nfs(int update_every, usec_t dt) {
             st = rrdset_create("nfs", "proc2", NULL, "nfsv2rpc", NULL, "NFS v2 Client Remote Procedure Calls", "calls/s", 5009, update_every, RRDSET_TYPE_STACKED);
 
             for(i = 0; nfs_proc2_values[i].present ; i++)
-                rrddim_add(st, nfs_proc2_values[i].name, NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, nfs_proc2_values[i].name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -336,7 +336,7 @@ int do_proc_net_rpc_nfs(int update_every, usec_t dt) {
             st = rrdset_create("nfs", "proc3", NULL, "nfsv3rpc", NULL, "NFS v3 Client Remote Procedure Calls", "calls/s", 5010, update_every, RRDSET_TYPE_STACKED);
 
             for(i = 0; nfs_proc3_values[i].present ; i++)
-                rrddim_add(st, nfs_proc3_values[i].name, NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, nfs_proc3_values[i].name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -355,7 +355,7 @@ int do_proc_net_rpc_nfs(int update_every, usec_t dt) {
             st = rrdset_create("nfs", "proc4", NULL, "nfsv4rpc", NULL, "NFS v4 Client Remote Procedure Calls", "calls/s", 5011, update_every, RRDSET_TYPE_STACKED);
 
             for(i = 0; nfs_proc4_values[i].present ; i++)
-                rrddim_add(st, nfs_proc4_values[i].name, NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, nfs_proc4_values[i].name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
index 39858efc25bc73a767e1375a67329774fc014ad9..efe4bf99642f7d83d151cef2923a04368fb299ca 100644 (file)
@@ -496,9 +496,9 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
         if(!st) {
             st = rrdset_create("nfsd", "readcache", NULL, "cache", NULL, "NFS Server Read Cache", "reads/s", 5000, update_every, RRDSET_TYPE_STACKED);
 
-            rrddim_add(st, "hits", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "misses", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "nocache", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "hits", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "misses", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "nocache", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -516,11 +516,11 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
             st = rrdset_create("nfsd", "filehandles", NULL, "filehandles", NULL, "NFS Server File Handles", "handles/s", 5001, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "stale", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "total_lookups", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "anonymous_lookups", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "dir_not_in_dcache", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "non_dir_not_in_dcache", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "stale", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "total_lookups", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "anonymous_lookups", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "dir_not_in_dcache", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "non_dir_not_in_dcache", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -539,8 +539,8 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
         if(!st) {
             st = rrdset_create("nfsd", "io", NULL, "io", NULL, "NFS Server I/O", "kilobytes/s", 5002, update_every, RRDSET_TYPE_AREA);
 
-            rrddim_add(st, "read", NULL, 1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "write", NULL, -1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "read", NULL, 1, 1000, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "write", NULL, -1, 1000, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -556,7 +556,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
         if(!st) {
             st = rrdset_create("nfsd", "threads", NULL, "threads", NULL, "NFS Server Threads", "threads", 5003, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "threads", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "threads", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
@@ -567,7 +567,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
         if(!st) {
             st = rrdset_create("nfsd", "threads_fullcnt", NULL, "threads", NULL, "NFS Server Threads Full Count", "ops/s", 5004, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "full_count", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "full_count", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -578,16 +578,16 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
         if(!st) {
             st = rrdset_create("nfsd", "threads_histogram", NULL, "threads", NULL, "NFS Server Threads Usage Histogram", "percentage", 5005, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "0%-10%", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "10%-20%", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "20%-30%", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "30%-40%", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "40%-50%", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "50%-60%", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "60%-70%", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "70%-80%", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "80%-90%", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "90%-100%", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "0%-10%", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "10%-20%", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "20%-30%", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "30%-40%", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "40%-50%", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "50%-60%", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "60%-70%", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "70%-80%", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "80%-90%", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "90%-100%", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
@@ -611,17 +611,17 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
         if(!st) {
             st = rrdset_create("nfsd", "readahead", NULL, "readahead", NULL, "NFS Server Read Ahead Depth", "percentage", 5005, update_every, RRDSET_TYPE_STACKED);
 
-            rrddim_add(st, "10%", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-            rrddim_add(st, "20%", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-            rrddim_add(st, "30%", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-            rrddim_add(st, "40%", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-            rrddim_add(st, "50%", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-            rrddim_add(st, "60%", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-            rrddim_add(st, "70%", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-            rrddim_add(st, "80%", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-            rrddim_add(st, "90%", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-            rrddim_add(st, "100%", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-            rrddim_add(st, "misses", NULL, 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+            rrddim_add(st, "10%", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+            rrddim_add(st, "20%", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+            rrddim_add(st, "30%", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+            rrddim_add(st, "40%", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+            rrddim_add(st, "50%", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+            rrddim_add(st, "60%", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+            rrddim_add(st, "70%", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+            rrddim_add(st, "80%", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+            rrddim_add(st, "90%", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+            rrddim_add(st, "100%", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+            rrddim_add(st, "misses", NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
         }
         else rrdset_next(st);
 
@@ -650,8 +650,8 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
             st = rrdset_create("nfsd", "net", NULL, "network", NULL, "NFS Server Network Statistics", "packets/s", 5007, update_every, RRDSET_TYPE_STACKED);
             st->isdetail = 1;
 
-            rrddim_add(st, "udp", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "tcp", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "udp", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "tcp", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -672,9 +672,9 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
             st = rrdset_create("nfsd", "rpc", NULL, "rpc", NULL, "NFS Server Remote Procedure Calls Statistics", "calls/s", 5008, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "calls", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "bad_format", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "bad_auth", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "calls", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "bad_format", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "bad_auth", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -696,7 +696,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
             st = rrdset_create("nfsd", "proc2", NULL, "nfsv2rpc", NULL, "NFS v2 Server Remote Procedure Calls", "calls/s", 5009, update_every, RRDSET_TYPE_STACKED);
 
             for(i = 0; nfsd_proc2_values[i].present ; i++)
-                rrddim_add(st, nfsd_proc2_values[i].name, NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, nfsd_proc2_values[i].name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -715,7 +715,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
             st = rrdset_create("nfsd", "proc3", NULL, "nfsv3rpc", NULL, "NFS v3 Server Remote Procedure Calls", "calls/s", 5010, update_every, RRDSET_TYPE_STACKED);
 
             for(i = 0; nfsd_proc3_values[i].present ; i++)
-                rrddim_add(st, nfsd_proc3_values[i].name, NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, nfsd_proc3_values[i].name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -734,7 +734,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
             st = rrdset_create("nfsd", "proc4", NULL, "nfsv4rpc", NULL, "NFS v4 Server Remote Procedure Calls", "calls/s", 5011, update_every, RRDSET_TYPE_STACKED);
 
             for(i = 0; nfsd_proc4_values[i].present ; i++)
-                rrddim_add(st, nfsd_proc4_values[i].name, NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, nfsd_proc4_values[i].name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -753,7 +753,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
             st = rrdset_create("nfsd", "proc4ops", NULL, "nfsv2ops", NULL, "NFS v4 Server Operations", "operations/s", 5012, update_every, RRDSET_TYPE_STACKED);
 
             for(i = 0; nfsd4_ops_values[i].present ; i++)
-                rrddim_add(st, nfsd4_ops_values[i].name, NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, nfsd4_ops_values[i].name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
index 4a060da9475c3e71119645f1ff625e84d44bfa36..1d1a5b8199b959eec074d5c23d86c7c857f75f73 100644 (file)
@@ -396,10 +396,10 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                 if(!st) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "packets", NULL, "packets", NULL, "IPv4 Packets", "packets/s", 3000, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InReceives",    "received",  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutRequests",   "sent",     -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "ForwDatagrams", "forwarded", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InDelivers",    "delivered", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InReceives",    "received",  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutRequests",   "sent",     -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ForwDatagrams", "forwarded", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InDelivers",    "delivered", 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -418,9 +418,9 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "fragsout", NULL, "fragments", NULL, "IPv4 Fragments Sent", "packets/s", 3010, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "FragOKs",     "ok",      1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "FragFails",   "failed", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "FragCreates", "created", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "FragOKs",     "ok",      1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "FragFails",   "failed", -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "FragCreates", "created", 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -438,9 +438,9 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "fragsin", NULL, "fragments", NULL, "IPv4 Fragments Reassembly", "packets/s", 3011, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "ReasmOKs",   "ok",      1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "ReasmFails", "failed", -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "ReasmReqds", "all",     1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ReasmOKs",   "ok",      1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ReasmFails", "failed", -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ReasmReqds", "all",     1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -458,14 +458,14 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "errors", NULL, "errors", NULL, "IPv4 Errors", "packets/s", 3002, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InDiscards",      NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutDiscards",     NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InDiscards",      NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutDiscards",     NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
 
-                    rrddim_add(st, "InHdrErrors",     NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutNoRoutes",     NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InHdrErrors",     NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutNoRoutes",     NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
 
-                    rrddim_add(st, "InAddrErrors",    NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InUnknownProtos", NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InAddrErrors",    NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InUnknownProtos", NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -501,8 +501,8 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                 if(!st) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "icmp", NULL, "icmp", NULL, "IPv4 ICMP Packets", "packets/s", 2602, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InMsgs",  "received",  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutMsgs", "sent",     -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InMsgs",  "received",  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutMsgs", "sent",     -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -515,9 +515,9 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                 if(!st) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "icmp_errors", NULL, "icmp", NULL, "IPv4 ICMP Errors", "packets/s", 2603, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InErrors",     NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutErrors",    NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InCsumErrors", NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InErrors",     NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutErrors",    NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InCsumErrors", NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -548,7 +548,7 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "icmpmsg", NULL, "icmp", NULL, "IPv4 ICMP Messsages", "packets/s", 2604, update_every, RRDSET_TYPE_LINE);
 
                     for(i = 0; icmpmsg_data[i].name ;i++)
-                        rrddim_add(st, icmpmsg_data[i].name, icmpmsg_data[i].label,  icmpmsg_data[i].multiplier, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                        rrddim_add(st, icmpmsg_data[i].name, icmpmsg_data[i].label,  icmpmsg_data[i].multiplier, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -582,7 +582,7 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                 if(!st) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "tcpsock", NULL, "tcp", NULL, "IPv4 TCP Connections", "active connections", 2500, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "CurrEstab", "connections", 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+                    rrddim_add(st, "CurrEstab", "connections", 1, 1, RRD_ALGORITHM_ABSOLUTE);
                 }
                 else rrdset_next(st);
 
@@ -597,8 +597,8 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                 if(!st) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "tcppackets", NULL, "tcp", NULL, "IPv4 TCP Packets", "packets/s", 2600, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InSegs",  "received", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutSegs", "sent",    -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InSegs",  "received", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutSegs", "sent",    -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -615,9 +615,9 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "tcperrors", NULL, "tcp", NULL, "IPv4 TCP Errors", "packets/s", 2700, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "InErrs",       NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InCsumErrors", NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "RetransSegs",  NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InErrs",       NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InCsumErrors", NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "RetransSegs",  NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -635,11 +635,11 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "tcphandshake", NULL, "tcp", NULL, "IPv4 TCP Handshake Issues", "events/s", 2900, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "EstabResets",  NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutRsts",      NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "ActiveOpens",  NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "PassiveOpens", NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "AttemptFails", NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "EstabResets",  NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutRsts",      NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "ActiveOpens",  NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "PassiveOpens", NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "AttemptFails", NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -675,8 +675,8 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                 if(!st) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "udppackets", NULL, "udp", NULL, "IPv4 UDP Packets", "packets/s", 2601, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InDatagrams",  "received", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutDatagrams", "sent",    -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InDatagrams",  "received", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutDatagrams", "sent",    -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -693,12 +693,12 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "udperrors", NULL, "udp", NULL, "IPv4 UDP Errors", "events/s", 2701, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "RcvbufErrors", NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "SndbufErrors", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InErrors",     NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "NoPorts",      NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InCsumErrors", NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "IgnoredMulti", NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "RcvbufErrors", NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "SndbufErrors", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InErrors",     NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "NoPorts",      NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InCsumErrors", NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "IgnoredMulti", NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -734,8 +734,8 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                 if(!st) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "udplite", NULL, "udplite", NULL, "IPv4 UDPLite Packets", "packets/s", 2603, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "InDatagrams",  "received", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "OutDatagrams", "sent",    -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InDatagrams",  "received", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "OutDatagrams", "sent",    -1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -747,12 +747,12 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
                 if(!st) {
                     st = rrdset_create(RRD_TYPE_NET_SNMP, "udplite_errors", NULL, "udplite", NULL, "IPv4 UDPLite Errors", "packets/s", 2604, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "RcvbufErrors", NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "SndbufErrors", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "NoPorts",      NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "IgnoredMulti", NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InErrors",     NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "InCsumErrors", NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "RcvbufErrors", NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "SndbufErrors", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "NoPorts",      NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "IgnoredMulti", NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InErrors",     NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "InCsumErrors", NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
index a2b46eb0dc525e50a25b4eb8a851844bea207b9d..dcef798c9b9ad685b77986b37f1baa56b7e4da1a 100644 (file)
@@ -282,8 +282,8 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create("system", "ipv6", NULL, "network", NULL, "IPv6 Bandwidth", "kilobits/s", 500, update_every, RRDSET_TYPE_AREA);
 
-            rrddim_add(st, "received", NULL, 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 8, 1024, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -8, 1024, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -300,10 +300,10 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "packets", NULL, "packets", NULL, "IPv6 Packets", "packets/s", 3000, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "forwarded", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "delivers", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "forwarded", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "delivers", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -323,9 +323,9 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "fragsout", NULL, "fragments", NULL, "IPv6 Fragments Sent", "packets/s", 3010, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "ok", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "failed", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "all", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "ok", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "failed", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "all", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -350,10 +350,10 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "fragsin", NULL, "fragments", NULL, "IPv6 Fragments Reassembly", "packets/s", 3011, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "ok", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "failed", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "timeout", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "all", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "ok", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "failed", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "timeout", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "all", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -383,17 +383,17 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "errors", NULL, "errors", NULL, "IPv6 Errors", "packets/s", 3002, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "InDiscards", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutDiscards", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InDiscards", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutDiscards", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
 
-            rrddim_add(st, "InHdrErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InAddrErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InUnknownProtos", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InTooBigErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InTruncatedPkts", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InNoRoutes", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InHdrErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InAddrErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InUnknownProtos", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InTooBigErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InTruncatedPkts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InNoRoutes", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
-            rrddim_add(st, "OutNoRoutes", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutNoRoutes", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -419,8 +419,8 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "udppackets", NULL, "udp", NULL, "IPv6 UDP Packets", "packets/s", 3601, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -446,12 +446,12 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "udperrors", NULL, "udp", NULL, "IPv6 UDP Errors", "events/s", 3701, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "RcvbufErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "SndbufErrors", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "NoPorts", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "IgnoredMulti", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "RcvbufErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "SndbufErrors", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "NoPorts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "IgnoredMulti", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -472,8 +472,8 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "udplitepackets", NULL, "udplite", NULL, "IPv6 UDPlite Packets", "packets/s", 3601, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -499,11 +499,11 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "udpliteerrors", NULL, "udplite", NULL, "IPv6 UDP Lite Errors", "events/s", 3701, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "RcvbufErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "SndbufErrors", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "NoPorts", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "RcvbufErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "SndbufErrors", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "NoPorts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -524,8 +524,8 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "mcast", NULL, "multicast", NULL, "IPv6 Multicast Bandwidth", "kilobits/s", 9000, update_every, RRDSET_TYPE_AREA);
             st->isdetail = 1;
 
-            rrddim_add(st, "received", NULL, 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 8, 1024, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -8, 1024, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -543,8 +543,8 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "bcast", NULL, "broadcast", NULL, "IPv6 Broadcast Bandwidth", "kilobits/s", 8000, update_every, RRDSET_TYPE_AREA);
             st->isdetail = 1;
 
-            rrddim_add(st, "received", NULL, 8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -8, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 8, 1024, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -8, 1024, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -562,8 +562,8 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "mcastpkts", NULL, "multicast", NULL, "IPv6 Multicast Packets", "packets/s", 9500, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -580,8 +580,8 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "icmp", NULL, "icmp", NULL, "IPv6 ICMP Messages", "messages/s", 10000, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -598,8 +598,8 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "icmpredir", NULL, "icmp", NULL, "IPv6 ICMP Redirects", "redirects/s", 10050, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -629,18 +629,18 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "icmperrors", NULL, "icmp", NULL, "IPv6 ICMP Errors", "errors/s", 10100, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "InErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutErrors", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-
-            rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InDestUnreachs", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InPktTooBigs", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InTimeExcds", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InParmProblems", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutDestUnreachs", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutPktTooBigs", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutTimeExcds", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutParmProblems", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutErrors", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+
+            rrddim_add(st, "InCsumErrors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InDestUnreachs", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InPktTooBigs", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InTimeExcds", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InParmProblems", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutDestUnreachs", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutPktTooBigs", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutTimeExcds", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutParmProblems", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -672,10 +672,10 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "icmpechos", NULL, "icmp", NULL, "IPv6 ICMP Echo", "messages/s", 10200, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "InEchos", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutEchos", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InEchoReplies", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutEchoReplies", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InEchos", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutEchos", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InEchoReplies", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutEchoReplies", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -702,12 +702,12 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "groupmemb", NULL, "icmp", NULL, "IPv6 ICMP Group Membership", "messages/s", 10300, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "InQueries", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutQueries", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InResponses", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutResponses", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InReductions", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutReductions", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InQueries", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutQueries", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InResponses", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutResponses", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InReductions", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutReductions", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -734,10 +734,10 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "icmprouter", NULL, "icmp", NULL, "IPv6 Router Messages", "messages/s", 10400, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "InSolicits", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutSolicits", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InAdvertisements", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutAdvertisements", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InSolicits", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutSolicits", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InAdvertisements", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutAdvertisements", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -762,10 +762,10 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "icmpneighbor", NULL, "icmp", NULL, "IPv6 Neighbor Messages", "messages/s", 10500, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "InSolicits", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutSolicits", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InAdvertisements", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutAdvertisements", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InSolicits", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutSolicits", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InAdvertisements", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutAdvertisements", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -784,8 +784,8 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "icmpmldv2", NULL, "icmp", NULL, "IPv6 ICMP MLDv2 Reports", "reports/s", 10600, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "sent", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -814,16 +814,16 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "icmptypes", NULL, "icmp", NULL, "IPv6 ICMP Types", "messages/s", 10700, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "InType1", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InType128", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InType129", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InType136", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutType1", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutType128", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutType129", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutType133", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutType135", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "OutType143", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InType1", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InType128", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InType129", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InType136", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutType1", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutType128", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutType129", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutType133", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutType135", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "OutType143", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -854,10 +854,10 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_SNMP6, "ect", NULL, "packets", NULL, "IPv6 ECT Packets", "packets/s", 10800, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "InNoECTPkts", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InECT1Pkts", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InECT0Pkts", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "InCEPkts", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InNoECTPkts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InECT1Pkts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InECT0Pkts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "InCEPkts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
index 99dc663254c1edf554a1b46b30c0f22f8399412a..64ba190c92a541fa90ee9d329901700411db5b11 100644 (file)
@@ -82,7 +82,7 @@ int do_proc_net_softnet_stat(int update_every, usec_t dt) {
         st = rrdset_create("system", "softnet_stat", NULL, "softnet_stat", NULL, "System softnet_stat", "events/s", 955, update_every, RRDSET_TYPE_LINE);
         for(w = 0; w < allocated_columns ;w++)
             if(unlikely(softnet_column_name(w)))
-                rrddim_add(st, softnet_column_name(w), NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(st, softnet_column_name(w), NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
     }
     else rrdset_next(st);
 
@@ -105,7 +105,7 @@ int do_proc_net_softnet_stat(int update_every, usec_t dt) {
                 st = rrdset_create("cpu", id, NULL, "softnet_stat", NULL, title, "events/s", 4101 + l, update_every, RRDSET_TYPE_LINE);
                 for(w = 0; w < allocated_columns ;w++)
                     if(unlikely(softnet_column_name(w)))
-                        rrddim_add(st, softnet_column_name(w), NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                        rrddim_add(st, softnet_column_name(w), NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else rrdset_next(st);
 
index 4dceadaa9d04d3a8044b2a55d378058ee097c855..3088383b37061bb40eb27635a487059bdb1a74cd 100644 (file)
@@ -134,7 +134,7 @@ int do_proc_net_stat_conntrack(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_STAT_NETFILTER, RRD_TYPE_NET_STAT_CONNTRACK "_sockets", NULL, RRD_TYPE_NET_STAT_CONNTRACK, NULL, "Connection Tracker Connections", "active connections", 3000, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "connections", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "connections", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
@@ -149,9 +149,9 @@ int do_proc_net_stat_conntrack(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_STAT_NETFILTER, RRD_TYPE_NET_STAT_CONNTRACK "_new", NULL, RRD_TYPE_NET_STAT_CONNTRACK, NULL, "Connection Tracker New Connections", "connections/s", 3001, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "new", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "ignore", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "invalid", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "new", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "ignore", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "invalid", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -169,9 +169,9 @@ int do_proc_net_stat_conntrack(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_STAT_NETFILTER, RRD_TYPE_NET_STAT_CONNTRACK "_changes", NULL, RRD_TYPE_NET_STAT_CONNTRACK, NULL, "Connection Tracker Changes", "changes/s", 3002, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "inserted", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "deleted", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "delete_list", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "inserted", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "deleted", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "delete_list", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -189,9 +189,9 @@ int do_proc_net_stat_conntrack(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_STAT_NETFILTER, RRD_TYPE_NET_STAT_CONNTRACK "_expect", NULL, RRD_TYPE_NET_STAT_CONNTRACK, NULL, "Connection Tracker Expectations", "expectations/s", 3003, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "created", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "deleted", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "new", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "created", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "deleted", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "new", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -209,9 +209,9 @@ int do_proc_net_stat_conntrack(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_STAT_NETFILTER, RRD_TYPE_NET_STAT_CONNTRACK "_search", NULL, RRD_TYPE_NET_STAT_CONNTRACK, NULL, "Connection Tracker Searches", "searches/s", 3010, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "searched", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "restarted", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "found", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "searched", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "restarted", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "found", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -229,10 +229,10 @@ int do_proc_net_stat_conntrack(int update_every, usec_t dt) {
             st = rrdset_create(RRD_TYPE_NET_STAT_NETFILTER, RRD_TYPE_NET_STAT_CONNTRACK "_errors", NULL, RRD_TYPE_NET_STAT_CONNTRACK, NULL, "Connection Tracker Errors", "events/s", 3005, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "icmp_error", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "insert_failed", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "drop", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "early_drop", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "icmp_error", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "insert_failed", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "drop", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "early_drop", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
index d3bfae5112e2357808c7d73a71e78631576043b8..a9566306aac9e568bf80ec2d2e316d4d85b346df 100644 (file)
@@ -64,7 +64,7 @@ int do_proc_net_stat_synproxy(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_STAT_NETFILTER, RRD_TYPE_NET_STAT_SYNPROXY "_entries", NULL, RRD_TYPE_NET_STAT_SYNPROXY, NULL, "SYNPROXY Entries Used", "entries", 3304, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "entries", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "entries", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
@@ -81,7 +81,7 @@ int do_proc_net_stat_synproxy(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_STAT_NETFILTER, RRD_TYPE_NET_STAT_SYNPROXY "_syn_received", NULL, RRD_TYPE_NET_STAT_SYNPROXY, NULL, "SYNPROXY SYN Packets received", "SYN/s", 3301, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "received", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -98,7 +98,7 @@ int do_proc_net_stat_synproxy(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_STAT_NETFILTER, RRD_TYPE_NET_STAT_SYNPROXY "_conn_reopened", NULL, RRD_TYPE_NET_STAT_SYNPROXY, NULL, "SYNPROXY Connections Reopened", "connections/s", 3303, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "reopened", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "reopened", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -115,9 +115,9 @@ int do_proc_net_stat_synproxy(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create(RRD_TYPE_NET_STAT_NETFILTER, RRD_TYPE_NET_STAT_SYNPROXY "_cookies", NULL, RRD_TYPE_NET_STAT_SYNPROXY, NULL, "SYNPROXY TCP Cookies", "cookies/s", 3302, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "valid", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "invalid", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st, "retransmits", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "valid", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "invalid", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "retransmits", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
index d52fa63679b3abed13af981a824fdc4a70828957..83fc693b8434fe1196548e7cfeace3ac172d49a2 100644 (file)
@@ -141,7 +141,7 @@ int do_proc_softirqs(int update_every, usec_t dt) {
         if(unlikely(!irr->rd || strncmp(irr->name, irr->rd->name, MAX_INTERRUPT_NAME) != 0)) {
             irr->rd = rrddim_find(st, irr->id);
             if(unlikely(!irr->rd))
-                irr->rd = rrddim_add(st, irr->id, irr->name, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                irr->rd = rrddim_add(st, irr->id, irr->name, 1, 1, RRD_ALGORITHM_INCREMENTAL);
             else
                 rrddim_set_name(st, irr->rd, irr->name);
 
@@ -186,7 +186,7 @@ int do_proc_softirqs(int update_every, usec_t dt) {
                 if(unlikely(!irr->cpu[c].rd)) {
                     irr->cpu[c].rd = rrddim_find(st, irr->id);
                     if(unlikely(!irr->cpu[c].rd))
-                        irr->cpu[c].rd = rrddim_add(st, irr->id, irr->name, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                        irr->cpu[c].rd = rrddim_add(st, irr->id, irr->name, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                     else
                         rrddim_set_name(st, irr->cpu[c].rd, irr->name);
                 }
index df12f6ce5ea05fe8bd8e9618ca8d2ab72f0a53b1..dc66b1802c1ec08955b3a620ff9a14cfb48e05ba 100644 (file)
@@ -98,17 +98,17 @@ int do_proc_stat(int update_every, usec_t dt) {
                     long multiplier = 1;
                     long divisor = 1; // sysconf(_SC_CLK_TCK);
 
-                    rrddim_add(st, "guest_nice", NULL, multiplier, divisor, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-                    rrddim_add(st, "guest", NULL, multiplier, divisor, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-                    rrddim_add(st, "steal", NULL, multiplier, divisor, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-                    rrddim_add(st, "softirq", NULL, multiplier, divisor, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-                    rrddim_add(st, "irq", NULL, multiplier, divisor, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-                    rrddim_add(st, "user", NULL, multiplier, divisor, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-                    rrddim_add(st, "system", NULL, multiplier, divisor, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-                    rrddim_add(st, "nice", NULL, multiplier, divisor, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-                    rrddim_add(st, "iowait", NULL, multiplier, divisor, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
-
-                    rrddim_add(st, "idle", NULL, multiplier, divisor, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "guest_nice", NULL, multiplier, divisor, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "guest", NULL, multiplier, divisor, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "steal", NULL, multiplier, divisor, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "softirq", NULL, multiplier, divisor, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "irq", NULL, multiplier, divisor, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "user", NULL, multiplier, divisor, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "system", NULL, multiplier, divisor, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "nice", NULL, multiplier, divisor, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+                    rrddim_add(st, "iowait", NULL, multiplier, divisor, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+
+                    rrddim_add(st, "idle", NULL, multiplier, divisor, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
                     rrddim_hide(st, "idle");
                 }
                 else rrdset_next(st);
@@ -137,7 +137,7 @@ int do_proc_stat(int update_every, usec_t dt) {
                     st = rrdset_create("system", "intr", NULL, "interrupts", NULL, "CPU Interrupts", "interrupts/s", 900, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "interrupts", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "interrupts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -155,7 +155,7 @@ int do_proc_stat(int update_every, usec_t dt) {
                 if(unlikely(!st)) {
                     st = rrdset_create("system", "ctxt", NULL, "processes", NULL, "CPU Context Switches", "context switches/s", 800, update_every, RRDSET_TYPE_LINE);
 
-                    rrddim_add(st, "switches", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "switches", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
                 }
                 else rrdset_next(st);
 
@@ -182,7 +182,7 @@ int do_proc_stat(int update_every, usec_t dt) {
             st = rrdset_create("system", "forks", NULL, "processes", NULL, "Started Processes", "processes/s", 700, update_every, RRDSET_TYPE_LINE);
             st->isdetail = 1;
 
-            rrddim_add(st, "started", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st, "started", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st);
 
@@ -197,8 +197,8 @@ int do_proc_stat(int update_every, usec_t dt) {
         if(unlikely(!st)) {
             st = rrdset_create("system", "processes", NULL, "processes", NULL, "System Processes", "processes", 600, update_every, RRDSET_TYPE_LINE);
 
-            rrddim_add(st, "running", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-            rrddim_add(st, "blocked", NULL, -1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "running", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+            rrddim_add(st, "blocked", NULL, -1, 1, RRD_ALGORITHM_ABSOLUTE);
         }
         else rrdset_next(st);
 
index 8e6c6c38569c418b9f62932b002c5df0b4b683d4..cac8954954a2a84e676b3870c9ba94cc89a3f548 100644 (file)
@@ -20,7 +20,7 @@ int do_proc_sys_kernel_random_entropy_avail(int update_every, usec_t dt) {
     RRDSET *st = rrdset_find_bytype_localhost("system", "entropy");
     if(unlikely(!st)) {
         st = rrdset_create("system", "entropy", NULL, "entropy", NULL, "Available Entropy", "entropy", 1000, update_every, RRDSET_TYPE_LINE);
-        rrddim_add(st, "entropy", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(st, "entropy", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
     }
     else rrdset_next(st);
 
index d4a0a16b291b1647090ab209a88f27e2c9323519..788d6dd7bac537cff78ec9acdd2c61e56786f39b 100644 (file)
@@ -43,7 +43,7 @@ int do_proc_uptime(int update_every, usec_t dt) {
 
     if(unlikely(!st)) {
         st = rrdset_create("system", "uptime", NULL, "uptime", NULL, "System Uptime", "seconds", 1000, update_every, RRDSET_TYPE_LINE);
-        rrddim_add(st, "uptime", NULL, 1, 1000, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(st, "uptime", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
     }
     else rrdset_next(st);
 
index 600006dec5a7880bec8ba2ef764005717d1cc188..634a7e1f6f3846a01d6ea182ba73a8b54c9a9a24 100644 (file)
@@ -94,8 +94,8 @@ int do_proc_vmstat(int update_every, usec_t dt) {
         if(unlikely(!st_swapio)) {
             st_swapio = rrdset_create("system", "swapio", NULL, "swap", NULL, "Swap I/O", "kilobytes/s", 250, update_every, RRDSET_TYPE_AREA);
 
-            rrddim_add(st_swapio, "in",  NULL, sysconf(_SC_PAGESIZE), 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st_swapio, "out", NULL, -sysconf(_SC_PAGESIZE), 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_swapio, "in",  NULL, sysconf(_SC_PAGESIZE), 1024, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_swapio, "out", NULL, -sysconf(_SC_PAGESIZE), 1024, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st_swapio);
 
@@ -111,8 +111,8 @@ int do_proc_vmstat(int update_every, usec_t dt) {
         if(unlikely(!st_io)) {
             st_io = rrdset_create("system", "io", NULL, "disk", NULL, "Disk I/O", "kilobytes/s", 150, update_every, RRDSET_TYPE_AREA);
 
-            rrddim_add(st_io, "in",  NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st_io, "out", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_io, "in",  NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_io, "out", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st_io);
 
@@ -129,8 +129,8 @@ int do_proc_vmstat(int update_every, usec_t dt) {
             st_pgfaults = rrdset_create("mem", "pgfaults", NULL, "system", NULL, "Memory Page Faults", "page faults/s", 500, update_every, RRDSET_TYPE_LINE);
             st_pgfaults->isdetail = 1;
 
-            rrddim_add(st_pgfaults, "minor",  NULL,  1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st_pgfaults, "major", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_pgfaults, "minor",  NULL,  1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_pgfaults, "major", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st_pgfaults);
 
@@ -158,18 +158,18 @@ int do_proc_vmstat(int update_every, usec_t dt) {
             st_numa->isdetail = 1;
 
             // These depend on CONFIG_NUMA in the kernel.
-            rrddim_add(st_numa, "local", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st_numa, "foreign", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st_numa, "interleave", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st_numa, "other", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_numa, "local", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_numa, "foreign", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_numa, "interleave", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_numa, "other", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
             // The following stats depend on CONFIG_NUMA_BALANCING in the
             // kernel.
-            rrddim_add(st_numa, "pte updates", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st_numa, "huge pte updates", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st_numa, "hint faults", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st_numa, "hint faults local", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-            rrddim_add(st_numa, "pages migrated", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_numa, "pte updates", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_numa, "huge pte updates", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_numa, "hint faults", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_numa, "hint faults local", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+            rrddim_add(st_numa, "pages migrated", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else rrdset_next(st_numa);
 
index 006501709dcce960d0da7621b98f57ac95c5b024..302028229d1f8789f6fdb62fc5b1cc4b9ef53099 100644 (file)
@@ -327,7 +327,7 @@ void registry_statistics(void) {
     if(!sts) {
         sts = rrdset_create("netdata", "registry_sessions", NULL, "registry", NULL, "NetData Registry Sessions", "session", 131000, rrd_update_every, RRDSET_TYPE_LINE);
 
-        rrddim_add(sts, "sessions",  NULL,  1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(sts, "sessions",  NULL,  1, 1, RRD_ALGORITHM_ABSOLUTE);
     }
     else rrdset_next(sts);
 
@@ -340,11 +340,11 @@ void registry_statistics(void) {
     if(!stc) {
         stc = rrdset_create("netdata", "registry_entries", NULL, "registry", NULL, "NetData Registry Entries", "entries", 131100, rrd_update_every, RRDSET_TYPE_LINE);
 
-        rrddim_add(stc, "persons",        NULL,  1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(stc, "machines",       NULL,  1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(stc, "urls",           NULL,  1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(stc, "persons_urls",   NULL,  1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(stc, "machines_urls",  NULL,  1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(stc, "persons",        NULL,  1, 1, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(stc, "machines",       NULL,  1, 1, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(stc, "urls",           NULL,  1, 1, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(stc, "persons_urls",   NULL,  1, 1, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(stc, "machines_urls",  NULL,  1, 1, RRD_ALGORITHM_ABSOLUTE);
     }
     else rrdset_next(stc);
 
@@ -361,11 +361,11 @@ void registry_statistics(void) {
     if(!stm) {
         stm = rrdset_create("netdata", "registry_mem", NULL, "registry", NULL, "NetData Registry Memory", "KB", 131300, rrd_update_every, RRDSET_TYPE_STACKED);
 
-        rrddim_add(stm, "persons",        NULL,  1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(stm, "machines",       NULL,  1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(stm, "urls",           NULL,  1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(stm, "persons_urls",   NULL,  1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(stm, "machines_urls",  NULL,  1, 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(stm, "persons",        NULL,  1, 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(stm, "machines",       NULL,  1, 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(stm, "urls",           NULL,  1, 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(stm, "persons_urls",   NULL,  1, 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(stm, "machines_urls",  NULL,  1, 1024, RRD_ALGORITHM_ABSOLUTE);
     }
     else rrdset_next(stm);
 
index 65c5f890d01b47350cc8f7310b2993a6b0622764..4361483a2fd8a55d2ed60385f08058122e0788e2 100644 (file)
--- a/src/rrd.c
+++ b/src/rrd.c
@@ -1,7 +1,6 @@
+#define NETDATA_RRD_INTERNALS 1
 #include "common.h"
 
-#define RRD_DEFAULT_GAP_INTERPOLATIONS 1
-
 // ----------------------------------------------------------------------------
 // globals
 
@@ -16,225 +15,74 @@ int rrd_update_every = UPDATE_EVERY;
 int rrd_default_history_entries = RRD_DEFAULT_HISTORY_ENTRIES;
 RRD_MEMORY_MODE rrd_memory_mode = RRD_MEMORY_MODE_SAVE;
 
-static int rrdset_compare(void* a, void* b);
-static int rrdset_compare_name(void* a, void* b);
-static int rrdfamily_compare(void *a, void *b);
-
-// ----------------------------------------------------------------------------
-// RRDHOST
-
-RRDHOST localhost = {
-        .hostname = "localhost",
-        .rrdset_root = NULL,
-        .rrdset_root_rwlock = PTHREAD_RWLOCK_INITIALIZER,
-        .rrdset_root_index = {
-            { NULL, rrdset_compare },
-            AVL_LOCK_INITIALIZER
-        },
-        .rrdset_root_index_name = {
-            { NULL, rrdset_compare_name },
-            AVL_LOCK_INITIALIZER
-        },
-        .rrdfamily_root_index = {
-            { NULL, rrdfamily_compare },
-            AVL_LOCK_INITIALIZER
-        },
-        .variables_root_index = {
-            { NULL, rrdvar_compare },
-            AVL_LOCK_INITIALIZER
-        },
-        .health_log = {
-            .next_log_id = 1,
-            .next_alarm_id = 1,
-            .count = 0,
-            .max = 1000,
-            .alarms = NULL,
-            .alarm_log_rwlock = PTHREAD_RWLOCK_INITIALIZER
-        }
-};
-
-void rrdhost_init(char *hostname) {
-    localhost.hostname = hostname;
-    localhost.health_log.next_log_id =
-        localhost.health_log.next_alarm_id = now_realtime_sec();
-}
-
-void rrdhost_rwlock(RRDHOST *host) {
-    pthread_rwlock_wrlock(&host->rrdset_root_rwlock);
-}
-
-void rrdhost_rdlock(RRDHOST *host) {
-    pthread_rwlock_rdlock(&host->rrdset_root_rwlock);
-}
-
-void rrdhost_unlock(RRDHOST *host) {
-    pthread_rwlock_unlock(&host->rrdset_root_rwlock);
-}
-
-void rrdhost_check_rdlock_int(RRDHOST *host, const char *file, const char *function, const unsigned long line) {
-    int ret = pthread_rwlock_trywrlock(&host->rrdset_root_rwlock);
-
-    if(ret == 0)
-        fatal("RRDHOST '%s' should be read-locked, but it is not, at function %s() at line %lu of file '%s'", host->hostname, function, line, file);
-}
-
-void rrdhost_check_wrlock_int(RRDHOST *host, const char *file, const char *function, const unsigned long line) {
-    int ret = pthread_rwlock_tryrdlock(&host->rrdset_root_rwlock);
-
-    if(ret == 0)
-        fatal("RRDHOST '%s' should be write-locked, but it is not, at function %s() at line %lu of file '%s'", host->hostname, function, line, file);
-}
 
 // ----------------------------------------------------------------------------
-// RRDFAMILY index
-
-static int rrdfamily_compare(void *a, void *b) {
-    if(((RRDFAMILY *)a)->hash_family < ((RRDFAMILY *)b)->hash_family) return -1;
-    else if(((RRDFAMILY *)a)->hash_family > ((RRDFAMILY *)b)->hash_family) return 1;
-    else return strcmp(((RRDFAMILY *)a)->family, ((RRDFAMILY *)b)->family);
-}
-
-#define rrdfamily_index_add(host, rc) (RRDFAMILY *)avl_insert_lock(&((host)->rrdfamily_root_index), (avl *)(rc))
-#define rrdfamily_index_del(host, rc) (RRDFAMILY *)avl_remove_lock(&((host)->rrdfamily_root_index), (avl *)(rc))
-
-static RRDFAMILY *rrdfamily_index_find(RRDHOST *host, const char *id, uint32_t hash) {
-    RRDFAMILY tmp;
-    tmp.family = id;
-    tmp.hash_family = (hash)?hash:simple_hash(tmp.family);
-
-    return (RRDFAMILY *)avl_search_lock(&(host->rrdfamily_root_index), (avl *) &tmp);
-}
-
-RRDFAMILY *rrdfamily_create(RRDHOST *host, const char *id) {
-    RRDFAMILY *rc = rrdfamily_index_find(host, id, 0);
-    if(!rc) {
-        rc = callocz(1, sizeof(RRDFAMILY));
-
-        rc->family = strdupz(id);
-        rc->hash_family = simple_hash(rc->family);
+// RRD - memory modes
 
-        // initialize the variables index
-        avl_init_lock(&rc->variables_root_index, rrdvar_compare);
-
-        RRDFAMILY *ret = rrdfamily_index_add(host, rc);
-        if(ret != rc)
-            fatal("RRDFAMILY: INTERNAL ERROR: Expected to INSERT RRDFAMILY '%s' into index, but inserted '%s'.", rc->family, (ret)?ret->family:"NONE");
-    }
-
-    rc->use_count++;
-    return rc;
-}
-
-void rrdfamily_free(RRDHOST *host, RRDFAMILY *rc) {
-    rc->use_count--;
-    if(!rc->use_count) {
-        RRDFAMILY *ret = rrdfamily_index_del(host, rc);
-        if(ret != rc)
-            fatal("RRDFAMILY: INTERNAL ERROR: Expected to DELETE RRDFAMILY '%s' from index, but deleted '%s'.", rc->family, (ret)?ret->family:"NONE");
+inline const char *rrd_memory_mode_name(RRD_MEMORY_MODE id) {
+    switch(id) {
+        case RRD_MEMORY_MODE_RAM:
+            return RRD_MEMORY_MODE_RAM_NAME;
 
-        if(rc->variables_root_index.avl_tree.root != NULL)
-            fatal("RRDFAMILY: INTERNAL ERROR: Variables index of RRDFAMILY '%s' that is freed, is not empty.", rc->family);
+        case RRD_MEMORY_MODE_MAP:
+            return RRD_MEMORY_MODE_MAP_NAME;
 
-        freez((void *)rc->family);
-        freez(rc);
+        case RRD_MEMORY_MODE_SAVE:
+        default:
+            return RRD_MEMORY_MODE_SAVE_NAME;
     }
 }
 
-// ----------------------------------------------------------------------------
-// RRDSET index
+int rrd_memory_mode_id(const char *name) {
+    if(unlikely(!strcmp(name, RRD_MEMORY_MODE_RAM_NAME)))
+        return RRD_MEMORY_MODE_RAM;
+    else if(unlikely(!strcmp(name, RRD_MEMORY_MODE_MAP_NAME)))
+        return RRD_MEMORY_MODE_MAP;
 
-static int rrdset_compare(void* a, void* b) {
-    if(((RRDSET *)a)->hash < ((RRDSET *)b)->hash) return -1;
-    else if(((RRDSET *)a)->hash > ((RRDSET *)b)->hash) return 1;
-    else return strcmp(((RRDSET *)a)->id, ((RRDSET *)b)->id);
+    return RRD_MEMORY_MODE_SAVE;
 }
 
-#define rrdset_index_add(host, st) (RRDSET *)avl_insert_lock(&((host)->rrdset_root_index), (avl *)(st))
-#define rrdset_index_del(host, st) (RRDSET *)avl_remove_lock(&((host)->rrdset_root_index), (avl *)(st))
-
-static RRDSET *rrdset_index_find(RRDHOST *host, const char *id, uint32_t hash) {
-    RRDSET tmp;
-    strncpyz(tmp.id, id, RRD_ID_LENGTH_MAX);
-    tmp.hash = (hash)?hash:simple_hash(tmp.id);
-
-    return (RRDSET *)avl_search_lock(&(host->rrdset_root_index), (avl *) &tmp);
-}
 
 // ----------------------------------------------------------------------------
-// RRDSET name index
+// RRD - algorithms types
 
-#define rrdset_from_avlname(avlname_ptr) ((RRDSET *)((avlname_ptr) - offsetof(RRDSET, avlname)))
+RRD_ALGORITHM rrd_algorithm_id(const char *name) {
+    if(strcmp(name, RRD_ALGORITHM_INCREMENTAL_NAME) == 0)
+        return RRD_ALGORITHM_INCREMENTAL;
 
-static int rrdset_compare_name(void* a, void* b) {
-    RRDSET *A = rrdset_from_avlname(a);
-    RRDSET *B = rrdset_from_avlname(b);
+    else if(strcmp(name, RRD_ALGORITHM_ABSOLUTE_NAME) == 0)
+        return RRD_ALGORITHM_ABSOLUTE;
 
-    // fprintf(stderr, "COMPARING: %s with %s\n", A->name, B->name);
+    else if(strcmp(name, RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL_NAME) == 0)
+        return RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL;
 
-    if(A->hash_name < B->hash_name) return -1;
-    else if(A->hash_name > B->hash_name) return 1;
-    else return strcmp(A->name, B->name);
-}
+    else if(strcmp(name, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL_NAME) == 0)
+        return RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL;
 
-RRDSET *rrdset_index_add_name(RRDHOST *host, RRDSET *st) {
-    void *result;
-    // fprintf(stderr, "ADDING: %s (name: %s)\n", st->id, st->name);
-    result = avl_insert_lock(&host->rrdset_root_index_name, (avl *) (&st->avlname));
-    if(result) return rrdset_from_avlname(result);
-    return NULL;
+    else
+        return RRD_ALGORITHM_ABSOLUTE;
 }
 
-RRDSET *rrdset_index_del_name(RRDHOST *host, RRDSET *st) {
-    void *result;
-    // fprintf(stderr, "DELETING: %s (name: %s)\n", st->id, st->name);
-    result = (RRDSET *)avl_remove_lock(&((host)->rrdset_root_index_name), (avl *)(&st->avlname));
-    if(result) return rrdset_from_avlname(result);
-    return NULL;
-}
+const char *rrd_algorithm_name(RRD_ALGORITHM algorithm) {
+    switch(algorithm) {
+        case RRD_ALGORITHM_ABSOLUTE:
+        default:
+            return RRD_ALGORITHM_ABSOLUTE_NAME;
 
-static RRDSET *rrdset_index_find_name(RRDHOST *host, const char *name, uint32_t hash) {
-    void *result = NULL;
-    RRDSET tmp;
-    tmp.name = name;
-    tmp.hash_name = (hash)?hash:simple_hash(tmp.name);
+        case RRD_ALGORITHM_INCREMENTAL:
+            return RRD_ALGORITHM_INCREMENTAL_NAME;
 
-    // fprintf(stderr, "SEARCHING: %s\n", name);
-    result = avl_search_lock(&host->rrdset_root_index_name, (avl *) (&(tmp.avlname)));
-    if(result) {
-        RRDSET *st = rrdset_from_avlname(result);
-        if(strcmp(st->magic, RRDSET_MAGIC))
-            error("Search for RRDSET %s returned an invalid RRDSET %s (name %s)", name, st->id, st->name);
+        case RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL:
+            return RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL_NAME;
 
-        // fprintf(stderr, "FOUND: %s\n", name);
-        return rrdset_from_avlname(result);
+        case RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL:
+            return RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL_NAME;
     }
-    // fprintf(stderr, "NOT FOUND: %s\n", name);
-    return NULL;
 }
 
 
 // ----------------------------------------------------------------------------
-// RRDDIM index
-
-static int rrddim_compare(void* a, void* b) {
-    if(((RRDDIM *)a)->hash < ((RRDDIM *)b)->hash) return -1;
-    else if(((RRDDIM *)a)->hash > ((RRDDIM *)b)->hash) return 1;
-    else return strcmp(((RRDDIM *)a)->id, ((RRDDIM *)b)->id);
-}
-
-#define rrddim_index_add(st, rd) (RRDDIM *)avl_insert_lock(&((st)->dimensions_index), (avl *)(rd))
-#define rrddim_index_del(st,rd ) (RRDDIM *)avl_remove_lock(&((st)->dimensions_index), (avl *)(rd))
-
-static RRDDIM *rrddim_index_find(RRDSET *st, const char *id, uint32_t hash) {
-    RRDDIM tmp = {
-            .id = id,
-            .hash = (hash)?hash:simple_hash(id)
-    };
-    return (RRDDIM *)avl_search_lock(&(st->dimensions_index), (avl *) &tmp);
-}
-
-// ----------------------------------------------------------------------------
-// chart types
+// RRD - chart types
 
 inline RRDSET_TYPE rrdset_type_id(const char *name) {
     if(unlikely(strcmp(name, RRDSET_TYPE_AREA_NAME) == 0))
@@ -261,130 +109,11 @@ const char *rrdset_type_name(RRDSET_TYPE chart_type) {
     }
 }
 
-// ----------------------------------------------------------------------------
-// load / save
-
-inline const char *rrd_memory_mode_name(RRD_MEMORY_MODE id) {
-    switch(id) {
-        case RRD_MEMORY_MODE_RAM:
-            return RRD_MEMORY_MODE_RAM_NAME;
-
-        case RRD_MEMORY_MODE_MAP:
-            return RRD_MEMORY_MODE_MAP_NAME;
-
-        case RRD_MEMORY_MODE_SAVE:
-        default:
-            return RRD_MEMORY_MODE_SAVE_NAME;
-    }
-}
-
-int rrd_memory_mode_id(const char *name)
-{
-    if(unlikely(!strcmp(name, RRD_MEMORY_MODE_RAM_NAME)))
-        return RRD_MEMORY_MODE_RAM;
-    else if(unlikely(!strcmp(name, RRD_MEMORY_MODE_MAP_NAME)))
-        return RRD_MEMORY_MODE_MAP;
-
-    return RRD_MEMORY_MODE_SAVE;
-}
-
-// ----------------------------------------------------------------------------
-// algorithms types
-
-RRDDIM_ALGORITHM rrddim_algorithm_id(const char *name)
-{
-    if(strcmp(name, RRDDIM_ALGORITHM_INCREMENTAL_NAME) == 0)
-        return RRDDIM_ALGORITHM_INCREMENTAL;
-
-    else if(strcmp(name, RRDDIM_ALGORITHM_ABSOLUTE_NAME) == 0)
-        return RRDDIM_ALGORITHM_ABSOLUTE;
-
-    else if(strcmp(name, RRDDIM_ALGORITHM_PCENT_OVER_ROW_TOTAL_NAME) == 0)
-        return RRDDIM_ALGORITHM_PCENT_OVER_ROW_TOTAL;
-
-    else if(strcmp(name, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL_NAME) == 0)
-        return RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL;
-
-    else
-        return RRDDIM_ALGORITHM_ABSOLUTE;
-}
-
-const char *rrddim_algorithm_name(RRDDIM_ALGORITHM algorithm)
-{
-    switch(algorithm) {
-        case RRDDIM_ALGORITHM_ABSOLUTE:
-        default:
-            return RRDDIM_ALGORITHM_ABSOLUTE_NAME;
-
-        case RRDDIM_ALGORITHM_INCREMENTAL:
-            return RRDDIM_ALGORITHM_INCREMENTAL_NAME;
-
-        case RRDDIM_ALGORITHM_PCENT_OVER_ROW_TOTAL:
-            return RRDDIM_ALGORITHM_PCENT_OVER_ROW_TOTAL_NAME;
-
-        case RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL:
-            return RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL_NAME;
-    }
-}
 
 // ----------------------------------------------------------------------------
-// chart names
+// RRD - cache directory
 
-char *rrdset_strncpyz_name(char *to, const char *from, size_t length)
-{
-    char c, *p = to;
-
-    while (length-- && (c = *from++)) {
-        if(c != '.' && !isalnum(c))
-            c = '_';
-
-        *p++ = c;
-    }
-
-    *p = '\0';
-
-    return to;
-}
-
-void rrdset_set_name(RRDSET *st, const char *name)
-{
-    if(unlikely(st->name && !strcmp(st->name, name)))
-        return;
-
-    debug(D_RRD_CALLS, "rrdset_set_name() old: %s, new: %s", st->name, name);
-
-    char b[CONFIG_MAX_VALUE + 1];
-    char n[RRD_ID_LENGTH_MAX + 1];
-
-    snprintfz(n, RRD_ID_LENGTH_MAX, "%s.%s", st->type, name);
-    rrdset_strncpyz_name(b, n, CONFIG_MAX_VALUE);
-
-    if(st->name) {
-        rrdset_index_del_name(st->rrdhost, st);
-        st->name = config_set_default(st->id, "name", b);
-        st->hash_name = simple_hash(st->name);
-        rrdsetvar_rename_all(st);
-    }
-    else {
-        st->name = config_get(st->id, "name", b);
-        st->hash_name = simple_hash(st->name);
-    }
-
-    pthread_rwlock_wrlock(&st->rwlock);
-    RRDDIM *rd;
-    for(rd = st->dimensions; rd ;rd = rd->next)
-        rrddimvar_rename_all(rd);
-    pthread_rwlock_unlock(&st->rwlock);
-
-    if(unlikely(rrdset_index_add_name(st->rrdhost, st) != st))
-        error("RRDSET: INTERNAL ERROR: attempted to index duplicate chart name '%s'", st->name);
-}
-
-// ----------------------------------------------------------------------------
-// cache directory
-
-char *rrdset_cache_dir(const char *id)
-{
+char *rrdset_cache_dir(const char *id) {
     char *ret = NULL;
 
     char b[FILENAME_MAX + 1];
@@ -403,1246 +132,3 @@ char *rrdset_cache_dir(const char *id)
     return ret;
 }
 
-// ----------------------------------------------------------------------------
-// core functions
-
-void rrdset_reset(RRDSET *st)
-{
-    debug(D_RRD_CALLS, "rrdset_reset() %s", st->name);
-
-    st->last_collected_time.tv_sec = 0;
-    st->last_collected_time.tv_usec = 0;
-    st->last_updated.tv_sec = 0;
-    st->last_updated.tv_usec = 0;
-    st->current_entry = 0;
-    st->counter = 0;
-    st->counter_done = 0;
-
-    RRDDIM *rd;
-    for(rd = st->dimensions; rd ; rd = rd->next) {
-        rd->last_collected_time.tv_sec = 0;
-        rd->last_collected_time.tv_usec = 0;
-        rd->counter = 0;
-        memset(rd->values, 0, rd->entries * sizeof(storage_number));
-    }
-}
-static inline long align_entries_to_pagesize(long entries) {
-    if(entries < 5) entries = 5;
-    if(entries > RRD_HISTORY_ENTRIES_MAX) entries = RRD_HISTORY_ENTRIES_MAX;
-
-#ifdef NETDATA_LOG_ALLOCATIONS
-    long page = (size_t)sysconf(_SC_PAGESIZE);
-
-    long size = sizeof(RRDDIM) + entries * sizeof(storage_number);
-    if(size % page) {
-        size -= (size % page);
-        size += page;
-
-        long n = (size - sizeof(RRDDIM)) / sizeof(storage_number);
-        return n;
-    }
-
-    return entries;
-#else
-    return entries;
-#endif
-}
-
-static inline void timeval_align(struct timeval *tv, int update_every) {
-    tv->tv_sec -= tv->tv_sec % update_every;
-    tv->tv_usec = 500000;
-}
-
-RRDSET *rrdset_create(const char *type, const char *id, const char *name, const char *family, const char *context, const char *title, const char *units, long priority, int update_every, int chart_type) {
-    RRDHOST *host = &localhost;
-
-    if(!type || !type[0]) {
-        fatal("Cannot create rrd stats without a type.");
-        return NULL;
-    }
-
-    if(!id || !id[0]) {
-        fatal("Cannot create rrd stats without an id.");
-        return NULL;
-    }
-
-    char fullid[RRD_ID_LENGTH_MAX + 1];
-    char fullfilename[FILENAME_MAX + 1];
-
-    snprintfz(fullid, RRD_ID_LENGTH_MAX, "%s.%s", type, id);
-
-    RRDSET *st = rrdset_find(host, fullid);
-    if(st) {
-        debug(D_RRD_CALLS, "RRDSET '%s', already exists.", fullid);
-        return st;
-    }
-
-    long rentries = config_get_number(fullid, "history", rrd_default_history_entries);
-    long entries = align_entries_to_pagesize(rentries);
-    if(entries != rentries) entries = config_set_number(fullid, "history", entries);
-
-    int enabled = config_get_boolean(fullid, "enabled", 1);
-    if(!enabled) entries = 5;
-
-    unsigned long size = sizeof(RRDSET);
-    char *cache_dir = rrdset_cache_dir(fullid);
-
-    debug(D_RRD_CALLS, "Creating RRD_STATS for '%s.%s'.", type, id);
-
-    snprintfz(fullfilename, FILENAME_MAX, "%s/main.db", cache_dir);
-    if(rrd_memory_mode != RRD_MEMORY_MODE_RAM) st = (RRDSET *)mymmap(fullfilename, size, ((rrd_memory_mode == RRD_MEMORY_MODE_MAP)?MAP_SHARED:MAP_PRIVATE), 0);
-    if(st) {
-        if(strcmp(st->magic, RRDSET_MAGIC) != 0) {
-            errno = 0;
-            info("Initializing file %s.", fullfilename);
-            memset(st, 0, size);
-        }
-        else if(strcmp(st->id, fullid) != 0) {
-            errno = 0;
-            error("File %s contents are not for chart %s. Clearing it.", fullfilename, fullid);
-            // munmap(st, size);
-            // st = NULL;
-            memset(st, 0, size);
-        }
-        else if(st->memsize != size || st->entries != entries) {
-            errno = 0;
-            error("File %s does not have the desired size. Clearing it.", fullfilename);
-            memset(st, 0, size);
-        }
-        else if(st->update_every != update_every) {
-            errno = 0;
-            error("File %s does not have the desired update frequency. Clearing it.", fullfilename);
-            memset(st, 0, size);
-        }
-        else if((now_realtime_sec() - st->last_updated.tv_sec) > update_every * entries) {
-            errno = 0;
-            error("File %s is too old. Clearing it.", fullfilename);
-            memset(st, 0, size);
-        }
-
-        // make sure the database is aligned
-        if(st->last_updated.tv_sec)
-            timeval_align(&st->last_updated, update_every);
-    }
-
-    if(st) {
-        st->name = NULL;
-        st->type = NULL;
-        st->family = NULL;
-        st->context = NULL;
-        st->title = NULL;
-        st->units = NULL;
-        st->dimensions = NULL;
-        st->next = NULL;
-        st->mapped = rrd_memory_mode;
-        st->variables = NULL;
-        st->alarms = NULL;
-        memset(&st->rwlock, 0, sizeof(pthread_rwlock_t));
-        memset(&st->avl, 0, sizeof(avl));
-        memset(&st->avlname, 0, sizeof(avl));
-        memset(&st->variables_root_index, 0, sizeof(avl_tree_lock));
-        memset(&st->dimensions_index, 0, sizeof(avl_tree_lock));
-    }
-    else {
-        st = callocz(1, size);
-        st->mapped = RRD_MEMORY_MODE_RAM;
-    }
-
-    st->rrdhost = host;
-    st->memsize = size;
-    st->entries = entries;
-    st->update_every = update_every;
-
-    if(st->current_entry >= st->entries) st->current_entry = 0;
-
-    strcpy(st->cache_filename, fullfilename);
-    strcpy(st->magic, RRDSET_MAGIC);
-
-    strcpy(st->id, fullid);
-    st->hash = simple_hash(st->id);
-
-    st->cache_dir = cache_dir;
-
-    st->chart_type = rrdset_type_id(config_get(st->id, "chart type", rrdset_type_name(chart_type)));
-    st->type       = config_get(st->id, "type", type);
-    st->family     = config_get(st->id, "family", family?family:st->type);
-    st->units      = config_get(st->id, "units", units?units:"");
-
-    st->context    = config_get(st->id, "context", context?context:st->id);
-    st->hash_context = simple_hash(st->context);
-
-    st->priority = config_get_number(st->id, "priority", priority);
-    st->enabled = enabled;
-
-    st->isdetail = 0;
-    st->debug = 0;
-
-    // if(!strcmp(st->id, "disk_util.dm-0")) {
-    //     st->debug = 1;
-    //     error("enabled debugging for '%s'", st->id);
-    // }
-    // else error("not enabled debugging for '%s'", st->id);
-
-    st->green = NAN;
-    st->red = NAN;
-
-    st->last_collected_time.tv_sec = 0;
-    st->last_collected_time.tv_usec = 0;
-    st->counter_done = 0;
-
-    st->gap_when_lost_iterations_above = (int) (
-            config_get_number(st->id, "gap when lost iterations above", RRD_DEFAULT_GAP_INTERPOLATIONS) + 2);
-
-    avl_init_lock(&st->dimensions_index, rrddim_compare);
-    avl_init_lock(&st->variables_root_index, rrdvar_compare);
-
-    pthread_rwlock_init(&st->rwlock, NULL);
-    rrdhost_rwlock(host);
-
-    if(name && *name) rrdset_set_name(st, name);
-    else rrdset_set_name(st, id);
-
-    {
-        char varvalue[CONFIG_MAX_VALUE + 1];
-        char varvalue2[CONFIG_MAX_VALUE + 1];
-        snprintfz(varvalue, CONFIG_MAX_VALUE, "%s (%s)", title?title:"", st->name);
-        json_escape_string(varvalue2, varvalue, sizeof(varvalue2));
-        st->title = config_get(st->id, "title", varvalue2);
-    }
-
-    st->rrdfamily = rrdfamily_create(host, st->family);
-
-    st->next = host->rrdset_root;
-    host->rrdset_root = st;
-
-    if(health_enabled) {
-        rrdsetvar_create(st, "last_collected_t", RRDVAR_TYPE_TIME_T, &st->last_collected_time.tv_sec, 0);
-        rrdsetvar_create(st, "collected_total_raw", RRDVAR_TYPE_TOTAL, &st->last_collected_total, 0);
-        rrdsetvar_create(st, "green", RRDVAR_TYPE_CALCULATED, &st->green, 0);
-        rrdsetvar_create(st, "red", RRDVAR_TYPE_CALCULATED, &st->red, 0);
-        rrdsetvar_create(st, "update_every", RRDVAR_TYPE_INT, &st->update_every, 0);
-    }
-
-    if(unlikely(rrdset_index_add(host, st) != st))
-        error("RRDSET: INTERNAL ERROR: attempt to index duplicate chart '%s'", st->id);
-
-    rrdsetcalc_link_matching(st);
-    rrdcalctemplate_link_matching(st);
-
-    rrdhost_unlock(host);
-
-    return(st);
-}
-
-RRDDIM *rrddim_add(RRDSET *st, const char *id, const char *name, collected_number multiplier, collected_number divisor, RRDDIM_ALGORITHM algorithm)
-{
-    RRDDIM *rd = rrddim_find(st, id);
-    if(rd) {
-        debug(D_RRD_CALLS, "Cannot create rrd dimension '%s/%s', it already exists.", st->id, name?name:"<NONAME>");
-        return rd;
-    }
-
-    char filename[FILENAME_MAX + 1];
-    char fullfilename[FILENAME_MAX + 1];
-
-    char varname[CONFIG_MAX_NAME + 1];
-    unsigned long size = sizeof(RRDDIM) + (st->entries * sizeof(storage_number));
-
-    debug(D_RRD_CALLS, "Adding dimension '%s/%s'.", st->id, id);
-
-    rrdset_strncpyz_name(filename, id, FILENAME_MAX);
-    snprintfz(fullfilename, FILENAME_MAX, "%s/%s.db", st->cache_dir, filename);
-
-    if(rrd_memory_mode != RRD_MEMORY_MODE_RAM) {
-        rd = (RRDDIM *) mymmap(fullfilename, size, ((rrd_memory_mode == RRD_MEMORY_MODE_MAP) ? MAP_SHARED : MAP_PRIVATE), 1);
-        if(rd) {
-            // we have a file mapped for rd
-
-            rd->id = NULL;
-            rd->name = NULL;
-            rd->cache_filename = NULL;
-            rd->memory_mode = rrd_memory_mode;
-            rd->flags = 0x00000000;
-            rd->variables = NULL;
-            rd->next = NULL;
-            rd->rrdset = NULL;
-            memset(&rd->avl, 0, sizeof(avl));
-
-            struct timeval now;
-            now_realtime_timeval(&now);
-
-            if(strcmp(rd->magic, RRDDIMENSION_MAGIC) != 0) {
-                errno = 0;
-                info("Initializing file %s.", fullfilename);
-                memset(rd, 0, size);
-            }
-            else if(rd->memsize != size) {
-                errno = 0;
-                error("File %s does not have the desired size. Clearing it.", fullfilename);
-                memset(rd, 0, size);
-            }
-            else if(rd->multiplier != multiplier) {
-                errno = 0;
-                error("File %s does not have the same multiplier. Clearing it.", fullfilename);
-                memset(rd, 0, size);
-            }
-            else if(rd->divisor != divisor) {
-                errno = 0;
-                error("File %s does not have the same divisor. Clearing it.", fullfilename);
-                memset(rd, 0, size);
-            }
-            else if(rd->update_every != st->update_every) {
-                errno = 0;
-                error("File %s does not have the same refresh frequency. Clearing it.", fullfilename);
-                memset(rd, 0, size);
-            }
-            else if(dt_usec(&now, &rd->last_collected_time) > (rd->entries * rd->update_every * USEC_PER_SEC)) {
-                errno = 0;
-                error("File %s is too old. Clearing it.", fullfilename);
-                memset(rd, 0, size);
-            }
-
-            if(rd->algorithm && rd->algorithm != algorithm)
-                error("File %s does not have the expected algorithm (expected %u '%s', found %u '%s'). Previous values may be wrong."
-                      , fullfilename, algorithm, rrddim_algorithm_name(algorithm), rd->algorithm,
-                        rrddim_algorithm_name(rd->algorithm));
-        }
-    }
-
-    if(unlikely(!rd)) {
-        // if we didn't manage to get a mmap'd dimension, just create one
-        rd = callocz(1, size);
-        rd->memory_mode = RRD_MEMORY_MODE_RAM;
-    }
-
-    rd->memsize = size;
-
-    strcpy(rd->magic, RRDDIMENSION_MAGIC);
-
-    rd->id = strdupz(id);
-    rd->hash = simple_hash(rd->id);
-
-    rd->cache_filename = strdupz(fullfilename);
-
-    snprintfz(varname, CONFIG_MAX_NAME, "dim %s name", rd->id);
-    rd->name = config_get(st->id, varname, (name && *name)?name:rd->id);
-    rd->hash_name = simple_hash(rd->name);
-
-    snprintfz(varname, CONFIG_MAX_NAME, "dim %s algorithm", rd->id);
-    rd->algorithm = rrddim_algorithm_id(config_get(st->id, varname, rrddim_algorithm_name(algorithm)));
-
-    snprintfz(varname, CONFIG_MAX_NAME, "dim %s multiplier", rd->id);
-    rd->multiplier = config_get_number(st->id, varname, multiplier);
-
-    snprintfz(varname, CONFIG_MAX_NAME, "dim %s divisor", rd->id);
-    rd->divisor = config_get_number(st->id, varname, divisor);
-    if(!rd->divisor) rd->divisor = 1;
-
-    rd->entries = st->entries;
-    rd->update_every = st->update_every;
-
-    // prevent incremental calculation spikes
-    rd->counter = 0;
-    rrddim_flag_clear(rd, RRDDIM_FLAG_UPDATED);
-    rd->calculated_value = 0;
-    rd->last_calculated_value = 0;
-    rd->collected_value = 0;
-    rd->last_collected_value = 0;
-    rd->collected_volume = 0;
-    rd->stored_volume = 0;
-    rd->last_stored_value = 0;
-    rd->values[st->current_entry] = pack_storage_number(0, SN_NOT_EXISTS);
-    rd->last_collected_time.tv_sec = 0;
-    rd->last_collected_time.tv_usec = 0;
-    rd->rrdset = st;
-
-    // append this dimension
-    pthread_rwlock_wrlock(&st->rwlock);
-    if(!st->dimensions)
-        st->dimensions = rd;
-    else {
-        RRDDIM *td = st->dimensions;
-        for(; td->next; td = td->next) ;
-        td->next = rd;
-    }
-
-    if(health_enabled) {
-        rrddimvar_create(rd, RRDVAR_TYPE_CALCULATED, NULL, NULL, &rd->last_stored_value, 0);
-        rrddimvar_create(rd, RRDVAR_TYPE_COLLECTED, NULL, "_raw", &rd->last_collected_value, 0);
-        rrddimvar_create(rd, RRDVAR_TYPE_TIME_T, NULL, "_last_collected_t", &rd->last_collected_time.tv_sec, 0);
-    }
-
-    pthread_rwlock_unlock(&st->rwlock);
-
-    if(unlikely(rrddim_index_add(st, rd) != rd))
-        error("RRDDIM: INTERNAL ERROR: attempt to index duplicate dimension '%s' on chart '%s'", rd->id, st->id);
-
-    return(rd);
-}
-
-void rrddim_set_name(RRDSET *st, RRDDIM *rd, const char *name)
-{
-    if(unlikely(!strcmp(rd->name, name)))
-        return;
-
-    debug(D_RRD_CALLS, "rrddim_set_name() from %s.%s to %s.%s", st->name, rd->name, st->name, name);
-
-    char varname[CONFIG_MAX_NAME + 1];
-    snprintfz(varname, CONFIG_MAX_NAME, "dim %s name", rd->id);
-    rd->name = config_set_default(st->id, varname, name);
-    rd->hash_name = simple_hash(rd->name);
-
-    rrddimvar_rename_all(rd);
-}
-
-void rrddim_free(RRDSET *st, RRDDIM *rd)
-{
-    debug(D_RRD_CALLS, "rrddim_free() %s.%s", st->name, rd->name);
-
-    if(rd == st->dimensions)
-        st->dimensions = rd->next;
-    else {
-        RRDDIM *i;
-        for (i = st->dimensions; i && i->next != rd; i = i->next) ;
-
-        if (i && i->next == rd)
-            i->next = rd->next;
-        else
-            error("Request to free dimension '%s.%s' but it is not linked.", st->id, rd->name);
-    }
-    rd->next = NULL;
-
-    while(rd->variables)
-        rrddimvar_free(rd->variables);
-
-    if(unlikely(rrddim_index_del(st, rd) != rd))
-        error("RRDDIM: INTERNAL ERROR: attempt to remove from index dimension '%s' on chart '%s', removed a different dimension.", rd->id, st->id);
-
-    // free(rd->annotations);
-
-    switch(rd->memory_mode) {
-        case RRD_MEMORY_MODE_SAVE:
-            debug(D_RRD_CALLS, "Saving dimension '%s' to '%s'.", rd->name, rd->cache_filename);
-            savememory(rd->cache_filename, rd, rd->memsize);
-            // continue to map mode - no break;
-
-        case RRD_MEMORY_MODE_MAP:
-            debug(D_RRD_CALLS, "Unmapping dimension '%s'.", rd->name);
-            freez((void *)rd->id);
-            freez(rd->cache_filename);
-            munmap(rd, rd->memsize);
-            break;
-
-        case RRD_MEMORY_MODE_RAM:
-            debug(D_RRD_CALLS, "Removing dimension '%s'.", rd->name);
-            freez((void *)rd->id);
-            freez(rd->cache_filename);
-            freez(rd);
-            break;
-    }
-}
-
-void rrdset_free_all(void)
-{
-    info("Freeing all memory...");
-
-    rrdhost_rwlock(&localhost);
-
-    RRDSET *st;
-    for(st = localhost.rrdset_root; st ;) {
-        RRDSET *next = st->next;
-
-        pthread_rwlock_wrlock(&st->rwlock);
-
-        while(st->variables)
-            rrdsetvar_free(st->variables);
-
-        while(st->alarms)
-            rrdsetcalc_unlink(st->alarms);
-
-        while(st->dimensions)
-            rrddim_free(st, st->dimensions);
-
-        if(unlikely(rrdset_index_del(&localhost, st) != st))
-            error("RRDSET: INTERNAL ERROR: attempt to remove from index chart '%s', removed a different chart.", st->id);
-
-        rrdset_index_del_name(&localhost, st);
-
-        st->rrdfamily->use_count--;
-        if(!st->rrdfamily->use_count)
-            rrdfamily_free(&localhost, st->rrdfamily);
-
-        pthread_rwlock_unlock(&st->rwlock);
-
-        if(st->mapped == RRD_MEMORY_MODE_SAVE || st->mapped == RRD_MEMORY_MODE_MAP) {
-            debug(D_RRD_CALLS, "Unmapping stats '%s'.", st->name);
-            munmap(st, st->memsize);
-        }
-        else
-            freez(st);
-
-        st = next;
-    }
-    localhost.rrdset_root = NULL;
-
-    rrdhost_unlock(&localhost);
-
-    info("Memory cleanup completed...");
-}
-
-void rrdset_save_all(void) {
-    info("Saving database...");
-
-    RRDSET *st;
-    RRDDIM *rd;
-
-    // we get an write lock
-    // to ensure only one thread is saving the database
-    rrdhost_rwlock(&localhost);
-
-    for(st = localhost.rrdset_root; st ; st = st->next) {
-        pthread_rwlock_rdlock(&st->rwlock);
-
-        if(st->mapped == RRD_MEMORY_MODE_SAVE) {
-            debug(D_RRD_CALLS, "Saving stats '%s' to '%s'.", st->name, st->cache_filename);
-            savememory(st->cache_filename, st, st->memsize);
-        }
-
-        for(rd = st->dimensions; rd ; rd = rd->next) {
-            if(likely(rd->memory_mode == RRD_MEMORY_MODE_SAVE)) {
-                debug(D_RRD_CALLS, "Saving dimension '%s' to '%s'.", rd->name, rd->cache_filename);
-                savememory(rd->cache_filename, rd, rd->memsize);
-            }
-        }
-
-        pthread_rwlock_unlock(&st->rwlock);
-    }
-
-    rrdhost_unlock(&localhost);
-}
-
-
-RRDSET *rrdset_find(RRDHOST *host, const char *id) {
-    debug(D_RRD_CALLS, "rrdset_find() for chart '%s' in host '%s'", id, host->hostname);
-    RRDSET *st = rrdset_index_find(host, id, 0);
-    return(st);
-}
-
-RRDSET *rrdset_find_bytype(RRDHOST *host, const char *type, const char *id)
-{
-    debug(D_RRD_CALLS, "rrdset_find_bytype() for chart '%s.%s' in host '%s'", type, id, host->hostname);
-
-    char buf[RRD_ID_LENGTH_MAX + 1];
-    strncpyz(buf, type, RRD_ID_LENGTH_MAX - 1);
-    strcat(buf, ".");
-    int len = (int) strlen(buf);
-    strncpyz(&buf[len], id, (size_t) (RRD_ID_LENGTH_MAX - len));
-
-    return(rrdset_find(host, buf));
-}
-
-RRDSET *rrdset_find_byname(RRDHOST *host, const char *name) {
-    debug(D_RRD_CALLS, "rrdset_find_byname() for chart '%s' in host '%s'", name, host->hostname);
-    RRDSET *st = rrdset_index_find_name(host, name, 0);
-    return(st);
-}
-
-RRDDIM *rrddim_find(RRDSET *st, const char *id)
-{
-    debug(D_RRD_CALLS, "rrddim_find() for chart %s, dimension %s", st->name, id);
-
-    return rrddim_index_find(st, id, 0);
-}
-
-int rrddim_hide(RRDSET *st, const char *id)
-{
-    debug(D_RRD_CALLS, "rrddim_hide() for chart %s, dimension %s", st->name, id);
-
-    RRDDIM *rd = rrddim_find(st, id);
-    if(unlikely(!rd)) {
-        error("Cannot find dimension with id '%s' on stats '%s' (%s).", id, st->name, st->id);
-        return 1;
-    }
-
-    rrddim_flag_set(rd, RRDDIM_FLAG_HIDDEN);
-    return 0;
-}
-
-int rrddim_unhide(RRDSET *st, const char *id) {
-    debug(D_RRD_CALLS, "rrddim_unhide() for chart %s, dimension %s", st->name, id);
-
-    RRDDIM *rd = rrddim_find(st, id);
-    if(unlikely(!rd)) {
-        error("Cannot find dimension with id '%s' on stats '%s' (%s).", id, st->name, st->id);
-        return 1;
-    }
-
-    rrddim_flag_clear(rd, RRDDIM_FLAG_HIDDEN);
-    return 0;
-}
-
-collected_number rrddim_set_by_pointer(RRDSET *st, RRDDIM *rd, collected_number value)
-{
-    debug(D_RRD_CALLS, "rrddim_set_by_pointer() for chart %s, dimension %s, value " COLLECTED_NUMBER_FORMAT, st->name, rd->name, value);
-
-    now_realtime_timeval(&rd->last_collected_time);
-    rd->collected_value = value;
-    rrddim_flag_set(rd, RRDDIM_FLAG_UPDATED);
-    rd->counter++;
-
-    // fprintf(stderr, "%s.%s %llu " COLLECTED_NUMBER_FORMAT " dt %0.6f" " rate " CALCULATED_NUMBER_FORMAT "\n", st->name, rd->name, st->usec_since_last_update, value, (float)((double)st->usec_since_last_update / (double)1000000), (calculated_number)((value - rd->last_collected_value) * (calculated_number)rd->multiplier / (calculated_number)rd->divisor * 1000000.0 / (calculated_number)st->usec_since_last_update));
-
-    return rd->last_collected_value;
-}
-
-collected_number rrddim_set(RRDSET *st, const char *id, collected_number value)
-{
-    RRDDIM *rd = rrddim_find(st, id);
-    if(unlikely(!rd)) {
-        error("Cannot find dimension with id '%s' on stats '%s' (%s).", id, st->name, st->id);
-        return 0;
-    }
-
-    return rrddim_set_by_pointer(st, rd, value);
-}
-
-void rrdset_next_usec_unfiltered(RRDSET *st, usec_t microseconds)
-{
-    if(unlikely(!st->last_collected_time.tv_sec || !microseconds)) {
-        // the first entry
-        microseconds = st->update_every * USEC_PER_SEC;
-    }
-    st->usec_since_last_update = microseconds;
-}
-
-void rrdset_next_usec(RRDSET *st, usec_t microseconds)
-{
-    struct timeval now;
-    now_realtime_timeval(&now);
-
-    if(unlikely(!st->last_collected_time.tv_sec)) {
-        // the first entry
-        microseconds = st->update_every * USEC_PER_SEC;
-    }
-    else if(unlikely(!microseconds)) {
-        // no dt given by the plugin
-        microseconds = dt_usec(&now, &st->last_collected_time);
-    }
-    else {
-        // microseconds has the time since the last collection
-#ifdef NETDATA_INTERNAL_CHECKS
-        usec_t now_usec = timeval_usec(&now);
-        usec_t last_usec = timeval_usec(&st->last_collected_time);
-#endif
-        usec_t since_last_usec = dt_usec(&now, &st->last_collected_time);
-
-        // verify the microseconds given is good
-        if(unlikely(microseconds > since_last_usec)) {
-            debug(D_RRD_CALLS, "dt %llu usec given is too big - it leads %llu usec to the future, for chart '%s' (%s).", microseconds, microseconds - since_last_usec, st->name, st->id);
-
-#ifdef NETDATA_INTERNAL_CHECKS
-            if(unlikely(last_usec + microseconds > now_usec + 1000))
-                error("dt %llu usec given is too big - it leads %llu usec to the future, for chart '%s' (%s).", microseconds, microseconds - since_last_usec, st->name, st->id);
-#endif
-
-            microseconds = since_last_usec;
-        }
-        else if(unlikely(microseconds < since_last_usec * 0.8)) {
-            debug(D_RRD_CALLS, "dt %llu usec given is too small - expected %llu usec up to -20%%, for chart '%s' (%s).", microseconds, since_last_usec, st->name, st->id);
-
-#ifdef NETDATA_INTERNAL_CHECKS
-            error("dt %llu usec given is too small - expected %llu usec up to -20%%, for chart '%s' (%s).", microseconds, since_last_usec, st->name, st->id);
-#endif
-            microseconds = since_last_usec;
-        }
-    }
-    debug(D_RRD_CALLS, "rrdset_next_usec() for chart %s with microseconds %llu", st->name, microseconds);
-
-    if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: NEXT: %llu microseconds", st->name, microseconds);
-    st->usec_since_last_update = microseconds;
-}
-
-usec_t rrdset_done(RRDSET *st)
-{
-    if(unlikely(netdata_exit)) return 0;
-
-    debug(D_RRD_CALLS, "rrdset_done() for chart %s", st->name);
-
-    RRDDIM *rd;
-
-    int
-        pthreadoldcancelstate;  // store the old cancelable pthread state, to restore it at the end
-
-    char
-        store_this_entry = 1,   // boolean: 1 = store this entry, 0 = don't store this entry
-        first_entry = 0;        // boolean: 1 = this is the first entry seen for this chart, 0 = all other entries
-
-    unsigned int
-        stored_entries = 0;     // the number of entries we have stored in the db, during this call to rrdset_done()
-
-    usec_t
-        last_collect_ut,        // the timestamp in microseconds, of the last collected value
-        now_collect_ut,         // the timestamp in microseconds, of this collected value (this is NOW)
-        last_stored_ut,         // the timestamp in microseconds, of the last stored entry in the db
-        next_store_ut,          // the timestamp in microseconds, of the next entry to store in the db
-        update_every_ut = st->update_every * USEC_PER_SEC; // st->update_every in microseconds
-
-    if(unlikely(pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &pthreadoldcancelstate) != 0))
-        error("Cannot set pthread cancel state to DISABLE.");
-
-    // a read lock is OK here
-    pthread_rwlock_rdlock(&st->rwlock);
-
-/*
-    // enable the chart, if it was disabled
-    if(unlikely(rrd_delete_unupdated_dimensions) && !st->enabled)
-        st->enabled = 1;
-*/
-
-    // check if the chart has a long time to be updated
-    if(unlikely(st->usec_since_last_update > st->entries * update_every_ut)) {
-        info("%s: took too long to be updated (%0.3Lf secs). Resetting it.", st->name, (long double)(st->usec_since_last_update / 1000000.0));
-        rrdset_reset(st);
-        st->usec_since_last_update = update_every_ut;
-        first_entry = 1;
-    }
-    if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: microseconds since last update: %llu", st->name, st->usec_since_last_update);
-
-    // set last_collected_time
-    if(unlikely(!st->last_collected_time.tv_sec)) {
-        // it is the first entry
-        // set the last_collected_time to now
-        now_realtime_timeval(&st->last_collected_time);
-        timeval_align(&st->last_collected_time, st->update_every);
-
-        last_collect_ut = st->last_collected_time.tv_sec * USEC_PER_SEC + st->last_collected_time.tv_usec - update_every_ut;
-
-        // the first entry should not be stored
-        store_this_entry = 0;
-        first_entry = 1;
-
-        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: has not set last_collected_time. Setting it now. Will not store the next entry.", st->name);
-    }
-    else {
-        // it is not the first entry
-        // calculate the proper last_collected_time, using usec_since_last_update
-        last_collect_ut = st->last_collected_time.tv_sec * USEC_PER_SEC + st->last_collected_time.tv_usec;
-        usec_t ut = last_collect_ut + st->usec_since_last_update;
-        st->last_collected_time.tv_sec = (time_t) (ut / USEC_PER_SEC);
-        st->last_collected_time.tv_usec = (suseconds_t) (ut % USEC_PER_SEC);
-    }
-
-    // if this set has not been updated in the past
-    // we fake the last_update time to be = now - usec_since_last_update
-    if(unlikely(!st->last_updated.tv_sec)) {
-        // it has never been updated before
-        // set a fake last_updated, in the past using usec_since_last_update
-        usec_t ut = st->last_collected_time.tv_sec * USEC_PER_SEC + st->last_collected_time.tv_usec - st->usec_since_last_update;
-        st->last_updated.tv_sec = (time_t) (ut / USEC_PER_SEC);
-        st->last_updated.tv_usec = (suseconds_t) (ut % USEC_PER_SEC);
-
-        // the first entry should not be stored
-        store_this_entry = 0;
-        first_entry = 1;
-
-        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: initializing last_updated to now - %llu microseconds (%0.3Lf). Will not store the next entry.", st->name, st->usec_since_last_update, (long double)ut/1000000.0);
-    }
-
-    // check if we will re-write the entire data set
-    if(unlikely(dt_usec(&st->last_collected_time, &st->last_updated) > st->entries * update_every_ut)) {
-        info("%s: too old data (last updated at %ld.%ld, last collected at %ld.%ld). Resetting it. Will not store the next entry.", st->name, st->last_updated.tv_sec, st->last_updated.tv_usec, st->last_collected_time.tv_sec, st->last_collected_time.tv_usec);
-        rrdset_reset(st);
-
-        st->usec_since_last_update = update_every_ut;
-
-        now_realtime_timeval(&st->last_collected_time);
-        timeval_align(&st->last_collected_time, st->update_every);
-
-        usec_t ut = st->last_collected_time.tv_sec * USEC_PER_SEC + st->last_collected_time.tv_usec - st->usec_since_last_update;
-        st->last_updated.tv_sec = (time_t) (ut / USEC_PER_SEC);
-        st->last_updated.tv_usec = (suseconds_t) (ut % USEC_PER_SEC);
-
-        // the first entry should not be stored
-        store_this_entry = 0;
-        first_entry = 1;
-    }
-
-    // these are the 3 variables that will help us in interpolation
-    // last_stored_ut = the last time we added a value to the storage
-    // now_collect_ut = the time the current value has been collected
-    // next_store_ut  = the time of the next interpolation point
-    last_stored_ut = st->last_updated.tv_sec * USEC_PER_SEC + st->last_updated.tv_usec;
-    now_collect_ut = st->last_collected_time.tv_sec * USEC_PER_SEC + st->last_collected_time.tv_usec;
-    next_store_ut  = (st->last_updated.tv_sec + st->update_every) * USEC_PER_SEC;
-
-    if(unlikely(st->debug)) {
-        debug(D_RRD_STATS, "%s: last_collect_ut = %0.3Lf (last collection time)", st->name, (long double)last_collect_ut/1000000.0);
-        debug(D_RRD_STATS, "%s: now_collect_ut  = %0.3Lf (current collection time)", st->name, (long double)now_collect_ut/1000000.0);
-        debug(D_RRD_STATS, "%s: last_stored_ut  = %0.3Lf (last updated time)", st->name, (long double)last_stored_ut/1000000.0);
-        debug(D_RRD_STATS, "%s: next_store_ut   = %0.3Lf (next interpolation point)", st->name, (long double)next_store_ut/1000000.0);
-    }
-
-    if(unlikely(!st->counter_done)) {
-        store_this_entry = 0;
-        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: Will not store the next entry.", st->name);
-    }
-    st->counter_done++;
-
-    // calculate totals and count the dimensions
-    int dimensions;
-    st->collected_total = 0;
-    for( rd = st->dimensions, dimensions = 0 ; rd ; rd = rd->next, dimensions++ )
-        if(likely(rrddim_flag_check(rd, RRDDIM_FLAG_UPDATED)))
-            st->collected_total += rd->collected_value;
-
-    uint32_t storage_flags = SN_EXISTS;
-
-    // process all dimensions to calculate their values
-    // based on the collected figures only
-    // at this stage we do not interpolate anything
-    for( rd = st->dimensions ; rd ; rd = rd->next ) {
-
-        if(unlikely(!rrddim_flag_check(rd, RRDDIM_FLAG_UPDATED))) {
-            rd->calculated_value = 0;
-            continue;
-        }
-
-        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: START "
-            " last_collected_value = " COLLECTED_NUMBER_FORMAT
-            " collected_value = " COLLECTED_NUMBER_FORMAT
-            " last_calculated_value = " CALCULATED_NUMBER_FORMAT
-            " calculated_value = " CALCULATED_NUMBER_FORMAT
-            , st->id, rd->name
-            , rd->last_collected_value
-            , rd->collected_value
-            , rd->last_calculated_value
-            , rd->calculated_value
-            );
-
-        switch(rd->algorithm) {
-            case RRDDIM_ALGORITHM_ABSOLUTE:
-                rd->calculated_value = (calculated_number)rd->collected_value
-                    * (calculated_number)rd->multiplier
-                    / (calculated_number)rd->divisor;
-
-                if(unlikely(st->debug))
-                    debug(D_RRD_STATS, "%s/%s: CALC ABS/ABS-NO-IN "
-                        CALCULATED_NUMBER_FORMAT " = "
-                        COLLECTED_NUMBER_FORMAT
-                        " * " CALCULATED_NUMBER_FORMAT
-                        " / " CALCULATED_NUMBER_FORMAT
-                        , st->id, rd->name
-                        , rd->calculated_value
-                        , rd->collected_value
-                        , (calculated_number)rd->multiplier
-                        , (calculated_number)rd->divisor
-                        );
-                break;
-
-            case RRDDIM_ALGORITHM_PCENT_OVER_ROW_TOTAL:
-                if(unlikely(!st->collected_total))
-                    rd->calculated_value = 0;
-                else
-                    // the percentage of the current value
-                    // over the total of all dimensions
-                    rd->calculated_value =
-                          (calculated_number)100
-                        * (calculated_number)rd->collected_value
-                        / (calculated_number)st->collected_total;
-
-                if(unlikely(st->debug))
-                    debug(D_RRD_STATS, "%s/%s: CALC PCENT-ROW "
-                        CALCULATED_NUMBER_FORMAT " = 100"
-                        " * " COLLECTED_NUMBER_FORMAT
-                        " / " COLLECTED_NUMBER_FORMAT
-                        , st->id, rd->name
-                        , rd->calculated_value
-                        , rd->collected_value
-                        , st->collected_total
-                        );
-                break;
-
-            case RRDDIM_ALGORITHM_INCREMENTAL:
-                if(unlikely(rd->counter <= 1)) {
-                    rd->calculated_value = 0;
-                    continue;
-                }
-
-                // if the new is smaller than the old (an overflow, or reset), set the old equal to the new
-                // to reset the calculation (it will give zero as the calculation for this second)
-                if(unlikely(rd->last_collected_value > rd->collected_value)) {
-                    debug(D_RRD_STATS, "%s.%s: RESET or OVERFLOW. Last collected value = " COLLECTED_NUMBER_FORMAT ", current = " COLLECTED_NUMBER_FORMAT
-                            , st->name, rd->name
-                            , rd->last_collected_value
-                            , rd->collected_value);
-
-                    if(!(rrddim_flag_check(rd, RRDDIM_FLAG_DONT_DETECT_RESETS_OR_OVERFLOWS)))
-                        storage_flags = SN_EXISTS_RESET;
-
-                    rd->last_collected_value = rd->collected_value;
-                }
-
-                rd->calculated_value +=
-                      (calculated_number)(rd->collected_value - rd->last_collected_value)
-                    * (calculated_number)rd->multiplier
-                    / (calculated_number)rd->divisor;
-
-                if(unlikely(st->debug))
-                    debug(D_RRD_STATS, "%s/%s: CALC INC PRE "
-                        CALCULATED_NUMBER_FORMAT " = ("
-                        COLLECTED_NUMBER_FORMAT " - " COLLECTED_NUMBER_FORMAT
-                        ")"
-                        " * " CALCULATED_NUMBER_FORMAT
-                        " / " CALCULATED_NUMBER_FORMAT
-                        , st->id, rd->name
-                        , rd->calculated_value
-                        , rd->collected_value, rd->last_collected_value
-                        , (calculated_number)rd->multiplier
-                        , (calculated_number)rd->divisor
-                        );
-                break;
-
-            case RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL:
-                if(unlikely(rd->counter <= 1)) {
-                    rd->calculated_value = 0;
-                    continue;
-                }
-
-                // if the new is smaller than the old (an overflow, or reset), set the old equal to the new
-                // to reset the calculation (it will give zero as the calculation for this second)
-                if(unlikely(rd->last_collected_value > rd->collected_value)) {
-                    debug(D_RRD_STATS, "%s.%s: RESET or OVERFLOW. Last collected value = " COLLECTED_NUMBER_FORMAT ", current = " COLLECTED_NUMBER_FORMAT
-                    , st->name, rd->name
-                    , rd->last_collected_value
-                    , rd->collected_value);
-
-                    if(!(rrddim_flag_check(rd, RRDDIM_FLAG_DONT_DETECT_RESETS_OR_OVERFLOWS)))
-                        storage_flags = SN_EXISTS_RESET;
-
-                    rd->last_collected_value = rd->collected_value;
-                }
-
-                // the percentage of the current increment
-                // over the increment of all dimensions together
-                if(unlikely(st->collected_total == st->last_collected_total))
-                    rd->calculated_value = 0;
-                else
-                    rd->calculated_value =
-                          (calculated_number)100
-                        * (calculated_number)(rd->collected_value - rd->last_collected_value)
-                        / (calculated_number)(st->collected_total - st->last_collected_total);
-
-                if(unlikely(st->debug))
-                    debug(D_RRD_STATS, "%s/%s: CALC PCENT-DIFF "
-                        CALCULATED_NUMBER_FORMAT " = 100"
-                        " * (" COLLECTED_NUMBER_FORMAT " - " COLLECTED_NUMBER_FORMAT ")"
-                        " / (" COLLECTED_NUMBER_FORMAT " - " COLLECTED_NUMBER_FORMAT ")"
-                        , st->id, rd->name
-                        , rd->calculated_value
-                        , rd->collected_value, rd->last_collected_value
-                        , st->collected_total, st->last_collected_total
-                        );
-                break;
-
-            default:
-                // make the default zero, to make sure
-                // it gets noticed when we add new types
-                rd->calculated_value = 0;
-
-                if(unlikely(st->debug))
-                    debug(D_RRD_STATS, "%s/%s: CALC "
-                        CALCULATED_NUMBER_FORMAT " = 0"
-                        , st->id, rd->name
-                        , rd->calculated_value
-                        );
-                break;
-        }
-
-        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: PHASE2 "
-            " last_collected_value = " COLLECTED_NUMBER_FORMAT
-            " collected_value = " COLLECTED_NUMBER_FORMAT
-            " last_calculated_value = " CALCULATED_NUMBER_FORMAT
-            " calculated_value = " CALCULATED_NUMBER_FORMAT
-            , st->id, rd->name
-            , rd->last_collected_value
-            , rd->collected_value
-            , rd->last_calculated_value
-            , rd->calculated_value
-            );
-
-    }
-
-    // at this point we have all the calculated values ready
-    // it is now time to interpolate values on a second boundary
-
-    if(unlikely(now_collect_ut < next_store_ut)) {
-        // this is collected in the same interpolation point
-        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: THIS IS IN THE SAME INTERPOLATION POINT", st->name);
-#ifdef NETDATA_INTERNAL_CHECKS
-        info("%s is collected in the same interpolation point: short by %llu microseconds", st->name, next_store_ut - now_collect_ut);
-#endif
-    }
-
-    usec_t first_ut = last_stored_ut;
-    long long iterations = (now_collect_ut - last_stored_ut) / (update_every_ut);
-    if((now_collect_ut % (update_every_ut)) == 0) iterations++;
-
-    for( ; next_store_ut <= now_collect_ut ; last_collect_ut = next_store_ut, next_store_ut += update_every_ut, iterations-- ) {
-#ifdef NETDATA_INTERNAL_CHECKS
-        if(iterations < 0) { error("%s: iterations calculation wrapped! first_ut = %llu, last_stored_ut = %llu, next_store_ut = %llu, now_collect_ut = %llu", st->name, first_ut, last_stored_ut, next_store_ut, now_collect_ut); }
-#endif
-
-        if(unlikely(st->debug)) {
-            debug(D_RRD_STATS, "%s: last_stored_ut = %0.3Lf (last updated time)", st->name, (long double)last_stored_ut/1000000.0);
-            debug(D_RRD_STATS, "%s: next_store_ut  = %0.3Lf (next interpolation point)", st->name, (long double)next_store_ut/1000000.0);
-        }
-
-        st->last_updated.tv_sec = (time_t) (next_store_ut / USEC_PER_SEC);
-        st->last_updated.tv_usec = 0;
-
-        for( rd = st->dimensions ; likely(rd) ; rd = rd->next ) {
-            calculated_number new_value;
-
-            switch(rd->algorithm) {
-                case RRDDIM_ALGORITHM_INCREMENTAL:
-                    new_value = (calculated_number)
-                        (      rd->calculated_value
-                            * (calculated_number)(next_store_ut - last_collect_ut)
-                            / (calculated_number)(now_collect_ut - last_collect_ut)
-                        );
-
-                    if(unlikely(st->debug))
-                        debug(D_RRD_STATS, "%s/%s: CALC2 INC "
-                            CALCULATED_NUMBER_FORMAT " = "
-                            CALCULATED_NUMBER_FORMAT
-                            " * %llu"
-                            " / %llu"
-                            , st->id, rd->name
-                            , new_value
-                            , rd->calculated_value
-                            , (next_store_ut - last_stored_ut)
-                            , (now_collect_ut - last_stored_ut)
-                            );
-
-                    rd->calculated_value -= new_value;
-                    new_value += rd->last_calculated_value;
-                    rd->last_calculated_value = 0;
-                    new_value /= (calculated_number)st->update_every;
-
-                    if(unlikely(next_store_ut - last_stored_ut < update_every_ut)) {
-                        if(unlikely(st->debug))
-                            debug(D_RRD_STATS, "%s/%s: COLLECTION POINT IS SHORT " CALCULATED_NUMBER_FORMAT " - EXTRAPOLATING",
-                                st->id, rd->name
-                                , (calculated_number)(next_store_ut - last_stored_ut)
-                                );
-                        new_value = new_value * (calculated_number)(st->update_every * 1000000) / (calculated_number)(next_store_ut - last_stored_ut);
-                    }
-                    break;
-
-                case RRDDIM_ALGORITHM_ABSOLUTE:
-                case RRDDIM_ALGORITHM_PCENT_OVER_ROW_TOTAL:
-                case RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL:
-                default:
-                    if(iterations == 1) {
-                        // this is the last iteration
-                        // do not interpolate
-                        // just show the calculated value
-
-                        new_value = rd->calculated_value;
-                    }
-                    else {
-                        // we have missed an update
-                        // interpolate in the middle values
-
-                        new_value = (calculated_number)
-                            (   (     (rd->calculated_value - rd->last_calculated_value)
-                                    * (calculated_number)(next_store_ut - last_collect_ut)
-                                    / (calculated_number)(now_collect_ut - last_collect_ut)
-                                )
-                                +  rd->last_calculated_value
-                            );
-
-                        if(unlikely(st->debug))
-                            debug(D_RRD_STATS, "%s/%s: CALC2 DEF "
-                                CALCULATED_NUMBER_FORMAT " = ((("
-                                "(" CALCULATED_NUMBER_FORMAT " - " CALCULATED_NUMBER_FORMAT ")"
-                                " * %llu"
-                                " / %llu) + " CALCULATED_NUMBER_FORMAT
-                                , st->id, rd->name
-                                , new_value
-                                , rd->calculated_value, rd->last_calculated_value
-                                , (next_store_ut - first_ut)
-                                , (now_collect_ut - first_ut), rd->last_calculated_value
-                                );
-                    }
-                    break;
-            }
-
-            if(unlikely(!store_this_entry)) {
-                rd->values[st->current_entry] = pack_storage_number(0, SN_NOT_EXISTS);
-                continue;
-            }
-
-            if(likely(rrddim_flag_check(rd, RRDDIM_FLAG_UPDATED) && rd->counter > 1 && iterations < st->gap_when_lost_iterations_above)) {
-                rd->values[st->current_entry] = pack_storage_number(new_value, storage_flags );
-                rd->last_stored_value = new_value;
-
-                if(unlikely(st->debug))
-                    debug(D_RRD_STATS, "%s/%s: STORE[%ld] "
-                        CALCULATED_NUMBER_FORMAT " = " CALCULATED_NUMBER_FORMAT
-                        , st->id, rd->name
-                        , st->current_entry
-                        , unpack_storage_number(rd->values[st->current_entry]), new_value
-                        );
-            }
-            else {
-                if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: STORE[%ld] = NON EXISTING "
-                        , st->id, rd->name
-                        , st->current_entry
-                        );
-                rd->values[st->current_entry] = pack_storage_number(0, SN_NOT_EXISTS);
-                rd->last_stored_value = NAN;
-            }
-
-            stored_entries++;
-
-            if(unlikely(st->debug)) {
-                calculated_number t1 = new_value * (calculated_number)rd->multiplier / (calculated_number)rd->divisor;
-                calculated_number t2 = unpack_storage_number(rd->values[st->current_entry]);
-                calculated_number accuracy = accuracy_loss(t1, t2);
-                debug(D_RRD_STATS, "%s/%s: UNPACK[%ld] = " CALCULATED_NUMBER_FORMAT " FLAGS=0x%08x (original = " CALCULATED_NUMBER_FORMAT ", accuracy loss = " CALCULATED_NUMBER_FORMAT "%%%s)"
-                        , st->id, rd->name
-                        , st->current_entry
-                        , t2
-                        , get_storage_number_flags(rd->values[st->current_entry])
-                        , t1
-                        , accuracy
-                        , (accuracy > ACCURACY_LOSS) ? " **TOO BIG** " : ""
-                        );
-
-                rd->collected_volume += t1;
-                rd->stored_volume += t2;
-                accuracy = accuracy_loss(rd->collected_volume, rd->stored_volume);
-                debug(D_RRD_STATS, "%s/%s: VOLUME[%ld] = " CALCULATED_NUMBER_FORMAT ", calculated  = " CALCULATED_NUMBER_FORMAT ", accuracy loss = " CALCULATED_NUMBER_FORMAT "%%%s"
-                        , st->id, rd->name
-                        , st->current_entry
-                        , rd->stored_volume
-                        , rd->collected_volume
-                        , accuracy
-                        , (accuracy > ACCURACY_LOSS) ? " **TOO BIG** " : ""
-                        );
-
-            }
-        }
-        // reset the storage flags for the next point, if any;
-        storage_flags = SN_EXISTS;
-
-        st->counter++;
-        st->current_entry = ((st->current_entry + 1) >= st->entries) ? 0 : st->current_entry + 1;
-        last_stored_ut = next_store_ut;
-    }
-
-    st->last_collected_total  = st->collected_total;
-
-    for( rd = st->dimensions; rd ; rd = rd->next ) {
-        if(unlikely(!rrddim_flag_check(rd, RRDDIM_FLAG_UPDATED)))
-            continue;
-
-        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: setting last_collected_value (old: " COLLECTED_NUMBER_FORMAT ") to last_collected_value (new: " COLLECTED_NUMBER_FORMAT ")", st->id, rd->name, rd->last_collected_value, rd->collected_value);
-        rd->last_collected_value = rd->collected_value;
-
-        switch(rd->algorithm) {
-            case RRDDIM_ALGORITHM_INCREMENTAL:
-                if(unlikely(!first_entry)) {
-                    if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: setting last_calculated_value (old: " CALCULATED_NUMBER_FORMAT ") to last_calculated_value (new: " CALCULATED_NUMBER_FORMAT ")", st->id, rd->name, rd->last_calculated_value + rd->calculated_value, rd->calculated_value);
-                    rd->last_calculated_value += rd->calculated_value;
-                }
-                else {
-                    if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: THIS IS THE FIRST POINT", st->name);
-                }
-                break;
-
-            case RRDDIM_ALGORITHM_ABSOLUTE:
-            case RRDDIM_ALGORITHM_PCENT_OVER_ROW_TOTAL:
-            case RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL:
-                if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: setting last_calculated_value (old: " CALCULATED_NUMBER_FORMAT ") to last_calculated_value (new: " CALCULATED_NUMBER_FORMAT ")", st->id, rd->name, rd->last_calculated_value, rd->calculated_value);
-                rd->last_calculated_value = rd->calculated_value;
-                break;
-        }
-
-        rd->calculated_value = 0;
-        rd->collected_value = 0;
-        rrddim_flag_clear(rd, RRDDIM_FLAG_UPDATED);
-
-        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: END "
-            " last_collected_value = " COLLECTED_NUMBER_FORMAT
-            " collected_value = " COLLECTED_NUMBER_FORMAT
-            " last_calculated_value = " CALCULATED_NUMBER_FORMAT
-            " calculated_value = " CALCULATED_NUMBER_FORMAT
-            , st->id, rd->name
-            , rd->last_collected_value
-            , rd->collected_value
-            , rd->last_calculated_value
-            , rd->calculated_value
-            );
-    }
-
-    // ALL DONE ABOUT THE DATA UPDATE
-    // --------------------------------------------------------------------
-
-/*
-    // find if there are any obsolete dimensions (not updated recently)
-    if(unlikely(rrd_delete_unupdated_dimensions)) {
-
-        for( rd = st->dimensions; likely(rd) ; rd = rd->next )
-            if((rd->last_collected_time.tv_sec + (rrd_delete_unupdated_dimensions * st->update_every)) < st->last_collected_time.tv_sec)
-                break;
-
-        if(unlikely(rd)) {
-            RRDDIM *last;
-            // there is dimension to free
-            // upgrade our read lock to a write lock
-            pthread_rwlock_unlock(&st->rwlock);
-            pthread_rwlock_wrlock(&st->rwlock);
-
-            for( rd = st->dimensions, last = NULL ; likely(rd) ; ) {
-                // remove it only it is not updated in rrd_delete_unupdated_dimensions seconds
-
-                if(unlikely((rd->last_collected_time.tv_sec + (rrd_delete_unupdated_dimensions * st->update_every)) < st->last_collected_time.tv_sec)) {
-                    info("Removing obsolete dimension '%s' (%s) of '%s' (%s).", rd->name, rd->id, st->name, st->id);
-
-                    if(unlikely(!last)) {
-                        st->dimensions = rd->next;
-                        rd->next = NULL;
-                        rrddim_free(st, rd);
-                        rd = st->dimensions;
-                        continue;
-                    }
-                    else {
-                        last->next = rd->next;
-                        rd->next = NULL;
-                        rrddim_free(st, rd);
-                        rd = last->next;
-                        continue;
-                    }
-                }
-
-                last = rd;
-                rd = rd->next;
-            }
-
-            if(unlikely(!st->dimensions)) {
-                info("Disabling chart %s (%s) since it does not have any dimensions", st->name, st->id);
-                st->enabled = 0;
-            }
-        }
-    }
-*/
-
-    pthread_rwlock_unlock(&st->rwlock);
-
-    if(unlikely(pthread_setcancelstate(pthreadoldcancelstate, NULL) != 0))
-        error("Cannot set pthread cancel state to RESTORE (%d).", pthreadoldcancelstate);
-
-    return(st->usec_since_last_update);
-}
index 93eaf12ef61fbbadd791aa15e7441ab688df66c4..d09fe6283669e79f3f549179a20db0ed1ee7def0 100644 (file)
--- a/src/rrd.h
+++ b/src/rrd.h
@@ -56,20 +56,20 @@ extern int rrd_memory_mode_id(const char *name);
 // ----------------------------------------------------------------------------
 // algorithms types
 
-typedef enum rrddim_algorithm {
-    RRDDIM_ALGORITHM_ABSOLUTE              = 0,
-    RRDDIM_ALGORITHM_INCREMENTAL           = 1,
-    RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL = 2,
-    RRDDIM_ALGORITHM_PCENT_OVER_ROW_TOTAL  = 3
-} RRDDIM_ALGORITHM;
+typedef enum rrd_algorithm {
+    RRD_ALGORITHM_ABSOLUTE              = 0,
+    RRD_ALGORITHM_INCREMENTAL           = 1,
+    RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL = 2,
+    RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL  = 3
+} RRD_ALGORITHM;
 
-#define RRDDIM_ALGORITHM_ABSOLUTE_NAME                "absolute"
-#define RRDDIM_ALGORITHM_INCREMENTAL_NAME             "incremental"
-#define RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL_NAME   "percentage-of-incremental-row"
-#define RRDDIM_ALGORITHM_PCENT_OVER_ROW_TOTAL_NAME    "percentage-of-absolute-row"
+#define RRD_ALGORITHM_ABSOLUTE_NAME                "absolute"
+#define RRD_ALGORITHM_INCREMENTAL_NAME             "incremental"
+#define RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL_NAME   "percentage-of-incremental-row"
+#define RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL_NAME    "percentage-of-absolute-row"
 
-extern RRDDIM_ALGORITHM rrddim_algorithm_id(const char *name);
-extern const char *rrddim_algorithm_name(RRDDIM_ALGORITHM algorithm);
+extern RRD_ALGORITHM rrd_algorithm_id(const char *name);
+extern const char *rrd_algorithm_name(RRD_ALGORITHM algorithm);
 
 // ----------------------------------------------------------------------------
 // flags
@@ -120,7 +120,7 @@ struct rrddim {
                                                     // (the user overwrites the name of the charts)
                                                     // DO NOT FREE THIS - IT IS ALLOCATED IN CONFIG
 
-    RRDDIM_ALGORITHM algorithm;                     // the algorithm that is applied to add new collected values
+    RRD_ALGORITHM algorithm;                     // the algorithm that is applied to add new collected values
     RRD_MEMORY_MODE memory_mode;                    // the memory mode for this dimension
 
     collected_number multiplier;                    // the multiplier of the collected values
@@ -312,8 +312,13 @@ struct rrdhost {
     // RRDCALCs may be linked to charts at any point
     // (charts may or may not exist when these are loaded)
     RRDCALC *alarms;
+
+    // alarms historical events
     ALARM_LOG health_log;
 
+    // templates of alarms
+    // these are used to create alarms when charts
+    // are created or renamed, that match them
     RRDCALCTEMPLATE *templates;
 
     uint32_t flags;
@@ -342,13 +347,8 @@ extern void rrdhost_unlock(RRDHOST *host);
 // ----------------------------------------------------------------------------
 // RRD SET functions
 
-extern char *rrdset_strncpyz_name(char *to, const char *from, size_t length);
 extern void rrdset_set_name(RRDSET *st, const char *name);
 
-extern char *rrdset_cache_dir(const char *id);
-
-extern void rrdset_reset(RRDSET *st);
-
 extern RRDSET *rrdset_create(const char *type
         , const char *id
         , const char *name
@@ -360,8 +360,11 @@ extern RRDSET *rrdset_create(const char *type
         , int update_every
         , int chart_type);
 
-extern void rrdset_free_all(void);
-extern void rrdset_save_all(void);
+extern void rrdhost_free_all(void);
+extern void rrdhost_save_all(void);
+
+extern void rrdhost_free(RRDHOST *host);
+extern void rrdhost_save(RRDHOST *host);
 
 extern RRDSET *rrdset_find(RRDHOST *host, const char *id);
 #define rrdset_find_localhost(id) rrdset_find(&localhost, id)
@@ -414,11 +417,9 @@ extern usec_t rrdset_done(RRDSET *st);
 // ----------------------------------------------------------------------------
 // RRD DIMENSION functions
 
-extern RRDDIM *rrddim_add(RRDSET *st, const char *id, const char *name, collected_number multiplier, collected_number divisor, RRDDIM_ALGORITHM algorithm);
+extern RRDDIM *rrddim_add(RRDSET *st, const char *id, const char *name, collected_number multiplier, collected_number divisor, RRD_ALGORITHM algorithm);
 
 extern void rrddim_set_name(RRDSET *st, RRDDIM *rd, const char *name);
-extern void rrddim_free(RRDSET *st, RRDDIM *rd);
-
 extern RRDDIM *rrddim_find(RRDSET *st, const char *id);
 
 extern int rrddim_hide(RRDSET *st, const char *id);
@@ -427,4 +428,32 @@ extern int rrddim_unhide(RRDSET *st, const char *id);
 extern collected_number rrddim_set_by_pointer(RRDSET *st, RRDDIM *rd, collected_number value);
 extern collected_number rrddim_set(RRDSET *st, const char *id, collected_number value);
 
+
+// ----------------------------------------------------------------------------
+// RRD internal functions
+
+#ifdef NETDATA_RRD_INTERNALS
+
+extern char *rrdset_strncpyz_name(char *to, const char *from, size_t length);
+extern char *rrdset_cache_dir(const char *id);
+
+extern void rrdset_reset(RRDSET *st);
+
+extern void rrddim_free(RRDSET *st, RRDDIM *rd);
+
+extern int rrddim_compare(void* a, void* b);
+extern int rrdset_compare(void* a, void* b);
+extern int rrdset_compare_name(void* a, void* b);
+extern int rrdfamily_compare(void *a, void *b);
+
+extern RRDFAMILY *rrdfamily_create(RRDHOST *host, const char *id);
+extern void rrdfamily_free(RRDHOST *host, RRDFAMILY *rc);
+
+#define rrdset_index_add(host, st) (RRDSET *)avl_insert_lock(&((host)->rrdset_root_index), (avl *)(st))
+#define rrdset_index_del(host, st) (RRDSET *)avl_remove_lock(&((host)->rrdset_root_index), (avl *)(st))
+extern RRDSET *rrdset_index_del_name(RRDHOST *host, RRDSET *st);
+
+#endif /* NETDATA_RRD_INTERNALS */
+
+
 #endif /* NETDATA_RRD_H */
index 0e56d6c6d2a41a22dfb436c44b4e46584bba715a..21b013d0c329f3233c2bbf0dcafc74cf0a451403 100644 (file)
@@ -176,8 +176,8 @@ void rrd_stats_api_v1_charts_allmetrics_prometheus(BUFFER *wb)
                     // buffer_sprintf(wb, "# HELP %s.%s %s\n", st->id, rd->id, st->units);
 
                     switch(rd->algorithm) {
-                        case RRDDIM_ALGORITHM_INCREMENTAL:
-                        case RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL:
+                        case RRD_ALGORITHM_INCREMENTAL:
+                        case RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL:
                             buffer_sprintf(wb, "# TYPE %s_%s counter\n", chart, dimension);
                             break;
 
@@ -379,7 +379,7 @@ unsigned long rrd_stats_one_json(RRDSET *st, char *options, BUFFER *wb)
             , rd->name
             , rd->entries
             , rrddim_flag_check(rd, RRDDIM_FLAG_HIDDEN)?1:0
-            , rrddim_algorithm_name(rd->algorithm)
+            , rrd_algorithm_name(rd->algorithm)
             , rd->multiplier
             , rd->divisor
             , rd->last_collected_time.tv_sec
diff --git a/src/rrddim.c b/src/rrddim.c
new file mode 100644 (file)
index 0000000..0d1c76d
--- /dev/null
@@ -0,0 +1,307 @@
+#define NETDATA_RRD_INTERNALS 1
+#include "common.h"
+
+// ----------------------------------------------------------------------------
+// RRDDIM index
+
+int rrddim_compare(void* a, void* b) {
+    if(((RRDDIM *)a)->hash < ((RRDDIM *)b)->hash) return -1;
+    else if(((RRDDIM *)a)->hash > ((RRDDIM *)b)->hash) return 1;
+    else return strcmp(((RRDDIM *)a)->id, ((RRDDIM *)b)->id);
+}
+
+#define rrddim_index_add(st, rd) (RRDDIM *)avl_insert_lock(&((st)->dimensions_index), (avl *)(rd))
+#define rrddim_index_del(st,rd ) (RRDDIM *)avl_remove_lock(&((st)->dimensions_index), (avl *)(rd))
+
+static inline RRDDIM *rrddim_index_find(RRDSET *st, const char *id, uint32_t hash) {
+    RRDDIM tmp = {
+            .id = id,
+            .hash = (hash)?hash:simple_hash(id)
+    };
+    return (RRDDIM *)avl_search_lock(&(st->dimensions_index), (avl *) &tmp);
+}
+
+
+// ----------------------------------------------------------------------------
+// RRDDIM - find a dimension
+
+inline RRDDIM *rrddim_find(RRDSET *st, const char *id) {
+    debug(D_RRD_CALLS, "rrddim_find() for chart %s, dimension %s", st->name, id);
+
+    return rrddim_index_find(st, id, 0);
+}
+
+
+// ----------------------------------------------------------------------------
+// RRDDIM rename a dimension
+
+inline void rrddim_set_name(RRDSET *st, RRDDIM *rd, const char *name) {
+    if(unlikely(!strcmp(rd->name, name)))
+        return;
+
+    debug(D_RRD_CALLS, "rrddim_set_name() from %s.%s to %s.%s", st->name, rd->name, st->name, name);
+
+    char varname[CONFIG_MAX_NAME + 1];
+    snprintfz(varname, CONFIG_MAX_NAME, "dim %s name", rd->id);
+    rd->name = config_set_default(st->id, varname, name);
+    rd->hash_name = simple_hash(rd->name);
+
+    rrddimvar_rename_all(rd);
+}
+
+
+// ----------------------------------------------------------------------------
+// RRDDIM create a dimension
+
+RRDDIM *rrddim_add(RRDSET *st, const char *id, const char *name, collected_number multiplier, collected_number divisor, RRD_ALGORITHM algorithm) {
+    RRDDIM *rd = rrddim_find(st, id);
+    if(rd) {
+        debug(D_RRD_CALLS, "Cannot create rrd dimension '%s/%s', it already exists.", st->id, name?name:"<NONAME>");
+        return rd;
+    }
+
+    char filename[FILENAME_MAX + 1];
+    char fullfilename[FILENAME_MAX + 1];
+
+    char varname[CONFIG_MAX_NAME + 1];
+    unsigned long size = sizeof(RRDDIM) + (st->entries * sizeof(storage_number));
+
+    debug(D_RRD_CALLS, "Adding dimension '%s/%s'.", st->id, id);
+
+    rrdset_strncpyz_name(filename, id, FILENAME_MAX);
+    snprintfz(fullfilename, FILENAME_MAX, "%s/%s.db", st->cache_dir, filename);
+
+    if(rrd_memory_mode != RRD_MEMORY_MODE_RAM) {
+        rd = (RRDDIM *)mymmap(fullfilename, size, ((rrd_memory_mode == RRD_MEMORY_MODE_MAP) ? MAP_SHARED : MAP_PRIVATE), 1);
+        if(likely(rd)) {
+            // we have a file mapped for rd
+
+            rd->id = NULL;
+            rd->name = NULL;
+            rd->cache_filename = NULL;
+            rd->memory_mode = rrd_memory_mode;
+            rd->flags = 0x00000000;
+            rd->variables = NULL;
+            rd->next = NULL;
+            rd->rrdset = NULL;
+            memset(&rd->avl, 0, sizeof(avl));
+
+            struct timeval now;
+            now_realtime_timeval(&now);
+
+            if(strcmp(rd->magic, RRDDIMENSION_MAGIC) != 0) {
+                errno = 0;
+                info("Initializing file %s.", fullfilename);
+                memset(rd, 0, size);
+            }
+            else if(rd->memsize != size) {
+                errno = 0;
+                error("File %s does not have the desired size. Clearing it.", fullfilename);
+                memset(rd, 0, size);
+            }
+            else if(rd->multiplier != multiplier) {
+                errno = 0;
+                error("File %s does not have the same multiplier. Clearing it.", fullfilename);
+                memset(rd, 0, size);
+            }
+            else if(rd->divisor != divisor) {
+                errno = 0;
+                error("File %s does not have the same divisor. Clearing it.", fullfilename);
+                memset(rd, 0, size);
+            }
+            else if(rd->update_every != st->update_every) {
+                errno = 0;
+                error("File %s does not have the same refresh frequency. Clearing it.", fullfilename);
+                memset(rd, 0, size);
+            }
+            else if(dt_usec(&now, &rd->last_collected_time) > (rd->entries * rd->update_every * USEC_PER_SEC)) {
+                errno = 0;
+                error("File %s is too old. Clearing it.", fullfilename);
+                memset(rd, 0, size);
+            }
+
+            if(rd->algorithm && rd->algorithm != algorithm)
+                error("File %s does not have the expected algorithm (expected %u '%s', found %u '%s'). Previous values may be wrong."
+                      , fullfilename, algorithm, rrd_algorithm_name(algorithm), rd->algorithm,
+                        rrd_algorithm_name(rd->algorithm));
+        }
+    }
+
+    if(unlikely(!rd)) {
+        // if we didn't manage to get a mmap'd dimension, just create one
+        rd = callocz(1, size);
+        rd->memory_mode = RRD_MEMORY_MODE_RAM;
+    }
+
+    rd->memsize = size;
+
+    strcpy(rd->magic, RRDDIMENSION_MAGIC);
+
+    rd->id = strdupz(id);
+    rd->hash = simple_hash(rd->id);
+
+    rd->cache_filename = strdupz(fullfilename);
+
+    snprintfz(varname, CONFIG_MAX_NAME, "dim %s name", rd->id);
+    rd->name = config_get(st->id, varname, (name && *name)?name:rd->id);
+    rd->hash_name = simple_hash(rd->name);
+
+    snprintfz(varname, CONFIG_MAX_NAME, "dim %s algorithm", rd->id);
+    rd->algorithm = rrd_algorithm_id(config_get(st->id, varname, rrd_algorithm_name(algorithm)));
+
+    snprintfz(varname, CONFIG_MAX_NAME, "dim %s multiplier", rd->id);
+    rd->multiplier = config_get_number(st->id, varname, multiplier);
+
+    snprintfz(varname, CONFIG_MAX_NAME, "dim %s divisor", rd->id);
+    rd->divisor = config_get_number(st->id, varname, divisor);
+    if(!rd->divisor) rd->divisor = 1;
+
+    rd->entries = st->entries;
+    rd->update_every = st->update_every;
+
+    // prevent incremental calculation spikes
+    rd->counter = 0;
+    rrddim_flag_clear(rd, RRDDIM_FLAG_UPDATED);
+    rd->calculated_value = 0;
+    rd->last_calculated_value = 0;
+    rd->collected_value = 0;
+    rd->last_collected_value = 0;
+    rd->collected_volume = 0;
+    rd->stored_volume = 0;
+    rd->last_stored_value = 0;
+    rd->values[st->current_entry] = pack_storage_number(0, SN_NOT_EXISTS);
+    rd->last_collected_time.tv_sec = 0;
+    rd->last_collected_time.tv_usec = 0;
+    rd->rrdset = st;
+
+    // append this dimension
+    pthread_rwlock_wrlock(&st->rwlock);
+    if(!st->dimensions)
+        st->dimensions = rd;
+    else {
+        RRDDIM *td = st->dimensions;
+        for(; td->next; td = td->next) ;
+        td->next = rd;
+    }
+
+    if(health_enabled) {
+        rrddimvar_create(rd, RRDVAR_TYPE_CALCULATED, NULL, NULL, &rd->last_stored_value, 0);
+        rrddimvar_create(rd, RRDVAR_TYPE_COLLECTED, NULL, "_raw", &rd->last_collected_value, 0);
+        rrddimvar_create(rd, RRDVAR_TYPE_TIME_T, NULL, "_last_collected_t", &rd->last_collected_time.tv_sec, 0);
+    }
+
+    pthread_rwlock_unlock(&st->rwlock);
+
+    if(unlikely(rrddim_index_add(st, rd) != rd))
+        error("RRDDIM: INTERNAL ERROR: attempt to index duplicate dimension '%s' on chart '%s'", rd->id, st->id);
+
+    return(rd);
+}
+
+
+// ----------------------------------------------------------------------------
+// RRDDIM remove / free a dimension
+
+void rrddim_free(RRDSET *st, RRDDIM *rd)
+{
+    debug(D_RRD_CALLS, "rrddim_free() %s.%s", st->name, rd->name);
+
+    if(rd == st->dimensions)
+        st->dimensions = rd->next;
+    else {
+        RRDDIM *i;
+        for (i = st->dimensions; i && i->next != rd; i = i->next) ;
+
+        if (i && i->next == rd)
+            i->next = rd->next;
+        else
+            error("Request to free dimension '%s.%s' but it is not linked.", st->id, rd->name);
+    }
+    rd->next = NULL;
+
+    while(rd->variables)
+        rrddimvar_free(rd->variables);
+
+    if(unlikely(rrddim_index_del(st, rd) != rd))
+        error("RRDDIM: INTERNAL ERROR: attempt to remove from index dimension '%s' on chart '%s', removed a different dimension.", rd->id, st->id);
+
+    // free(rd->annotations);
+
+    switch(rd->memory_mode) {
+        case RRD_MEMORY_MODE_SAVE:
+            debug(D_RRD_CALLS, "Saving dimension '%s' to '%s'.", rd->name, rd->cache_filename);
+            savememory(rd->cache_filename, rd, rd->memsize);
+            // continue to map mode - no break;
+
+        case RRD_MEMORY_MODE_MAP:
+            debug(D_RRD_CALLS, "Unmapping dimension '%s'.", rd->name);
+            freez((void *)rd->id);
+            freez(rd->cache_filename);
+            munmap(rd, rd->memsize);
+            break;
+
+        case RRD_MEMORY_MODE_RAM:
+            debug(D_RRD_CALLS, "Removing dimension '%s'.", rd->name);
+            freez((void *)rd->id);
+            freez(rd->cache_filename);
+            freez(rd);
+            break;
+    }
+}
+
+
+// ----------------------------------------------------------------------------
+// RRDDIM - set dimension options
+
+int rrddim_hide(RRDSET *st, const char *id) {
+    debug(D_RRD_CALLS, "rrddim_hide() for chart %s, dimension %s", st->name, id);
+
+    RRDDIM *rd = rrddim_find(st, id);
+    if(unlikely(!rd)) {
+        error("Cannot find dimension with id '%s' on stats '%s' (%s).", id, st->name, st->id);
+        return 1;
+    }
+
+    rrddim_flag_set(rd, RRDDIM_FLAG_HIDDEN);
+    return 0;
+}
+
+int rrddim_unhide(RRDSET *st, const char *id) {
+    debug(D_RRD_CALLS, "rrddim_unhide() for chart %s, dimension %s", st->name, id);
+
+    RRDDIM *rd = rrddim_find(st, id);
+    if(unlikely(!rd)) {
+        error("Cannot find dimension with id '%s' on stats '%s' (%s).", id, st->name, st->id);
+        return 1;
+    }
+
+    rrddim_flag_clear(rd, RRDDIM_FLAG_HIDDEN);
+    return 0;
+}
+
+
+// ----------------------------------------------------------------------------
+// RRDDIM - collect values for a dimension
+
+inline collected_number rrddim_set_by_pointer(RRDSET *st, RRDDIM *rd, collected_number value) {
+    debug(D_RRD_CALLS, "rrddim_set_by_pointer() for chart %s, dimension %s, value " COLLECTED_NUMBER_FORMAT, st->name, rd->name, value);
+
+    now_realtime_timeval(&rd->last_collected_time);
+    rd->collected_value = value;
+    rrddim_flag_set(rd, RRDDIM_FLAG_UPDATED);
+    rd->counter++;
+
+    // fprintf(stderr, "%s.%s %llu " COLLECTED_NUMBER_FORMAT " dt %0.6f" " rate " CALCULATED_NUMBER_FORMAT "\n", st->name, rd->name, st->usec_since_last_update, value, (float)((double)st->usec_since_last_update / (double)1000000), (calculated_number)((value - rd->last_collected_value) * (calculated_number)rd->multiplier / (calculated_number)rd->divisor * 1000000.0 / (calculated_number)st->usec_since_last_update));
+
+    return rd->last_collected_value;
+}
+
+collected_number rrddim_set(RRDSET *st, const char *id, collected_number value) {
+    RRDDIM *rd = rrddim_find(st, id);
+    if(unlikely(!rd)) {
+        error("Cannot find dimension with id '%s' on stats '%s' (%s).", id, st->name, st->id);
+        return 0;
+    }
+
+    return rrddim_set_by_pointer(st, rd, value);
+}
diff --git a/src/rrdfamily.c b/src/rrdfamily.c
new file mode 100644 (file)
index 0000000..fc203e9
--- /dev/null
@@ -0,0 +1,58 @@
+#define NETDATA_RRD_INTERNALS 1
+#include "common.h"
+
+// ----------------------------------------------------------------------------
+// RRDFAMILY index
+
+int rrdfamily_compare(void *a, void *b) {
+    if(((RRDFAMILY *)a)->hash_family < ((RRDFAMILY *)b)->hash_family) return -1;
+    else if(((RRDFAMILY *)a)->hash_family > ((RRDFAMILY *)b)->hash_family) return 1;
+    else return strcmp(((RRDFAMILY *)a)->family, ((RRDFAMILY *)b)->family);
+}
+
+#define rrdfamily_index_add(host, rc) (RRDFAMILY *)avl_insert_lock(&((host)->rrdfamily_root_index), (avl *)(rc))
+#define rrdfamily_index_del(host, rc) (RRDFAMILY *)avl_remove_lock(&((host)->rrdfamily_root_index), (avl *)(rc))
+
+static RRDFAMILY *rrdfamily_index_find(RRDHOST *host, const char *id, uint32_t hash) {
+    RRDFAMILY tmp;
+    tmp.family = id;
+    tmp.hash_family = (hash)?hash:simple_hash(tmp.family);
+
+    return (RRDFAMILY *)avl_search_lock(&(host->rrdfamily_root_index), (avl *) &tmp);
+}
+
+RRDFAMILY *rrdfamily_create(RRDHOST *host, const char *id) {
+    RRDFAMILY *rc = rrdfamily_index_find(host, id, 0);
+    if(!rc) {
+        rc = callocz(1, sizeof(RRDFAMILY));
+
+        rc->family = strdupz(id);
+        rc->hash_family = simple_hash(rc->family);
+
+        // initialize the variables index
+        avl_init_lock(&rc->variables_root_index, rrdvar_compare);
+
+        RRDFAMILY *ret = rrdfamily_index_add(host, rc);
+        if(ret != rc)
+            fatal("RRDFAMILY: INTERNAL ERROR: Expected to INSERT RRDFAMILY '%s' into index, but inserted '%s'.", rc->family, (ret)?ret->family:"NONE");
+    }
+
+    rc->use_count++;
+    return rc;
+}
+
+void rrdfamily_free(RRDHOST *host, RRDFAMILY *rc) {
+    rc->use_count--;
+    if(!rc->use_count) {
+        RRDFAMILY *ret = rrdfamily_index_del(host, rc);
+        if(ret != rc)
+            fatal("RRDFAMILY: INTERNAL ERROR: Expected to DELETE RRDFAMILY '%s' from index, but deleted '%s'.", rc->family, (ret)?ret->family:"NONE");
+
+        if(rc->variables_root_index.avl_tree.root != NULL)
+            fatal("RRDFAMILY: INTERNAL ERROR: Variables index of RRDFAMILY '%s' that is freed, is not empty.", rc->family);
+
+        freez((void *)rc->family);
+        freez(rc);
+    }
+}
+
diff --git a/src/rrdhost.c b/src/rrdhost.c
new file mode 100644 (file)
index 0000000..6ec171b
--- /dev/null
@@ -0,0 +1,167 @@
+#define NETDATA_RRD_INTERNALS 1
+#include "common.h"
+
+// ----------------------------------------------------------------------------
+// RRDHOST
+
+RRDHOST localhost = {
+        .hostname = "localhost",
+        .machine_guid = "",
+        .rrdset_root = NULL,
+        .rrdset_root_rwlock = PTHREAD_RWLOCK_INITIALIZER,
+        .rrdset_root_index = {
+                { NULL, rrdset_compare },
+                AVL_LOCK_INITIALIZER
+        },
+        .rrdset_root_index_name = {
+                { NULL, rrdset_compare_name },
+                AVL_LOCK_INITIALIZER
+        },
+        .rrdfamily_root_index = {
+                { NULL, rrdfamily_compare },
+                AVL_LOCK_INITIALIZER
+        },
+        .variables_root_index = {
+                { NULL, rrdvar_compare },
+                AVL_LOCK_INITIALIZER
+        },
+        .health_log = {
+                .next_log_id = 1,
+                .next_alarm_id = 1,
+                .count = 0,
+                .max = 1000,
+                .alarms = NULL,
+                .alarm_log_rwlock = PTHREAD_RWLOCK_INITIALIZER
+        },
+        .next = NULL
+};
+
+void rrdhost_init(char *hostname) {
+    localhost.hostname = hostname;
+    localhost.health_log.next_log_id =
+        localhost.health_log.next_alarm_id = (uint32_t)now_realtime_sec();
+}
+
+void rrdhost_rwlock(RRDHOST *host) {
+    pthread_rwlock_wrlock(&host->rrdset_root_rwlock);
+}
+
+void rrdhost_rdlock(RRDHOST *host) {
+    pthread_rwlock_rdlock(&host->rrdset_root_rwlock);
+}
+
+void rrdhost_unlock(RRDHOST *host) {
+    pthread_rwlock_unlock(&host->rrdset_root_rwlock);
+}
+
+void rrdhost_check_rdlock_int(RRDHOST *host, const char *file, const char *function, const unsigned long line) {
+    int ret = pthread_rwlock_trywrlock(&host->rrdset_root_rwlock);
+
+    if(ret == 0)
+        fatal("RRDHOST '%s' should be read-locked, but it is not, at function %s() at line %lu of file '%s'", host->hostname, function, line, file);
+}
+
+void rrdhost_check_wrlock_int(RRDHOST *host, const char *file, const char *function, const unsigned long line) {
+    int ret = pthread_rwlock_tryrdlock(&host->rrdset_root_rwlock);
+
+    if(ret == 0)
+        fatal("RRDHOST '%s' should be write-locked, but it is not, at function %s() at line %lu of file '%s'", host->hostname, function, line, file);
+}
+
+void rrdhost_free(RRDHOST *host) {
+    info("Freeing all memory...");
+
+    rrdhost_rwlock(host);
+
+    RRDSET *st;
+    for(st = host->rrdset_root; st ;) {
+        RRDSET *next = st->next;
+
+        pthread_rwlock_wrlock(&st->rwlock);
+
+        while(st->variables)
+            rrdsetvar_free(st->variables);
+
+        while(st->alarms)
+            rrdsetcalc_unlink(st->alarms);
+
+        while(st->dimensions)
+            rrddim_free(st, st->dimensions);
+
+        if(unlikely(rrdset_index_del(host, st) != st))
+            error("RRDSET: INTERNAL ERROR: attempt to remove from index chart '%s', removed a different chart.", st->id);
+
+        rrdset_index_del_name(host, st);
+
+        st->rrdfamily->use_count--;
+        if(!st->rrdfamily->use_count)
+            rrdfamily_free(host, st->rrdfamily);
+
+        pthread_rwlock_unlock(&st->rwlock);
+
+        if(st->mapped == RRD_MEMORY_MODE_SAVE || st->mapped == RRD_MEMORY_MODE_MAP) {
+            debug(D_RRD_CALLS, "Unmapping stats '%s'.", st->name);
+            munmap(st, st->memsize);
+        }
+        else
+            freez(st);
+
+        st = next;
+    }
+    host->rrdset_root = NULL;
+
+    rrdhost_unlock(host);
+
+    info("Memory cleanup completed...");
+}
+
+void rrdhost_save(RRDHOST *host) {
+    info("Saving database...");
+
+    RRDSET *st;
+    RRDDIM *rd;
+
+    // we get an write lock
+    // to ensure only one thread is saving the database
+    rrdhost_rwlock(host);
+
+    for(st = host->rrdset_root; st ; st = st->next) {
+        pthread_rwlock_rdlock(&st->rwlock);
+
+        if(st->mapped == RRD_MEMORY_MODE_SAVE) {
+            debug(D_RRD_CALLS, "Saving stats '%s' to '%s'.", st->name, st->cache_filename);
+            savememory(st->cache_filename, st, st->memsize);
+        }
+
+        for(rd = st->dimensions; rd ; rd = rd->next) {
+            if(likely(rd->memory_mode == RRD_MEMORY_MODE_SAVE)) {
+                debug(D_RRD_CALLS, "Saving dimension '%s' to '%s'.", rd->name, rd->cache_filename);
+                savememory(rd->cache_filename, rd, rd->memsize);
+            }
+        }
+
+        pthread_rwlock_unlock(&st->rwlock);
+    }
+
+    rrdhost_unlock(host);
+}
+
+void rrdhost_free_all(void) {
+    RRDHOST *host;
+
+    // FIXME: lock all hosts
+
+    for(host = &localhost; host ;) {
+        RRDHOST *next = host = host->next;
+        rrdhost_free(host);
+        host = next;
+    }
+
+    // FIXME: unlock all hosts
+}
+
+void rrdhost_save_all(void) {
+    RRDHOST *host;
+    for(host = &localhost; host ; host = host->next)
+        rrdhost_save(host);
+}
diff --git a/src/rrdset.c b/src/rrdset.c
new file mode 100644 (file)
index 0000000..60fc19a
--- /dev/null
@@ -0,0 +1,1039 @@
+#define NETDATA_RRD_INTERNALS 1
+#include "common.h"
+
+#define RRD_DEFAULT_GAP_INTERPOLATIONS 1
+
+// ----------------------------------------------------------------------------
+// RRDSET index
+
+int rrdset_compare(void* a, void* b) {
+    if(((RRDSET *)a)->hash < ((RRDSET *)b)->hash) return -1;
+    else if(((RRDSET *)a)->hash > ((RRDSET *)b)->hash) return 1;
+    else return strcmp(((RRDSET *)a)->id, ((RRDSET *)b)->id);
+}
+
+static RRDSET *rrdset_index_find(RRDHOST *host, const char *id, uint32_t hash) {
+    RRDSET tmp;
+    strncpyz(tmp.id, id, RRD_ID_LENGTH_MAX);
+    tmp.hash = (hash)?hash:simple_hash(tmp.id);
+
+    return (RRDSET *)avl_search_lock(&(host->rrdset_root_index), (avl *) &tmp);
+}
+
+// ----------------------------------------------------------------------------
+// RRDSET name index
+
+#define rrdset_from_avlname(avlname_ptr) ((RRDSET *)((avlname_ptr) - offsetof(RRDSET, avlname)))
+
+int rrdset_compare_name(void* a, void* b) {
+    RRDSET *A = rrdset_from_avlname(a);
+    RRDSET *B = rrdset_from_avlname(b);
+
+    // fprintf(stderr, "COMPARING: %s with %s\n", A->name, B->name);
+
+    if(A->hash_name < B->hash_name) return -1;
+    else if(A->hash_name > B->hash_name) return 1;
+    else return strcmp(A->name, B->name);
+}
+
+RRDSET *rrdset_index_add_name(RRDHOST *host, RRDSET *st) {
+    void *result;
+    // fprintf(stderr, "ADDING: %s (name: %s)\n", st->id, st->name);
+    result = avl_insert_lock(&host->rrdset_root_index_name, (avl *) (&st->avlname));
+    if(result) return rrdset_from_avlname(result);
+    return NULL;
+}
+
+RRDSET *rrdset_index_del_name(RRDHOST *host, RRDSET *st) {
+    void *result;
+    // fprintf(stderr, "DELETING: %s (name: %s)\n", st->id, st->name);
+    result = (RRDSET *)avl_remove_lock(&((host)->rrdset_root_index_name), (avl *)(&st->avlname));
+    if(result) return rrdset_from_avlname(result);
+    return NULL;
+}
+
+
+// ----------------------------------------------------------------------------
+// RRDSET - find charts
+
+static inline RRDSET *rrdset_index_find_name(RRDHOST *host, const char *name, uint32_t hash) {
+    void *result = NULL;
+    RRDSET tmp;
+    tmp.name = name;
+    tmp.hash_name = (hash)?hash:simple_hash(tmp.name);
+
+    // fprintf(stderr, "SEARCHING: %s\n", name);
+    result = avl_search_lock(&host->rrdset_root_index_name, (avl *) (&(tmp.avlname)));
+    if(result) {
+        RRDSET *st = rrdset_from_avlname(result);
+        if(strcmp(st->magic, RRDSET_MAGIC))
+            error("Search for RRDSET %s returned an invalid RRDSET %s (name %s)", name, st->id, st->name);
+
+        // fprintf(stderr, "FOUND: %s\n", name);
+        return rrdset_from_avlname(result);
+    }
+    // fprintf(stderr, "NOT FOUND: %s\n", name);
+    return NULL;
+}
+
+inline RRDSET *rrdset_find(RRDHOST *host, const char *id) {
+    debug(D_RRD_CALLS, "rrdset_find() for chart '%s' in host '%s'", id, host->hostname);
+    RRDSET *st = rrdset_index_find(host, id, 0);
+    return(st);
+}
+
+inline RRDSET *rrdset_find_bytype(RRDHOST *host, const char *type, const char *id) {
+    debug(D_RRD_CALLS, "rrdset_find_bytype() for chart '%s.%s' in host '%s'", type, id, host->hostname);
+
+    char buf[RRD_ID_LENGTH_MAX + 1];
+    strncpyz(buf, type, RRD_ID_LENGTH_MAX - 1);
+    strcat(buf, ".");
+    int len = (int) strlen(buf);
+    strncpyz(&buf[len], id, (size_t) (RRD_ID_LENGTH_MAX - len));
+
+    return(rrdset_find(host, buf));
+}
+
+inline RRDSET *rrdset_find_byname(RRDHOST *host, const char *name) {
+    debug(D_RRD_CALLS, "rrdset_find_byname() for chart '%s' in host '%s'", name, host->hostname);
+    RRDSET *st = rrdset_index_find_name(host, name, 0);
+    return(st);
+}
+
+
+// ----------------------------------------------------------------------------
+// RRDSET - rename charts
+
+char *rrdset_strncpyz_name(char *to, const char *from, size_t length) {
+    char c, *p = to;
+
+    while (length-- && (c = *from++)) {
+        if(c != '.' && !isalnum(c))
+            c = '_';
+
+        *p++ = c;
+    }
+
+    *p = '\0';
+
+    return to;
+}
+
+void rrdset_set_name(RRDSET *st, const char *name) {
+    if(unlikely(st->name && !strcmp(st->name, name)))
+        return;
+
+    debug(D_RRD_CALLS, "rrdset_set_name() old: %s, new: %s", st->name, name);
+
+    char b[CONFIG_MAX_VALUE + 1];
+    char n[RRD_ID_LENGTH_MAX + 1];
+
+    snprintfz(n, RRD_ID_LENGTH_MAX, "%s.%s", st->type, name);
+    rrdset_strncpyz_name(b, n, CONFIG_MAX_VALUE);
+
+    if(st->name) {
+        rrdset_index_del_name(st->rrdhost, st);
+        st->name = config_set_default(st->id, "name", b);
+        st->hash_name = simple_hash(st->name);
+        rrdsetvar_rename_all(st);
+    }
+    else {
+        st->name = config_get(st->id, "name", b);
+        st->hash_name = simple_hash(st->name);
+    }
+
+    pthread_rwlock_wrlock(&st->rwlock);
+    RRDDIM *rd;
+    for(rd = st->dimensions; rd ;rd = rd->next)
+        rrddimvar_rename_all(rd);
+    pthread_rwlock_unlock(&st->rwlock);
+
+    if(unlikely(rrdset_index_add_name(st->rrdhost, st) != st))
+        error("RRDSET: INTERNAL ERROR: attempted to index duplicate chart name '%s'", st->name);
+}
+
+
+// ----------------------------------------------------------------------------
+// RRDSET - reset a chart
+
+void rrdset_reset(RRDSET *st) {
+    debug(D_RRD_CALLS, "rrdset_reset() %s", st->name);
+
+    st->last_collected_time.tv_sec = 0;
+    st->last_collected_time.tv_usec = 0;
+    st->last_updated.tv_sec = 0;
+    st->last_updated.tv_usec = 0;
+    st->current_entry = 0;
+    st->counter = 0;
+    st->counter_done = 0;
+
+    RRDDIM *rd;
+    for(rd = st->dimensions; rd ; rd = rd->next) {
+        rd->last_collected_time.tv_sec = 0;
+        rd->last_collected_time.tv_usec = 0;
+        rd->counter = 0;
+        memset(rd->values, 0, rd->entries * sizeof(storage_number));
+    }
+}
+
+// ----------------------------------------------------------------------------
+// RRDSET - helpers for rrdset_create()
+
+static inline long align_entries_to_pagesize(long entries) {
+    if(entries < 5) entries = 5;
+    if(entries > RRD_HISTORY_ENTRIES_MAX) entries = RRD_HISTORY_ENTRIES_MAX;
+
+#ifdef NETDATA_LOG_ALLOCATIONS
+    long page = (size_t)sysconf(_SC_PAGESIZE);
+
+    long size = sizeof(RRDDIM) + entries * sizeof(storage_number);
+    if(size % page) {
+        size -= (size % page);
+        size += page;
+
+        long n = (size - sizeof(RRDDIM)) / sizeof(storage_number);
+        return n;
+    }
+
+    return entries;
+#else
+    return entries;
+#endif
+}
+
+static inline void timeval_align(struct timeval *tv, int update_every) {
+    tv->tv_sec -= tv->tv_sec % update_every;
+    tv->tv_usec = 500000;
+}
+
+// ----------------------------------------------------------------------------
+// RRDSET - create a chart
+
+RRDSET *rrdset_create(const char *type, const char *id, const char *name, const char *family, const char *context, const char *title, const char *units, long priority, int update_every, int chart_type) {
+    RRDHOST *host = &localhost;
+
+    if(!type || !type[0]) {
+        fatal("Cannot create rrd stats without a type.");
+        return NULL;
+    }
+
+    if(!id || !id[0]) {
+        fatal("Cannot create rrd stats without an id.");
+        return NULL;
+    }
+
+    char fullid[RRD_ID_LENGTH_MAX + 1];
+    char fullfilename[FILENAME_MAX + 1];
+
+    snprintfz(fullid, RRD_ID_LENGTH_MAX, "%s.%s", type, id);
+
+    RRDSET *st = rrdset_find(host, fullid);
+    if(st) {
+        debug(D_RRD_CALLS, "RRDSET '%s', already exists.", fullid);
+        return st;
+    }
+
+    long rentries = config_get_number(fullid, "history", rrd_default_history_entries);
+    long entries = align_entries_to_pagesize(rentries);
+    if(entries != rentries) entries = config_set_number(fullid, "history", entries);
+
+    int enabled = config_get_boolean(fullid, "enabled", 1);
+    if(!enabled) entries = 5;
+
+    unsigned long size = sizeof(RRDSET);
+    char *cache_dir = rrdset_cache_dir(fullid);
+
+    debug(D_RRD_CALLS, "Creating RRD_STATS for '%s.%s'.", type, id);
+
+    snprintfz(fullfilename, FILENAME_MAX, "%s/main.db", cache_dir);
+    if(rrd_memory_mode != RRD_MEMORY_MODE_RAM) st = (RRDSET *)mymmap(fullfilename, size, ((rrd_memory_mode == RRD_MEMORY_MODE_MAP)?MAP_SHARED:MAP_PRIVATE), 0);
+    if(st) {
+        if(strcmp(st->magic, RRDSET_MAGIC) != 0) {
+            errno = 0;
+            info("Initializing file %s.", fullfilename);
+            memset(st, 0, size);
+        }
+        else if(strcmp(st->id, fullid) != 0) {
+            errno = 0;
+            error("File %s contents are not for chart %s. Clearing it.", fullfilename, fullid);
+            // munmap(st, size);
+            // st = NULL;
+            memset(st, 0, size);
+        }
+        else if(st->memsize != size || st->entries != entries) {
+            errno = 0;
+            error("File %s does not have the desired size. Clearing it.", fullfilename);
+            memset(st, 0, size);
+        }
+        else if(st->update_every != update_every) {
+            errno = 0;
+            error("File %s does not have the desired update frequency. Clearing it.", fullfilename);
+            memset(st, 0, size);
+        }
+        else if((now_realtime_sec() - st->last_updated.tv_sec) > update_every * entries) {
+            errno = 0;
+            error("File %s is too old. Clearing it.", fullfilename);
+            memset(st, 0, size);
+        }
+
+        // make sure the database is aligned
+        if(st->last_updated.tv_sec)
+            timeval_align(&st->last_updated, update_every);
+    }
+
+    if(st) {
+        st->name = NULL;
+        st->type = NULL;
+        st->family = NULL;
+        st->context = NULL;
+        st->title = NULL;
+        st->units = NULL;
+        st->dimensions = NULL;
+        st->next = NULL;
+        st->mapped = rrd_memory_mode;
+        st->variables = NULL;
+        st->alarms = NULL;
+        memset(&st->rwlock, 0, sizeof(pthread_rwlock_t));
+        memset(&st->avl, 0, sizeof(avl));
+        memset(&st->avlname, 0, sizeof(avl));
+        memset(&st->variables_root_index, 0, sizeof(avl_tree_lock));
+        memset(&st->dimensions_index, 0, sizeof(avl_tree_lock));
+    }
+    else {
+        st = callocz(1, size);
+        st->mapped = RRD_MEMORY_MODE_RAM;
+    }
+
+    st->rrdhost = host;
+    st->memsize = size;
+    st->entries = entries;
+    st->update_every = update_every;
+
+    if(st->current_entry >= st->entries) st->current_entry = 0;
+
+    strcpy(st->cache_filename, fullfilename);
+    strcpy(st->magic, RRDSET_MAGIC);
+
+    strcpy(st->id, fullid);
+    st->hash = simple_hash(st->id);
+
+    st->cache_dir = cache_dir;
+
+    st->chart_type = rrdset_type_id(config_get(st->id, "chart type", rrdset_type_name(chart_type)));
+    st->type       = config_get(st->id, "type", type);
+    st->family     = config_get(st->id, "family", family?family:st->type);
+    st->units      = config_get(st->id, "units", units?units:"");
+
+    st->context    = config_get(st->id, "context", context?context:st->id);
+    st->hash_context = simple_hash(st->context);
+
+    st->priority = config_get_number(st->id, "priority", priority);
+    st->enabled = enabled;
+
+    st->isdetail = 0;
+    st->debug = 0;
+
+    // if(!strcmp(st->id, "disk_util.dm-0")) {
+    //     st->debug = 1;
+    //     error("enabled debugging for '%s'", st->id);
+    // }
+    // else error("not enabled debugging for '%s'", st->id);
+
+    st->green = NAN;
+    st->red = NAN;
+
+    st->last_collected_time.tv_sec = 0;
+    st->last_collected_time.tv_usec = 0;
+    st->counter_done = 0;
+
+    st->gap_when_lost_iterations_above = (int) (
+            config_get_number(st->id, "gap when lost iterations above", RRD_DEFAULT_GAP_INTERPOLATIONS) + 2);
+
+    avl_init_lock(&st->dimensions_index, rrddim_compare);
+    avl_init_lock(&st->variables_root_index, rrdvar_compare);
+
+    pthread_rwlock_init(&st->rwlock, NULL);
+    rrdhost_rwlock(host);
+
+    if(name && *name) rrdset_set_name(st, name);
+    else rrdset_set_name(st, id);
+
+    {
+        char varvalue[CONFIG_MAX_VALUE + 1];
+        char varvalue2[CONFIG_MAX_VALUE + 1];
+        snprintfz(varvalue, CONFIG_MAX_VALUE, "%s (%s)", title?title:"", st->name);
+        json_escape_string(varvalue2, varvalue, sizeof(varvalue2));
+        st->title = config_get(st->id, "title", varvalue2);
+    }
+
+    st->rrdfamily = rrdfamily_create(host, st->family);
+
+    st->next = host->rrdset_root;
+    host->rrdset_root = st;
+
+    if(health_enabled) {
+        rrdsetvar_create(st, "last_collected_t", RRDVAR_TYPE_TIME_T, &st->last_collected_time.tv_sec, 0);
+        rrdsetvar_create(st, "collected_total_raw", RRDVAR_TYPE_TOTAL, &st->last_collected_total, 0);
+        rrdsetvar_create(st, "green", RRDVAR_TYPE_CALCULATED, &st->green, 0);
+        rrdsetvar_create(st, "red", RRDVAR_TYPE_CALCULATED, &st->red, 0);
+        rrdsetvar_create(st, "update_every", RRDVAR_TYPE_INT, &st->update_every, 0);
+    }
+
+    if(unlikely(rrdset_index_add(host, st) != st))
+        error("RRDSET: INTERNAL ERROR: attempt to index duplicate chart '%s'", st->id);
+
+    rrdsetcalc_link_matching(st);
+    rrdcalctemplate_link_matching(st);
+
+    rrdhost_unlock(host);
+
+    return(st);
+}
+
+
+// ----------------------------------------------------------------------------
+// RRDSET - data collection iteration control
+
+void rrdset_next_usec_unfiltered(RRDSET *st, usec_t microseconds) {
+    if(unlikely(!st->last_collected_time.tv_sec || !microseconds)) {
+        // the first entry
+        microseconds = st->update_every * USEC_PER_SEC;
+    }
+    st->usec_since_last_update = microseconds;
+}
+
+void rrdset_next_usec(RRDSET *st, usec_t microseconds)
+{
+    struct timeval now;
+    now_realtime_timeval(&now);
+
+    if(unlikely(!st->last_collected_time.tv_sec)) {
+        // the first entry
+        microseconds = st->update_every * USEC_PER_SEC;
+    }
+    else if(unlikely(!microseconds)) {
+        // no dt given by the plugin
+        microseconds = dt_usec(&now, &st->last_collected_time);
+    }
+    else {
+        // microseconds has the time since the last collection
+#ifdef NETDATA_INTERNAL_CHECKS
+        usec_t now_usec = timeval_usec(&now);
+        usec_t last_usec = timeval_usec(&st->last_collected_time);
+#endif
+        usec_t since_last_usec = dt_usec(&now, &st->last_collected_time);
+
+        // verify the microseconds given is good
+        if(unlikely(microseconds > since_last_usec)) {
+            debug(D_RRD_CALLS, "dt %llu usec given is too big - it leads %llu usec to the future, for chart '%s' (%s).", microseconds, microseconds - since_last_usec, st->name, st->id);
+
+#ifdef NETDATA_INTERNAL_CHECKS
+            if(unlikely(last_usec + microseconds > now_usec + 1000))
+                error("dt %llu usec given is too big - it leads %llu usec to the future, for chart '%s' (%s).", microseconds, microseconds - since_last_usec, st->name, st->id);
+#endif
+
+            microseconds = since_last_usec;
+        }
+        else if(unlikely(microseconds < since_last_usec * 0.8)) {
+            debug(D_RRD_CALLS, "dt %llu usec given is too small - expected %llu usec up to -20%%, for chart '%s' (%s).", microseconds, since_last_usec, st->name, st->id);
+
+#ifdef NETDATA_INTERNAL_CHECKS
+            error("dt %llu usec given is too small - expected %llu usec up to -20%%, for chart '%s' (%s).", microseconds, since_last_usec, st->name, st->id);
+#endif
+            microseconds = since_last_usec;
+        }
+    }
+    debug(D_RRD_CALLS, "rrdset_next_usec() for chart %s with microseconds %llu", st->name, microseconds);
+
+    if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: NEXT: %llu microseconds", st->name, microseconds);
+    st->usec_since_last_update = microseconds;
+}
+
+
+// ----------------------------------------------------------------------------
+// RRDSET - process the collected values for all dimensions of a chart
+
+usec_t rrdset_done(RRDSET *st) {
+    if(unlikely(netdata_exit)) return 0;
+
+    debug(D_RRD_CALLS, "rrdset_done() for chart %s", st->name);
+
+    RRDDIM *rd;
+
+    int
+            pthreadoldcancelstate;  // store the old cancelable pthread state, to restore it at the end
+
+    char
+            store_this_entry = 1,   // boolean: 1 = store this entry, 0 = don't store this entry
+            first_entry = 0;        // boolean: 1 = this is the first entry seen for this chart, 0 = all other entries
+
+    unsigned int
+            stored_entries = 0;     // the number of entries we have stored in the db, during this call to rrdset_done()
+
+    usec_t
+            last_collect_ut,        // the timestamp in microseconds, of the last collected value
+            now_collect_ut,         // the timestamp in microseconds, of this collected value (this is NOW)
+            last_stored_ut,         // the timestamp in microseconds, of the last stored entry in the db
+            next_store_ut,          // the timestamp in microseconds, of the next entry to store in the db
+            update_every_ut = st->update_every * USEC_PER_SEC; // st->update_every in microseconds
+
+    if(unlikely(pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &pthreadoldcancelstate) != 0))
+        error("Cannot set pthread cancel state to DISABLE.");
+
+    // a read lock is OK here
+    pthread_rwlock_rdlock(&st->rwlock);
+
+/*
+    // enable the chart, if it was disabled
+    if(unlikely(rrd_delete_unupdated_dimensions) && !st->enabled)
+        st->enabled = 1;
+*/
+
+    // check if the chart has a long time to be updated
+    if(unlikely(st->usec_since_last_update > st->entries * update_every_ut)) {
+        info("%s: took too long to be updated (%0.3Lf secs). Resetting it.", st->name, (long double)(st->usec_since_last_update / 1000000.0));
+        rrdset_reset(st);
+        st->usec_since_last_update = update_every_ut;
+        first_entry = 1;
+    }
+    if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: microseconds since last update: %llu", st->name, st->usec_since_last_update);
+
+    // set last_collected_time
+    if(unlikely(!st->last_collected_time.tv_sec)) {
+        // it is the first entry
+        // set the last_collected_time to now
+        now_realtime_timeval(&st->last_collected_time);
+        timeval_align(&st->last_collected_time, st->update_every);
+
+        last_collect_ut = st->last_collected_time.tv_sec * USEC_PER_SEC + st->last_collected_time.tv_usec - update_every_ut;
+
+        // the first entry should not be stored
+        store_this_entry = 0;
+        first_entry = 1;
+
+        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: has not set last_collected_time. Setting it now. Will not store the next entry.", st->name);
+    }
+    else {
+        // it is not the first entry
+        // calculate the proper last_collected_time, using usec_since_last_update
+        last_collect_ut = st->last_collected_time.tv_sec * USEC_PER_SEC + st->last_collected_time.tv_usec;
+        usec_t ut = last_collect_ut + st->usec_since_last_update;
+        st->last_collected_time.tv_sec = (time_t) (ut / USEC_PER_SEC);
+        st->last_collected_time.tv_usec = (suseconds_t) (ut % USEC_PER_SEC);
+    }
+
+    // if this set has not been updated in the past
+    // we fake the last_update time to be = now - usec_since_last_update
+    if(unlikely(!st->last_updated.tv_sec)) {
+        // it has never been updated before
+        // set a fake last_updated, in the past using usec_since_last_update
+        usec_t ut = st->last_collected_time.tv_sec * USEC_PER_SEC + st->last_collected_time.tv_usec - st->usec_since_last_update;
+        st->last_updated.tv_sec = (time_t) (ut / USEC_PER_SEC);
+        st->last_updated.tv_usec = (suseconds_t) (ut % USEC_PER_SEC);
+
+        // the first entry should not be stored
+        store_this_entry = 0;
+        first_entry = 1;
+
+        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: initializing last_updated to now - %llu microseconds (%0.3Lf). Will not store the next entry.", st->name, st->usec_since_last_update, (long double)ut/1000000.0);
+    }
+
+    // check if we will re-write the entire data set
+    if(unlikely(dt_usec(&st->last_collected_time, &st->last_updated) > st->entries * update_every_ut)) {
+        info("%s: too old data (last updated at %ld.%ld, last collected at %ld.%ld). Resetting it. Will not store the next entry.", st->name, st->last_updated.tv_sec, st->last_updated.tv_usec, st->last_collected_time.tv_sec, st->last_collected_time.tv_usec);
+        rrdset_reset(st);
+
+        st->usec_since_last_update = update_every_ut;
+
+        now_realtime_timeval(&st->last_collected_time);
+        timeval_align(&st->last_collected_time, st->update_every);
+
+        usec_t ut = st->last_collected_time.tv_sec * USEC_PER_SEC + st->last_collected_time.tv_usec - st->usec_since_last_update;
+        st->last_updated.tv_sec = (time_t) (ut / USEC_PER_SEC);
+        st->last_updated.tv_usec = (suseconds_t) (ut % USEC_PER_SEC);
+
+        // the first entry should not be stored
+        store_this_entry = 0;
+        first_entry = 1;
+    }
+
+    // these are the 3 variables that will help us in interpolation
+    // last_stored_ut = the last time we added a value to the storage
+    // now_collect_ut = the time the current value has been collected
+    // next_store_ut  = the time of the next interpolation point
+    last_stored_ut = st->last_updated.tv_sec * USEC_PER_SEC + st->last_updated.tv_usec;
+    now_collect_ut = st->last_collected_time.tv_sec * USEC_PER_SEC + st->last_collected_time.tv_usec;
+    next_store_ut  = (st->last_updated.tv_sec + st->update_every) * USEC_PER_SEC;
+
+    if(unlikely(st->debug)) {
+        debug(D_RRD_STATS, "%s: last_collect_ut = %0.3Lf (last collection time)", st->name, (long double)last_collect_ut/1000000.0);
+        debug(D_RRD_STATS, "%s: now_collect_ut  = %0.3Lf (current collection time)", st->name, (long double)now_collect_ut/1000000.0);
+        debug(D_RRD_STATS, "%s: last_stored_ut  = %0.3Lf (last updated time)", st->name, (long double)last_stored_ut/1000000.0);
+        debug(D_RRD_STATS, "%s: next_store_ut   = %0.3Lf (next interpolation point)", st->name, (long double)next_store_ut/1000000.0);
+    }
+
+    if(unlikely(!st->counter_done)) {
+        store_this_entry = 0;
+        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: Will not store the next entry.", st->name);
+    }
+    st->counter_done++;
+
+    // calculate totals and count the dimensions
+    int dimensions;
+    st->collected_total = 0;
+    for( rd = st->dimensions, dimensions = 0 ; rd ; rd = rd->next, dimensions++ )
+        if(likely(rrddim_flag_check(rd, RRDDIM_FLAG_UPDATED)))
+            st->collected_total += rd->collected_value;
+
+    uint32_t storage_flags = SN_EXISTS;
+
+    // process all dimensions to calculate their values
+    // based on the collected figures only
+    // at this stage we do not interpolate anything
+    for( rd = st->dimensions ; rd ; rd = rd->next ) {
+
+        if(unlikely(!rrddim_flag_check(rd, RRDDIM_FLAG_UPDATED))) {
+            rd->calculated_value = 0;
+            continue;
+        }
+
+        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: START "
+                    " last_collected_value = " COLLECTED_NUMBER_FORMAT
+                    " collected_value = " COLLECTED_NUMBER_FORMAT
+                    " last_calculated_value = " CALCULATED_NUMBER_FORMAT
+                    " calculated_value = " CALCULATED_NUMBER_FORMAT
+                                      , st->id, rd->name
+                                      , rd->last_collected_value
+                                      , rd->collected_value
+                                      , rd->last_calculated_value
+                                      , rd->calculated_value
+            );
+
+        switch(rd->algorithm) {
+            case RRD_ALGORITHM_ABSOLUTE:
+                rd->calculated_value = (calculated_number)rd->collected_value
+                                       * (calculated_number)rd->multiplier
+                                       / (calculated_number)rd->divisor;
+
+                if(unlikely(st->debug))
+                    debug(D_RRD_STATS, "%s/%s: CALC ABS/ABS-NO-IN "
+                            CALCULATED_NUMBER_FORMAT " = "
+                            COLLECTED_NUMBER_FORMAT
+                            " * " CALCULATED_NUMBER_FORMAT
+                            " / " CALCULATED_NUMBER_FORMAT
+                          , st->id, rd->name
+                          , rd->calculated_value
+                          , rd->collected_value
+                          , (calculated_number)rd->multiplier
+                          , (calculated_number)rd->divisor
+                    );
+                break;
+
+            case RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL:
+                if(unlikely(!st->collected_total))
+                    rd->calculated_value = 0;
+                else
+                    // the percentage of the current value
+                    // over the total of all dimensions
+                    rd->calculated_value =
+                            (calculated_number)100
+                            * (calculated_number)rd->collected_value
+                            / (calculated_number)st->collected_total;
+
+                if(unlikely(st->debug))
+                    debug(D_RRD_STATS, "%s/%s: CALC PCENT-ROW "
+                            CALCULATED_NUMBER_FORMAT " = 100"
+                                    " * " COLLECTED_NUMBER_FORMAT
+                            " / " COLLECTED_NUMBER_FORMAT
+                          , st->id, rd->name
+                          , rd->calculated_value
+                          , rd->collected_value
+                          , st->collected_total
+                    );
+                break;
+
+            case RRD_ALGORITHM_INCREMENTAL:
+                if(unlikely(rd->counter <= 1)) {
+                    rd->calculated_value = 0;
+                    continue;
+                }
+
+                // if the new is smaller than the old (an overflow, or reset), set the old equal to the new
+                // to reset the calculation (it will give zero as the calculation for this second)
+                if(unlikely(rd->last_collected_value > rd->collected_value)) {
+                    debug(D_RRD_STATS, "%s.%s: RESET or OVERFLOW. Last collected value = " COLLECTED_NUMBER_FORMAT ", current = " COLLECTED_NUMBER_FORMAT
+                          , st->name, rd->name
+                          , rd->last_collected_value
+                          , rd->collected_value);
+
+                    if(!(rrddim_flag_check(rd, RRDDIM_FLAG_DONT_DETECT_RESETS_OR_OVERFLOWS)))
+                        storage_flags = SN_EXISTS_RESET;
+
+                    rd->last_collected_value = rd->collected_value;
+                }
+
+                rd->calculated_value +=
+                        (calculated_number)(rd->collected_value - rd->last_collected_value)
+                        * (calculated_number)rd->multiplier
+                        / (calculated_number)rd->divisor;
+
+                if(unlikely(st->debug))
+                    debug(D_RRD_STATS, "%s/%s: CALC INC PRE "
+                            CALCULATED_NUMBER_FORMAT " = ("
+                            COLLECTED_NUMBER_FORMAT " - " COLLECTED_NUMBER_FORMAT
+                            ")"
+                                    " * " CALCULATED_NUMBER_FORMAT
+                            " / " CALCULATED_NUMBER_FORMAT
+                          , st->id, rd->name
+                          , rd->calculated_value
+                          , rd->collected_value, rd->last_collected_value
+                          , (calculated_number)rd->multiplier
+                          , (calculated_number)rd->divisor
+                    );
+                break;
+
+            case RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL:
+                if(unlikely(rd->counter <= 1)) {
+                    rd->calculated_value = 0;
+                    continue;
+                }
+
+                // if the new is smaller than the old (an overflow, or reset), set the old equal to the new
+                // to reset the calculation (it will give zero as the calculation for this second)
+                if(unlikely(rd->last_collected_value > rd->collected_value)) {
+                    debug(D_RRD_STATS, "%s.%s: RESET or OVERFLOW. Last collected value = " COLLECTED_NUMBER_FORMAT ", current = " COLLECTED_NUMBER_FORMAT
+                          , st->name, rd->name
+                          , rd->last_collected_value
+                          , rd->collected_value);
+
+                    if(!(rrddim_flag_check(rd, RRDDIM_FLAG_DONT_DETECT_RESETS_OR_OVERFLOWS)))
+                        storage_flags = SN_EXISTS_RESET;
+
+                    rd->last_collected_value = rd->collected_value;
+                }
+
+                // the percentage of the current increment
+                // over the increment of all dimensions together
+                if(unlikely(st->collected_total == st->last_collected_total))
+                    rd->calculated_value = 0;
+                else
+                    rd->calculated_value =
+                            (calculated_number)100
+                            * (calculated_number)(rd->collected_value - rd->last_collected_value)
+                            / (calculated_number)(st->collected_total - st->last_collected_total);
+
+                if(unlikely(st->debug))
+                    debug(D_RRD_STATS, "%s/%s: CALC PCENT-DIFF "
+                            CALCULATED_NUMBER_FORMAT " = 100"
+                                    " * (" COLLECTED_NUMBER_FORMAT " - " COLLECTED_NUMBER_FORMAT ")"
+                                    " / (" COLLECTED_NUMBER_FORMAT " - " COLLECTED_NUMBER_FORMAT ")"
+                          , st->id, rd->name
+                          , rd->calculated_value
+                          , rd->collected_value, rd->last_collected_value
+                          , st->collected_total, st->last_collected_total
+                    );
+                break;
+
+            default:
+                // make the default zero, to make sure
+                // it gets noticed when we add new types
+                rd->calculated_value = 0;
+
+                if(unlikely(st->debug))
+                    debug(D_RRD_STATS, "%s/%s: CALC "
+                            CALCULATED_NUMBER_FORMAT " = 0"
+                          , st->id, rd->name
+                          , rd->calculated_value
+                    );
+                break;
+        }
+
+        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: PHASE2 "
+                    " last_collected_value = " COLLECTED_NUMBER_FORMAT
+                    " collected_value = " COLLECTED_NUMBER_FORMAT
+                    " last_calculated_value = " CALCULATED_NUMBER_FORMAT
+                    " calculated_value = " CALCULATED_NUMBER_FORMAT
+                                      , st->id, rd->name
+                                      , rd->last_collected_value
+                                      , rd->collected_value
+                                      , rd->last_calculated_value
+                                      , rd->calculated_value
+            );
+
+    }
+
+    // at this point we have all the calculated values ready
+    // it is now time to interpolate values on a second boundary
+
+    if(unlikely(now_collect_ut < next_store_ut)) {
+        // this is collected in the same interpolation point
+        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: THIS IS IN THE SAME INTERPOLATION POINT", st->name);
+#ifdef NETDATA_INTERNAL_CHECKS
+        info("%s is collected in the same interpolation point: short by %llu microseconds", st->name, next_store_ut - now_collect_ut);
+#endif
+    }
+
+    usec_t first_ut = last_stored_ut;
+    long long iterations = (now_collect_ut - last_stored_ut) / (update_every_ut);
+    if((now_collect_ut % (update_every_ut)) == 0) iterations++;
+
+    for( ; next_store_ut <= now_collect_ut ; last_collect_ut = next_store_ut, next_store_ut += update_every_ut, iterations-- ) {
+#ifdef NETDATA_INTERNAL_CHECKS
+        if(iterations < 0) { error("%s: iterations calculation wrapped! first_ut = %llu, last_stored_ut = %llu, next_store_ut = %llu, now_collect_ut = %llu", st->name, first_ut, last_stored_ut, next_store_ut, now_collect_ut); }
+#endif
+
+        if(unlikely(st->debug)) {
+            debug(D_RRD_STATS, "%s: last_stored_ut = %0.3Lf (last updated time)", st->name, (long double)last_stored_ut/1000000.0);
+            debug(D_RRD_STATS, "%s: next_store_ut  = %0.3Lf (next interpolation point)", st->name, (long double)next_store_ut/1000000.0);
+        }
+
+        st->last_updated.tv_sec = (time_t) (next_store_ut / USEC_PER_SEC);
+        st->last_updated.tv_usec = 0;
+
+        for( rd = st->dimensions ; likely(rd) ; rd = rd->next ) {
+            calculated_number new_value;
+
+            switch(rd->algorithm) {
+                case RRD_ALGORITHM_INCREMENTAL:
+                    new_value = (calculated_number)
+                            (      rd->calculated_value
+                                   * (calculated_number)(next_store_ut - last_collect_ut)
+                                   / (calculated_number)(now_collect_ut - last_collect_ut)
+                            );
+
+                    if(unlikely(st->debug))
+                        debug(D_RRD_STATS, "%s/%s: CALC2 INC "
+                                CALCULATED_NUMBER_FORMAT " = "
+                                CALCULATED_NUMBER_FORMAT
+                                " * %llu"
+                                        " / %llu"
+                              , st->id, rd->name
+                              , new_value
+                              , rd->calculated_value
+                              , (next_store_ut - last_stored_ut)
+                              , (now_collect_ut - last_stored_ut)
+                        );
+
+                    rd->calculated_value -= new_value;
+                    new_value += rd->last_calculated_value;
+                    rd->last_calculated_value = 0;
+                    new_value /= (calculated_number)st->update_every;
+
+                    if(unlikely(next_store_ut - last_stored_ut < update_every_ut)) {
+                        if(unlikely(st->debug))
+                            debug(D_RRD_STATS, "%s/%s: COLLECTION POINT IS SHORT " CALCULATED_NUMBER_FORMAT " - EXTRAPOLATING",
+                                    st->id, rd->name
+                                  , (calculated_number)(next_store_ut - last_stored_ut)
+                            );
+                        new_value = new_value * (calculated_number)(st->update_every * 1000000) / (calculated_number)(next_store_ut - last_stored_ut);
+                    }
+                    break;
+
+                case RRD_ALGORITHM_ABSOLUTE:
+                case RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL:
+                case RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL:
+                default:
+                    if(iterations == 1) {
+                        // this is the last iteration
+                        // do not interpolate
+                        // just show the calculated value
+
+                        new_value = rd->calculated_value;
+                    }
+                    else {
+                        // we have missed an update
+                        // interpolate in the middle values
+
+                        new_value = (calculated_number)
+                                (   (     (rd->calculated_value - rd->last_calculated_value)
+                                          * (calculated_number)(next_store_ut - last_collect_ut)
+                                          / (calculated_number)(now_collect_ut - last_collect_ut)
+                                    )
+                                    +  rd->last_calculated_value
+                                );
+
+                        if(unlikely(st->debug))
+                            debug(D_RRD_STATS, "%s/%s: CALC2 DEF "
+                                    CALCULATED_NUMBER_FORMAT " = ((("
+                                            "(" CALCULATED_NUMBER_FORMAT " - " CALCULATED_NUMBER_FORMAT ")"
+                                            " * %llu"
+                                            " / %llu) + " CALCULATED_NUMBER_FORMAT
+                                  , st->id, rd->name
+                                  , new_value
+                                  , rd->calculated_value, rd->last_calculated_value
+                                  , (next_store_ut - first_ut)
+                                  , (now_collect_ut - first_ut), rd->last_calculated_value
+                            );
+                    }
+                    break;
+            }
+
+            if(unlikely(!store_this_entry)) {
+                rd->values[st->current_entry] = pack_storage_number(0, SN_NOT_EXISTS);
+                continue;
+            }
+
+            if(likely(rrddim_flag_check(rd, RRDDIM_FLAG_UPDATED) && rd->counter > 1 && iterations < st->gap_when_lost_iterations_above)) {
+                rd->values[st->current_entry] = pack_storage_number(new_value, storage_flags );
+                rd->last_stored_value = new_value;
+
+                if(unlikely(st->debug))
+                    debug(D_RRD_STATS, "%s/%s: STORE[%ld] "
+                            CALCULATED_NUMBER_FORMAT " = " CALCULATED_NUMBER_FORMAT
+                          , st->id, rd->name
+                          , st->current_entry
+                          , unpack_storage_number(rd->values[st->current_entry]), new_value
+                    );
+            }
+            else {
+                if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: STORE[%ld] = NON EXISTING "
+                                              , st->id, rd->name
+                                              , st->current_entry
+                    );
+                rd->values[st->current_entry] = pack_storage_number(0, SN_NOT_EXISTS);
+                rd->last_stored_value = NAN;
+            }
+
+            stored_entries++;
+
+            if(unlikely(st->debug)) {
+                calculated_number t1 = new_value * (calculated_number)rd->multiplier / (calculated_number)rd->divisor;
+                calculated_number t2 = unpack_storage_number(rd->values[st->current_entry]);
+                calculated_number accuracy = accuracy_loss(t1, t2);
+                debug(D_RRD_STATS, "%s/%s: UNPACK[%ld] = " CALCULATED_NUMBER_FORMAT " FLAGS=0x%08x (original = " CALCULATED_NUMBER_FORMAT ", accuracy loss = " CALCULATED_NUMBER_FORMAT "%%%s)"
+                      , st->id, rd->name
+                      , st->current_entry
+                      , t2
+                      , get_storage_number_flags(rd->values[st->current_entry])
+                      , t1
+                      , accuracy
+                      , (accuracy > ACCURACY_LOSS) ? " **TOO BIG** " : ""
+                );
+
+                rd->collected_volume += t1;
+                rd->stored_volume += t2;
+                accuracy = accuracy_loss(rd->collected_volume, rd->stored_volume);
+                debug(D_RRD_STATS, "%s/%s: VOLUME[%ld] = " CALCULATED_NUMBER_FORMAT ", calculated  = " CALCULATED_NUMBER_FORMAT ", accuracy loss = " CALCULATED_NUMBER_FORMAT "%%%s"
+                      , st->id, rd->name
+                      , st->current_entry
+                      , rd->stored_volume
+                      , rd->collected_volume
+                      , accuracy
+                      , (accuracy > ACCURACY_LOSS) ? " **TOO BIG** " : ""
+                );
+
+            }
+        }
+        // reset the storage flags for the next point, if any;
+        storage_flags = SN_EXISTS;
+
+        st->counter++;
+        st->current_entry = ((st->current_entry + 1) >= st->entries) ? 0 : st->current_entry + 1;
+        last_stored_ut = next_store_ut;
+    }
+
+    st->last_collected_total  = st->collected_total;
+
+    for( rd = st->dimensions; rd ; rd = rd->next ) {
+        if(unlikely(!rrddim_flag_check(rd, RRDDIM_FLAG_UPDATED)))
+            continue;
+
+        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: setting last_collected_value (old: " COLLECTED_NUMBER_FORMAT ") to last_collected_value (new: " COLLECTED_NUMBER_FORMAT ")", st->id, rd->name, rd->last_collected_value, rd->collected_value);
+        rd->last_collected_value = rd->collected_value;
+
+        switch(rd->algorithm) {
+            case RRD_ALGORITHM_INCREMENTAL:
+                if(unlikely(!first_entry)) {
+                    if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: setting last_calculated_value (old: " CALCULATED_NUMBER_FORMAT ") to last_calculated_value (new: " CALCULATED_NUMBER_FORMAT ")", st->id, rd->name, rd->last_calculated_value + rd->calculated_value, rd->calculated_value);
+                    rd->last_calculated_value += rd->calculated_value;
+                }
+                else {
+                    if(unlikely(st->debug)) debug(D_RRD_STATS, "%s: THIS IS THE FIRST POINT", st->name);
+                }
+                break;
+
+            case RRD_ALGORITHM_ABSOLUTE:
+            case RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL:
+            case RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL:
+                if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: setting last_calculated_value (old: " CALCULATED_NUMBER_FORMAT ") to last_calculated_value (new: " CALCULATED_NUMBER_FORMAT ")", st->id, rd->name, rd->last_calculated_value, rd->calculated_value);
+                rd->last_calculated_value = rd->calculated_value;
+                break;
+        }
+
+        rd->calculated_value = 0;
+        rd->collected_value = 0;
+        rrddim_flag_clear(rd, RRDDIM_FLAG_UPDATED);
+
+        if(unlikely(st->debug)) debug(D_RRD_STATS, "%s/%s: END "
+                    " last_collected_value = " COLLECTED_NUMBER_FORMAT
+                    " collected_value = " COLLECTED_NUMBER_FORMAT
+                    " last_calculated_value = " CALCULATED_NUMBER_FORMAT
+                    " calculated_value = " CALCULATED_NUMBER_FORMAT
+                                      , st->id, rd->name
+                                      , rd->last_collected_value
+                                      , rd->collected_value
+                                      , rd->last_calculated_value
+                                      , rd->calculated_value
+            );
+    }
+
+    // ALL DONE ABOUT THE DATA UPDATE
+    // --------------------------------------------------------------------
+
+/*
+    // find if there are any obsolete dimensions (not updated recently)
+    if(unlikely(rrd_delete_unupdated_dimensions)) {
+
+        for( rd = st->dimensions; likely(rd) ; rd = rd->next )
+            if((rd->last_collected_time.tv_sec + (rrd_delete_unupdated_dimensions * st->update_every)) < st->last_collected_time.tv_sec)
+                break;
+
+        if(unlikely(rd)) {
+            RRDDIM *last;
+            // there is dimension to free
+            // upgrade our read lock to a write lock
+            pthread_rwlock_unlock(&st->rwlock);
+            pthread_rwlock_wrlock(&st->rwlock);
+
+            for( rd = st->dimensions, last = NULL ; likely(rd) ; ) {
+                // remove it only it is not updated in rrd_delete_unupdated_dimensions seconds
+
+                if(unlikely((rd->last_collected_time.tv_sec + (rrd_delete_unupdated_dimensions * st->update_every)) < st->last_collected_time.tv_sec)) {
+                    info("Removing obsolete dimension '%s' (%s) of '%s' (%s).", rd->name, rd->id, st->name, st->id);
+
+                    if(unlikely(!last)) {
+                        st->dimensions = rd->next;
+                        rd->next = NULL;
+                        rrddim_free(st, rd);
+                        rd = st->dimensions;
+                        continue;
+                    }
+                    else {
+                        last->next = rd->next;
+                        rd->next = NULL;
+                        rrddim_free(st, rd);
+                        rd = last->next;
+                        continue;
+                    }
+                }
+
+                last = rd;
+                rd = rd->next;
+            }
+
+            if(unlikely(!st->dimensions)) {
+                info("Disabling chart %s (%s) since it does not have any dimensions", st->name, st->id);
+                st->enabled = 0;
+            }
+        }
+    }
+*/
+
+    pthread_rwlock_unlock(&st->rwlock);
+
+    if(unlikely(pthread_setcancelstate(pthreadoldcancelstate, NULL) != 0))
+        error("Cannot set pthread cancel state to RESTORE (%d).", pthreadoldcancelstate);
+
+    return(st->usec_since_last_update);
+}
+
index 44af74f03a04c1576e7eab5d41b33a82bff2fe7a..115fc837364c4e7ea8ef4852c7e2de64a1f2dbf0 100644 (file)
@@ -139,7 +139,7 @@ int do_proc_sys_devices_system_edac_mc(int update_every, usec_t dt) {
 
             for(m = mc_root; m; m = m->next)
                 if(m->ce_count_filename)
-                    m->ce_rd = rrddim_add(ce_st, m->name, NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    m->ce_rd = rrddim_add(ce_st, m->name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else
             rrdset_next(ce_st);
@@ -167,7 +167,7 @@ int do_proc_sys_devices_system_edac_mc(int update_every, usec_t dt) {
 
             for(m = mc_root; m; m = m->next)
                 if(m->ue_count_filename)
-                    m->ue_rd = rrddim_add(ue_st, m->name, NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    m->ue_rd = rrddim_add(ue_st, m->name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
         }
         else
             rrdset_next(ue_st);
index fccaff144547cb07b532c0778b076969e03621a4..bb12551c6c3ec1848e15bebf01188a5f419609a5 100644 (file)
@@ -95,10 +95,10 @@ int do_proc_sys_devices_system_node(int update_every, usec_t dt) {
                     st = rrdset_create("mem", m->name, NULL, "numa", NULL, "NUMA events", "events/s", 1000, update_every, RRDSET_TYPE_LINE);
                     st->isdetail = 1;
 
-                    rrddim_add(st, "local_node", "local", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "numa_foreign", "foreign", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "interleave_hit", "interleave", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                    rrddim_add(st, "other_node", "other", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "local_node", "local", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "numa_foreign", "foreign", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "interleave_hit", "interleave", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                    rrddim_add(st, "other_node", "other", 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
                     m->numastat_st = st;
                 }
index 133721e4c97f347b828f110a39ddd78ef9da159c..ada7a920657c4a7974fa1e9e1cb386faa4448f06 100644 (file)
@@ -1536,134 +1536,134 @@ void update_services_charts(int update_every,
 
         if(likely(do_cpu && cg->cpuacct_stat.updated)) {
             if(unlikely(!cg->rd_cpu))
-                cg->rd_cpu = rrddim_add(st_cpu, cg->chart_id, cg->chart_title, 100, hz, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_cpu = rrddim_add(st_cpu, cg->chart_id, cg->chart_title, 100, hz, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_cpu, cg->rd_cpu, cg->cpuacct_stat.user + cg->cpuacct_stat.system);
         }
 
         if(likely(do_mem_usage && cg->memory.updated_usage_in_bytes)) {
             if(unlikely(!cg->rd_mem_usage))
-                cg->rd_mem_usage = rrddim_add(st_mem_usage, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                cg->rd_mem_usage = rrddim_add(st_mem_usage, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
 
             rrddim_set_by_pointer(st_mem_usage, cg->rd_mem_usage, cg->memory.usage_in_bytes - ((cgroup_used_memory_without_cache)?cg->memory.cache:0));
         }
 
         if(likely(do_mem_detailed && cg->memory.updated_detailed)) {
             if(unlikely(!cg->rd_mem_detailed_rss))
-                cg->rd_mem_detailed_rss = rrddim_add(st_mem_detailed_rss, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                cg->rd_mem_detailed_rss = rrddim_add(st_mem_detailed_rss, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
             rrddim_set_by_pointer(st_mem_detailed_rss, cg->rd_mem_detailed_rss, cg->memory.rss + cg->memory.rss_huge);
 
             if(unlikely(!cg->rd_mem_detailed_mapped))
-                cg->rd_mem_detailed_mapped = rrddim_add(st_mem_detailed_mapped, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                cg->rd_mem_detailed_mapped = rrddim_add(st_mem_detailed_mapped, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
             rrddim_set_by_pointer(st_mem_detailed_mapped, cg->rd_mem_detailed_mapped, cg->memory.mapped_file);
 
             if(unlikely(!cg->rd_mem_detailed_cache))
-                cg->rd_mem_detailed_cache = rrddim_add(st_mem_detailed_cache, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                cg->rd_mem_detailed_cache = rrddim_add(st_mem_detailed_cache, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
             rrddim_set_by_pointer(st_mem_detailed_cache, cg->rd_mem_detailed_cache, cg->memory.cache);
 
             if(unlikely(!cg->rd_mem_detailed_writeback))
-                cg->rd_mem_detailed_writeback = rrddim_add(st_mem_detailed_writeback, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                cg->rd_mem_detailed_writeback = rrddim_add(st_mem_detailed_writeback, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
             rrddim_set_by_pointer(st_mem_detailed_writeback, cg->rd_mem_detailed_writeback, cg->memory.writeback);
 
             if(unlikely(!cg->rd_mem_detailed_pgfault))
-                cg->rd_mem_detailed_pgfault = rrddim_add(st_mem_detailed_pgfault, cg->chart_id, cg->chart_title, system_page_size, 1024 * 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_mem_detailed_pgfault = rrddim_add(st_mem_detailed_pgfault, cg->chart_id, cg->chart_title, system_page_size, 1024 * 1024, RRD_ALGORITHM_INCREMENTAL);
             rrddim_set_by_pointer(st_mem_detailed_pgfault, cg->rd_mem_detailed_pgfault, cg->memory.pgfault);
 
             if(unlikely(!cg->rd_mem_detailed_pgmajfault))
-                cg->rd_mem_detailed_pgmajfault = rrddim_add(st_mem_detailed_pgmajfault, cg->chart_id, cg->chart_title, system_page_size, 1024 * 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_mem_detailed_pgmajfault = rrddim_add(st_mem_detailed_pgmajfault, cg->chart_id, cg->chart_title, system_page_size, 1024 * 1024, RRD_ALGORITHM_INCREMENTAL);
             rrddim_set_by_pointer(st_mem_detailed_pgmajfault, cg->rd_mem_detailed_pgmajfault, cg->memory.pgmajfault);
 
             if(unlikely(!cg->rd_mem_detailed_pgpgin))
-                cg->rd_mem_detailed_pgpgin = rrddim_add(st_mem_detailed_pgpgin, cg->chart_id, cg->chart_title, system_page_size, 1024 * 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_mem_detailed_pgpgin = rrddim_add(st_mem_detailed_pgpgin, cg->chart_id, cg->chart_title, system_page_size, 1024 * 1024, RRD_ALGORITHM_INCREMENTAL);
             rrddim_set_by_pointer(st_mem_detailed_pgpgin, cg->rd_mem_detailed_pgpgin, cg->memory.pgpgin);
 
             if(unlikely(!cg->rd_mem_detailed_pgpgout))
-                cg->rd_mem_detailed_pgpgout = rrddim_add(st_mem_detailed_pgpgout, cg->chart_id, cg->chart_title, system_page_size, 1024 * 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_mem_detailed_pgpgout = rrddim_add(st_mem_detailed_pgpgout, cg->chart_id, cg->chart_title, system_page_size, 1024 * 1024, RRD_ALGORITHM_INCREMENTAL);
             rrddim_set_by_pointer(st_mem_detailed_pgpgout, cg->rd_mem_detailed_pgpgout, cg->memory.pgpgout);
         }
 
         if(likely(do_mem_failcnt && cg->memory.updated_failcnt)) {
             if(unlikely(!cg->rd_mem_failcnt))
-                cg->rd_mem_failcnt = rrddim_add(st_mem_failcnt, cg->chart_id, cg->chart_title, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_mem_failcnt = rrddim_add(st_mem_failcnt, cg->chart_id, cg->chart_title, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_mem_failcnt, cg->rd_mem_failcnt, cg->memory.failcnt);
         }
 
         if(likely(do_swap_usage && cg->memory.updated_msw_usage_in_bytes)) {
             if(unlikely(!cg->rd_swap_usage))
-                cg->rd_swap_usage = rrddim_add(st_swap_usage, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                cg->rd_swap_usage = rrddim_add(st_swap_usage, cg->chart_id, cg->chart_title, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
 
             rrddim_set_by_pointer(st_swap_usage, cg->rd_swap_usage, cg->memory.msw_usage_in_bytes);
         }
 
         if(likely(do_io && cg->io_service_bytes.updated)) {
             if(unlikely(!cg->rd_io_service_bytes_read))
-                cg->rd_io_service_bytes_read = rrddim_add(st_io_read, cg->chart_id, cg->chart_title, 1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_io_service_bytes_read = rrddim_add(st_io_read, cg->chart_id, cg->chart_title, 1, 1024, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_io_read, cg->rd_io_service_bytes_read, cg->io_service_bytes.Read);
 
             if(unlikely(!cg->rd_io_service_bytes_write))
-                cg->rd_io_service_bytes_write = rrddim_add(st_io_write, cg->chart_id, cg->chart_title, 1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_io_service_bytes_write = rrddim_add(st_io_write, cg->chart_id, cg->chart_title, 1, 1024, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_io_write, cg->rd_io_service_bytes_write, cg->io_service_bytes.Write);
         }
 
         if(likely(do_io_ops && cg->io_serviced.updated)) {
             if(unlikely(!cg->rd_io_serviced_read))
-                cg->rd_io_serviced_read = rrddim_add(st_io_serviced_read, cg->chart_id, cg->chart_title, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_io_serviced_read = rrddim_add(st_io_serviced_read, cg->chart_id, cg->chart_title, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_io_serviced_read, cg->rd_io_serviced_read, cg->io_serviced.Read);
 
             if(unlikely(!cg->rd_io_serviced_write))
-                cg->rd_io_serviced_write = rrddim_add(st_io_serviced_write, cg->chart_id, cg->chart_title, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_io_serviced_write = rrddim_add(st_io_serviced_write, cg->chart_id, cg->chart_title, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_io_serviced_write, cg->rd_io_serviced_write, cg->io_serviced.Write);
         }
 
         if(likely(do_throttle_io && cg->throttle_io_service_bytes.updated)) {
             if(unlikely(!cg->rd_throttle_io_read))
-                cg->rd_throttle_io_read = rrddim_add(st_throttle_io_read, cg->chart_id, cg->chart_title, 1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_throttle_io_read = rrddim_add(st_throttle_io_read, cg->chart_id, cg->chart_title, 1, 1024, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_throttle_io_read, cg->rd_throttle_io_read, cg->throttle_io_service_bytes.Read);
 
             if(unlikely(!cg->rd_throttle_io_write))
-                cg->rd_throttle_io_write = rrddim_add(st_throttle_io_write, cg->chart_id, cg->chart_title, 1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_throttle_io_write = rrddim_add(st_throttle_io_write, cg->chart_id, cg->chart_title, 1, 1024, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_throttle_io_write, cg->rd_throttle_io_write, cg->throttle_io_service_bytes.Write);
         }
 
         if(likely(do_throttle_ops && cg->throttle_io_serviced.updated)) {
             if(unlikely(!cg->rd_throttle_io_serviced_read))
-                cg->rd_throttle_io_serviced_read = rrddim_add(st_throttle_ops_read, cg->chart_id, cg->chart_title, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_throttle_io_serviced_read = rrddim_add(st_throttle_ops_read, cg->chart_id, cg->chart_title, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_throttle_ops_read, cg->rd_throttle_io_serviced_read, cg->throttle_io_serviced.Read);
 
             if(unlikely(!cg->rd_throttle_io_serviced_write))
-                cg->rd_throttle_io_serviced_write = rrddim_add(st_throttle_ops_write, cg->chart_id, cg->chart_title, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_throttle_io_serviced_write = rrddim_add(st_throttle_ops_write, cg->chart_id, cg->chart_title, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_throttle_ops_write, cg->rd_throttle_io_serviced_write, cg->throttle_io_serviced.Write);
         }
 
         if(likely(do_queued_ops && cg->io_queued.updated)) {
             if(unlikely(!cg->rd_io_queued_read))
-                cg->rd_io_queued_read = rrddim_add(st_queued_ops_read, cg->chart_id, cg->chart_title, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_io_queued_read = rrddim_add(st_queued_ops_read, cg->chart_id, cg->chart_title, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_queued_ops_read, cg->rd_io_queued_read, cg->io_queued.Read);
 
             if(unlikely(!cg->rd_io_queued_write))
-                cg->rd_io_queued_write = rrddim_add(st_queued_ops_write, cg->chart_id, cg->chart_title, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_io_queued_write = rrddim_add(st_queued_ops_write, cg->chart_id, cg->chart_title, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_queued_ops_write, cg->rd_io_queued_write, cg->io_queued.Write);
         }
 
         if(likely(do_merged_ops && cg->io_merged.updated)) {
             if(unlikely(!cg->rd_io_merged_read))
-                cg->rd_io_merged_read = rrddim_add(st_merged_ops_read, cg->chart_id, cg->chart_title, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_io_merged_read = rrddim_add(st_merged_ops_read, cg->chart_id, cg->chart_title, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_merged_ops_read, cg->rd_io_merged_read, cg->io_merged.Read);
 
             if(unlikely(!cg->rd_io_merged_write))
-                cg->rd_io_merged_write = rrddim_add(st_merged_ops_write, cg->chart_id, cg->chart_title, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                cg->rd_io_merged_write = rrddim_add(st_merged_ops_write, cg->chart_id, cg->chart_title, 1, 1, RRD_ALGORITHM_INCREMENTAL);
 
             rrddim_set_by_pointer(st_merged_ops_write, cg->rd_io_merged_write, cg->io_merged.Write);
         }
@@ -1786,8 +1786,8 @@ void update_cgroup_charts(int update_every) {
                     snprintfz(title, CHART_TITLE_MAX, "CPU Usage (%d%% = %d core%s) for cgroup %s", (processors * 100), processors, (processors > 1) ? "s" : "", cg->chart_title);
                     cg->st_cpu = rrdset_create(type, "cpu", NULL, "cpu", "cgroup.cpu", title, "%", CHART_PRIORITY_CONTAINERS, update_every, RRDSET_TYPE_STACKED);
                 }
-                rrddim_add(cg->st_cpu, "user", NULL, 100, hz, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(cg->st_cpu, "system", NULL, 100, hz, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_cpu, "user", NULL, 100, hz, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_cpu, "system", NULL, 100, hz, RRD_ALGORITHM_INCREMENTAL);
             }
             else
                 rrdset_next(cg->st_cpu);
@@ -1810,7 +1810,7 @@ void update_cgroup_charts(int update_every) {
                 }
                 for(i = 0; i < cg->cpuacct_usage.cpus; i++) {
                     snprintfz(id, CHART_TITLE_MAX, "cpu%u", i);
-                    rrddim_add(cg->st_cpu_per_core, id, NULL, 100, 1000000000, RRDDIM_ALGORITHM_INCREMENTAL);
+                    rrddim_add(cg->st_cpu_per_core, id, NULL, 100, 1000000000, RRD_ALGORITHM_INCREMENTAL);
                 }
             }
             else
@@ -1832,12 +1832,12 @@ void update_cgroup_charts(int update_every) {
                     cg->st_mem = rrdset_create(type, "mem", NULL, "mem", "cgroup.mem", title, "MB", CHART_PRIORITY_CONTAINERS + 210, update_every, RRDSET_TYPE_STACKED);
                 }
 
-                rrddim_add(cg->st_mem, "cache", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-                rrddim_add(cg->st_mem, "rss", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                rrddim_add(cg->st_mem, "cache", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+                rrddim_add(cg->st_mem, "rss", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
                 if(cg->memory.detailed_has_swap)
-                    rrddim_add(cg->st_mem, "swap", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-                rrddim_add(cg->st_mem, "rss_huge", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-                rrddim_add(cg->st_mem, "mapped_file", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                    rrddim_add(cg->st_mem, "swap", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+                rrddim_add(cg->st_mem, "rss_huge", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+                rrddim_add(cg->st_mem, "mapped_file", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
             }
             else
                 rrdset_next(cg->st_mem);
@@ -1859,8 +1859,8 @@ void update_cgroup_charts(int update_every) {
                 }
 
                 if(cg->memory.detailed_has_dirty)
-                    rrddim_add(cg->st_writeback, "dirty", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-                rrddim_add(cg->st_writeback, "writeback", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                    rrddim_add(cg->st_writeback, "dirty", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+                rrddim_add(cg->st_writeback, "writeback", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
             }
             else
                 rrdset_next(cg->st_writeback);
@@ -1877,8 +1877,8 @@ void update_cgroup_charts(int update_every) {
                     snprintfz(title, CHART_TITLE_MAX, "Memory Activity for cgroup %s", cg->chart_title);
                     cg->st_mem_activity = rrdset_create(type, "mem_activity", NULL, "mem", "cgroup.mem_activity", title, "MB/s", CHART_PRIORITY_CONTAINERS + 400, update_every, RRDSET_TYPE_LINE);
                 }
-                rrddim_add(cg->st_mem_activity, "pgpgin", "in", system_page_size, 1024 * 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(cg->st_mem_activity, "pgpgout", "out", -system_page_size, 1024 * 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_mem_activity, "pgpgin", "in", system_page_size, 1024 * 1024, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_mem_activity, "pgpgout", "out", -system_page_size, 1024 * 1024, RRD_ALGORITHM_INCREMENTAL);
             }
             else
                 rrdset_next(cg->st_mem_activity);
@@ -1894,8 +1894,8 @@ void update_cgroup_charts(int update_every) {
                     snprintfz(title, CHART_TITLE_MAX, "Memory Page Faults for cgroup %s", cg->chart_title);
                     cg->st_pgfaults = rrdset_create(type, "pgfaults", NULL, "mem", "cgroup.pgfaults", title, "MB/s", CHART_PRIORITY_CONTAINERS + 500, update_every, RRDSET_TYPE_LINE);
                 }
-                rrddim_add(cg->st_pgfaults, "pgfault", NULL, system_page_size, 1024 * 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(cg->st_pgfaults, "pgmajfault", "swap", -system_page_size, 1024 * 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_pgfaults, "pgfault", NULL, system_page_size, 1024 * 1024, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_pgfaults, "pgmajfault", "swap", -system_page_size, 1024 * 1024, RRD_ALGORITHM_INCREMENTAL);
             }
             else
                 rrdset_next(cg->st_pgfaults);
@@ -1913,8 +1913,8 @@ void update_cgroup_charts(int update_every) {
                     snprintfz(title, CHART_TITLE_MAX, "Used Memory %sfor cgroup %s", (cgroup_used_memory_without_cache && cg->memory.updated_detailed)?"without Cache ":"", cg->chart_title);
                     cg->st_mem_usage = rrdset_create(type, "mem_usage", NULL, "mem", "cgroup.mem_usage", title, "MB", CHART_PRIORITY_CONTAINERS + 200, update_every, RRDSET_TYPE_STACKED);
                 }
-                rrddim_add(cg->st_mem_usage, "ram", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-                rrddim_add(cg->st_mem_usage, "swap", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+                rrddim_add(cg->st_mem_usage, "ram", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+                rrddim_add(cg->st_mem_usage, "swap", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
             }
             else
                 rrdset_next(cg->st_mem_usage);
@@ -1932,7 +1932,7 @@ void update_cgroup_charts(int update_every) {
                     snprintfz(title, CHART_TITLE_MAX, "Memory Limit Failures for cgroup %s", cg->chart_title);
                     cg->st_mem_failcnt = rrdset_create(type, "mem_failcnt", NULL, "mem", "cgroup.mem_failcnt", title, "count", CHART_PRIORITY_CONTAINERS + 250, update_every, RRDSET_TYPE_LINE);
                 }
-                rrddim_add(cg->st_mem_failcnt, "failures", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_mem_failcnt, "failures", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else
                 rrdset_next(cg->st_mem_failcnt);
@@ -1948,8 +1948,8 @@ void update_cgroup_charts(int update_every) {
                     snprintfz(title, CHART_TITLE_MAX, "I/O Bandwidth (all disks) for cgroup %s", cg->chart_title);
                     cg->st_io = rrdset_create(type, "io", NULL, "disk", "cgroup.io", title, "KB/s", CHART_PRIORITY_CONTAINERS + 1200, update_every, RRDSET_TYPE_AREA);
                 }
-                rrddim_add(cg->st_io, "read", NULL, 1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(cg->st_io, "write", NULL, -1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_io, "read", NULL, 1, 1024, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_io, "write", NULL, -1, 1024, RRD_ALGORITHM_INCREMENTAL);
             }
             else
                 rrdset_next(cg->st_io);
@@ -1967,8 +1967,8 @@ void update_cgroup_charts(int update_every) {
                     snprintfz(title, CHART_TITLE_MAX, "Serviced I/O Operations (all disks) for cgroup %s", cg->chart_title);
                     cg->st_serviced_ops = rrdset_create(type, "serviced_ops", NULL, "disk", "cgroup.serviced_ops", title, "operations/s", CHART_PRIORITY_CONTAINERS + 1200, update_every, RRDSET_TYPE_LINE);
                 }
-                rrddim_add(cg->st_serviced_ops, "read", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(cg->st_serviced_ops, "write", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_serviced_ops, "read", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_serviced_ops, "write", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else
                 rrdset_next(cg->st_serviced_ops);
@@ -1986,8 +1986,8 @@ void update_cgroup_charts(int update_every) {
                     snprintfz(title, CHART_TITLE_MAX, "Throttle I/O Bandwidth (all disks) for cgroup %s", cg->chart_title);
                     cg->st_throttle_io = rrdset_create(type, "throttle_io", NULL, "disk", "cgroup.throttle_io", title, "KB/s", CHART_PRIORITY_CONTAINERS + 1200, update_every, RRDSET_TYPE_AREA);
                 }
-                rrddim_add(cg->st_throttle_io, "read", NULL, 1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(cg->st_throttle_io, "write", NULL, -1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_throttle_io, "read", NULL, 1, 1024, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_throttle_io, "write", NULL, -1, 1024, RRD_ALGORITHM_INCREMENTAL);
             }
             else
                 rrdset_next(cg->st_throttle_io);
@@ -2005,8 +2005,8 @@ void update_cgroup_charts(int update_every) {
                     snprintfz(title, CHART_TITLE_MAX, "Throttle Serviced I/O Operations (all disks) for cgroup %s", cg->chart_title);
                     cg->st_throttle_serviced_ops = rrdset_create(type, "throttle_serviced_ops", NULL, "disk", "cgroup.throttle_serviced_ops", title, "operations/s", CHART_PRIORITY_CONTAINERS + 1200, update_every, RRDSET_TYPE_LINE);
                 }
-                rrddim_add(cg->st_throttle_serviced_ops, "read", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(cg->st_throttle_serviced_ops, "write", NULL, -1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_throttle_serviced_ops, "read", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_throttle_serviced_ops, "write", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
             }
             else
                 rrdset_next(cg->st_throttle_serviced_ops);
@@ -2024,8 +2024,8 @@ void update_cgroup_charts(int update_every) {
                     snprintfz(title, CHART_TITLE_MAX, "Queued I/O Operations (all disks) for cgroup %s", cg->chart_title);
                     cg->st_queued_ops = rrdset_create(type, "queued_ops", NULL, "disk", "cgroup.queued_ops", title, "operations", CHART_PRIORITY_CONTAINERS + 2000, update_every, RRDSET_TYPE_LINE);
                 }
-                rrddim_add(cg->st_queued_ops, "read", NULL, 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-                rrddim_add(cg->st_queued_ops, "write", NULL, -1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
+                rrddim_add(cg->st_queued_ops, "read", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+                rrddim_add(cg->st_queued_ops, "write", NULL, -1, 1, RRD_ALGORITHM_ABSOLUTE);
             }
             else
                 rrdset_next(cg->st_queued_ops);
@@ -2043,8 +2043,8 @@ void update_cgroup_charts(int update_every) {
                     snprintfz(title, CHART_TITLE_MAX, "Merged I/O Operations (all disks) for cgroup %s", cg->chart_title);
                     cg->st_merged_ops = rrdset_create(type, "merged_ops", NULL, "disk", "cgroup.merged_ops", title, "operations/s", CHART_PRIORITY_CONTAINERS + 2100, update_every, RRDSET_TYPE_LINE);
                 }
-                rrddim_add(cg->st_merged_ops, "read", NULL, 1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(cg->st_merged_ops, "write", NULL, -1, 1024, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_merged_ops, "read", NULL, 1, 1024, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(cg->st_merged_ops, "write", NULL, -1, 1024, RRD_ALGORITHM_INCREMENTAL);
             }
             else
                 rrdset_next(cg->st_merged_ops);
@@ -2127,8 +2127,8 @@ void *cgroups_main(void *ptr) {
                 if(unlikely(!stcpu_thread))
                     stcpu_thread = rrdset_create("netdata", "plugin_cgroups_cpu", NULL, "cgroups", NULL, "NetData CGroups Plugin CPU usage", "milliseconds/s", 132000, cgroup_update_every, RRDSET_TYPE_STACKED);
 
-                rrddim_add(stcpu_thread, "user",  NULL,  1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
-                rrddim_add(stcpu_thread, "system", NULL, 1, 1000, RRDDIM_ALGORITHM_INCREMENTAL);
+                rrddim_add(stcpu_thread, "user",  NULL,  1, 1000, RRD_ALGORITHM_INCREMENTAL);
+                rrddim_add(stcpu_thread, "system", NULL, 1, 1000, RRD_ALGORITHM_INCREMENTAL);
             }
             else
                 rrdset_next(stcpu_thread);
index 4f41e12b61d10b13c9e34d19812f258873f5b58f..3ba22d19d2b4e94a494bb3d9a145bb2a72222054 100644 (file)
@@ -94,11 +94,11 @@ int do_sys_kernel_mm_ksm(int update_every, usec_t dt) {
     if(!st) {
         st = rrdset_create("mem", "ksm", NULL, "ksm", NULL, "Kernel Same Page Merging", "MB", 5000, update_every, RRDSET_TYPE_AREA);
 
-        rrddim_add(st, "shared", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(st, "unshared", NULL, -1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(st, "sharing", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(st, "volatile", NULL, -1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(st, "to_scan", "to scan", -1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(st, "shared", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(st, "unshared", NULL, -1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(st, "sharing", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(st, "volatile", NULL, -1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(st, "to_scan", "to scan", -1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
     }
     else rrdset_next(st);
 
@@ -113,8 +113,8 @@ int do_sys_kernel_mm_ksm(int update_every, usec_t dt) {
     if(!st) {
         st = rrdset_create("mem", "ksm_savings", NULL, "ksm", NULL, "Kernel Same Page Merging Savings", "MB", 5001, update_every, RRDSET_TYPE_AREA);
 
-        rrddim_add(st, "savings", NULL, -1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
-        rrddim_add(st, "offered", NULL, 1, 1024 * 1024, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(st, "savings", NULL, -1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
+        rrddim_add(st, "offered", NULL, 1, 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
     }
     else rrdset_next(st);
 
@@ -126,7 +126,7 @@ int do_sys_kernel_mm_ksm(int update_every, usec_t dt) {
     if(!st) {
         st = rrdset_create("mem", "ksm_ratios", NULL, "ksm", NULL, "Kernel Same Page Merging Effectiveness", "percentage", 5002, update_every, RRDSET_TYPE_LINE);
 
-        rrddim_add(st, "savings", NULL, 1, 10000, RRDDIM_ALGORITHM_ABSOLUTE);
+        rrddim_add(st, "savings", NULL, 1, 10000, RRD_ALGORITHM_ABSOLUTE);
     }
     else rrdset_next(st);
 
index f418446877653578dc45cd2709c10bc9560d9954..ecac3506f9d92bf4b378f5ab93fce237db58d654 100644 (file)
@@ -282,7 +282,7 @@ struct test test1 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_ABSOLUTE,    // algorithm
+        RRD_ALGORITHM_ABSOLUTE,    // algorithm
         10,                 // feed entries
         9,                  // result entries
         test1_feed,         // feed
@@ -318,7 +318,7 @@ struct test test2 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_ABSOLUTE,    // algorithm
+        RRD_ALGORITHM_ABSOLUTE,    // algorithm
         10,                 // feed entries
         9,                  // result entries
         test2_feed,         // feed
@@ -353,7 +353,7 @@ struct test test3 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_INCREMENTAL, // algorithm
+        RRD_ALGORITHM_INCREMENTAL, // algorithm
         10,                 // feed entries
         9,                  // result entries
         test3_feed,         // feed
@@ -388,7 +388,7 @@ struct test test4 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_INCREMENTAL, // algorithm
+        RRD_ALGORITHM_INCREMENTAL, // algorithm
         10,                 // feed entries
         9,                  // result entries
         test4_feed,         // feed
@@ -423,7 +423,7 @@ struct test test5 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_INCREMENTAL, // algorithm
+        RRD_ALGORITHM_INCREMENTAL, // algorithm
         10,                 // feed entries
         9,                  // result entries
         test5_feed,         // feed
@@ -464,7 +464,7 @@ struct test test6 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_INCREMENTAL, // algorithm
+        RRD_ALGORITHM_INCREMENTAL, // algorithm
         16,                 // feed entries
         4,                  // result entries
         test6_feed,         // feed
@@ -499,7 +499,7 @@ struct test test7 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_INCREMENTAL, // algorithm
+        RRD_ALGORITHM_INCREMENTAL, // algorithm
         10,                 // feed entries
         18,                 // result entries
         test7_feed,         // feed
@@ -530,7 +530,7 @@ struct test test8 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_ABSOLUTE,    // algorithm
+        RRD_ALGORITHM_ABSOLUTE,    // algorithm
         6,                  // feed entries
         10,                 // result entries
         test8_feed,         // feed
@@ -571,7 +571,7 @@ struct test test9 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_ABSOLUTE,    // algorithm
+        RRD_ALGORITHM_ABSOLUTE,    // algorithm
         16,                 // feed entries
         4,                  // result entries
         test9_feed,         // feed
@@ -606,7 +606,7 @@ struct test test10 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_INCREMENTAL, // algorithm
+        RRD_ALGORITHM_INCREMENTAL, // algorithm
         10,                 // feed entries
         7,                  // result entries
         test10_feed,        // feed
@@ -649,7 +649,7 @@ struct test test11 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL,   // algorithm
+        RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL,   // algorithm
         10,                 // feed entries
         9,                  // result entries
         test11_feed,        // feed
@@ -692,7 +692,7 @@ struct test test12 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL,   // algorithm
+        RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL,   // algorithm
         10,                 // feed entries
         9,                  // result entries
         test12_feed,        // feed
@@ -727,7 +727,7 @@ struct test test13 = {
         1,                  // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL,   // algorithm
+        RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL,   // algorithm
         10,                 // feed entries
         7,                  // result entries
         test13_feed,        // feed
@@ -762,7 +762,7 @@ struct test test14 = {
         30,                 // update_every
         8,                  // multiplier
         1000000000,         // divisor
-        RRDDIM_ALGORITHM_INCREMENTAL, // algorithm
+        RRD_ALGORITHM_INCREMENTAL, // algorithm
         10,                 // feed entries
         8,                  // result entries
         test14_feed,        // feed
@@ -794,7 +794,7 @@ struct test test14b = {
         30,                 // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_INCREMENTAL, // algorithm
+        RRD_ALGORITHM_INCREMENTAL, // algorithm
         10,                 // feed entries
         8,                  // result entries
         test14b_feed,        // feed
@@ -826,7 +826,7 @@ struct test test14c = {
         30,                 // update_every
         1,                  // multiplier
         1,                  // divisor
-        RRDDIM_ALGORITHM_INCREMENTAL, // algorithm
+        RRD_ALGORITHM_INCREMENTAL, // algorithm
         10,                 // feed entries
         9,                  // result entries
         test14c_feed,        // feed
@@ -869,7 +869,7 @@ struct test test15 = {
         1,                  // update_every
         8,                  // multiplier
         1024,               // divisor
-        RRDDIM_ALGORITHM_INCREMENTAL, // algorithm
+        RRD_ALGORITHM_INCREMENTAL, // algorithm
         10,                 // feed entries
         9,                  // result entries
         test15_feed,        // feed
@@ -981,11 +981,11 @@ static int test_variable_renames(void) {
     fprintf(stderr, "Created chart with id '%s', name '%s'\n", st->id, st->name);
 
     fprintf(stderr, "Creating dimension DIM1\n");
-    RRDDIM *rd1 = rrddim_add(st, "DIM1", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+    RRDDIM *rd1 = rrddim_add(st, "DIM1", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
     fprintf(stderr, "Created dimension with id '%s', name '%s'\n", rd1->id, rd1->name);
 
     fprintf(stderr, "Creating dimension DIM2\n");
-    RRDDIM *rd2 = rrddim_add(st, "DIM2", NULL, 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
+    RRDDIM *rd2 = rrddim_add(st, "DIM2", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
     fprintf(stderr, "Created dimension with id '%s', name '%s'\n", rd2->id, rd2->name);
 
     fprintf(stderr, "Renaming chart to CHARTNAME1\n");
@@ -1105,10 +1105,10 @@ int unit_test(long delay, long shift)
     RRDDIM *rdabst = NULL;
     RRDDIM *rdabsi = NULL;
 
-    if(do_abs) rdabs = rrddim_add(st, "absolute", "absolute", 1, 1, RRDDIM_ALGORITHM_ABSOLUTE);
-    if(do_inc) rdinc = rrddim_add(st, "incremental", "incremental", 1, 1, RRDDIM_ALGORITHM_INCREMENTAL);
-    if(do_abst) rdabst = rrddim_add(st, "percentage-of-absolute-row", "percentage-of-absolute-row", 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_ROW_TOTAL);
-    if(do_absi) rdabsi = rrddim_add(st, "percentage-of-incremental-row", "percentage-of-incremental-row", 1, 1, RRDDIM_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
+    if(do_abs) rdabs = rrddim_add(st, "absolute", "absolute", 1, 1, RRD_ALGORITHM_ABSOLUTE);
+    if(do_inc) rdinc = rrddim_add(st, "incremental", "incremental", 1, 1, RRD_ALGORITHM_INCREMENTAL);
+    if(do_abst) rdabst = rrddim_add(st, "percentage-of-absolute-row", "percentage-of-absolute-row", 1, 1, RRD_ALGORITHM_PCENT_OVER_ROW_TOTAL);
+    if(do_absi) rdabsi = rrddim_add(st, "percentage-of-incremental-row", "percentage-of-incremental-row", 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
 
     long increment = 1000;
     collected_number i = 0;