I am trying to use a C or C++ program, which needs to use various rrd databases 
to log data periodically (this is done at pre-set intervals, which may vary, 
depending on the data which needs to be logged to the rrd database). 

Two simple examples of such use would be:

1. Integration with netfilter and a specific (understand custom) ulogd2 plugin 
I have written speciffically for this purpose, which reacts to various events, 
like creating a connection originating from a specific interface and destined 
to a specific IP address/subnet, closing such a connection, send/receive 
packets based on pre-defined custom "filters" and so on - you get the idea.

2. Reading temperature/fan sensors and reacting to events (like overheating for 
example), read (and log) free/used memory on the host system, read (and log) 
current cache/web cache memory used/available, react (and log) to an event when 
a particular program/process is started, and so on.

For the second example above, I am aware that I could accomplish some of the 
those things by executing various shell scripts or separate programs via cron 
jobs, but that is not good enough for me, because I would like to have 
everything under one roof so to speak. Besides, for some of these events, the 
logging will be dependant on a particular system event occurring/being fired, 
which will then use my event handler, and it, in turn, will record the relevant 
data to rrd.

Although I am very comfortable using C and C++, I have only used RRDtool from 
bash and perl scripts up until now. 

So, my question is this: Is there a way I could integrate my C(++) program and 
ulogd2 plugin with RRD and record the data I would normally do with the rrdtool 
via bash/perl scripts?

Looking into the rrdtool-devel package there are 3 header files, which may 
allow the use of such functions: rrd.h, rrd_client.h and rrd_format.h, but I am 
not sure whether this is all I would need. Besides, as I already pointed out 
above, my rrd experience is very limited, so a good starting point (a tutorial 
perhaps or a good man page describing how to integrate a C or C++ program into 
rrd) would be just about perfect. 

Also, I don't want to reinvent the wheel if something like what I described 
above is already done. Thanks in advance!

_______________________________________________
rrd-users mailing list
[email protected]
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users

Reply via email to