Hi everyone,

I contacted the rrd-users list with this issue and Mr. Oetiker asked  
me to send it here.

I've started using rrdcached a week ago and everything is working just  
fine, however I'm having problems to produce updated graphs.

Let me first describe my setup a little bit:

- All my "rrd update" and "rrd graph" calls are using the parameter "-- 
daemon" to take advantage of rrdcached;

- rrdcached is started with these parameters: rrdcached -F -t 16 -s  
nobody -m 0666 -l unix:/tmp/rrdcached.sock -w 900 -l 127.0.0.1:12345

- All my "rrd update" calls, write to files in their real location,  
while "rrd graph" reads the same RRD files in a different location  
(either because there's some symlink or null mount in the path).

I have reviewed the "-b" option from rrdcached, and I understand  
symlinks are not allowed on the base directory, however the symlink in  
my case is not in the base directory. Additionally, I have replaced  
the symlink with a null mount and the problem persists.

The problem I'm seeing, can be illustrated here:

with symlink or null mount:

FLUSH /usr/local/rrd/myproject/repository/local/switches/myswitch/ 
10146.rrd
0 Nothing to flush: /usr/local/rrd/myproject/repository/local/switches/ 
myswitch/10146.rrd.

real file location:

Flush /usr/local/rrd/myproject/rrd/switches/myswitch/10146.rrd
0 Successfully flushed /usr/local/rrd/myproject/rrd/switches/myswitch/ 
10146.rrd.

Where:

/usr/local/rrd/myproject/reporsitory/local is a symlink (or null  
mount) to /usr/local/rrd/myproject/rrd

I have the impression "rrdcached" is storing the full path of the RRD  
files internally, and only accepts a FLUSH command if the path is  
exactly the same as used in "rrd_update".

Can you please confirm if this is the correct behavior?

If that's just how rrdcached works, I believe we should update the  
documentation to highlight the importance of using the exact same path  
from "rrd_update" when flushing.

If that's not desirable, and rrdcached is meant to be able to handle  
different paths, then I believe there's something wrong with the  
software's logic somewhere in the code (sorry, I didn't really check  
the source code).

I'm probably going to rewrite my application to use the same path both  
in rrd_update and rrd_graph, however I think it would be better if the  
path was not a problem for the flush command (i.e. if a flush command  
is received and there's a symlinkt in the path, the real location  
could be calculated in order to find the file that needs to be flushed).

Thanks for your attention,
Eduardo Bragatto.

_______________________________________________
rrd-developers mailing list
rrd-developers@lists.oetiker.ch
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers

Reply via email to