[rrd-users] Using RRDTool in C App - Graph is not being produced and there is no error

Mark Easton mark.easton at azurebell.co.nz
Sun Feb 25 20:26:51 CET 2007

I am working in Visual Studio 2005. My code creates the gopher.rrd file and
updates data successfully. When I do a fetch I am returned some data, so all
good. But when I create the graph image I get no errors and no image file is
created. I am trying to learn RRDTool, but this is confusing me. Any
pointers would be appreciated.

This is the main code:

	int ret;
	int ret_2;
	time_t seconds1, seconds2;
	char argstr[200];

seconds1 = time (NULL) - 100;
	sprintf(argstr, "gopher.rrd --start %ld --step 300 DS:temp:GAUGE:1200:U:U
RRA:MAX:0.5:1:576", (long)seconds1);

	ret = wrap_rrd_create( argstr);
	if (ret != -1)
		seconds2 = time (NULL);

		sprintf(argstr, "gopher.rrd MAX --start %ld --end %ld", (long)seconds1,

		ret_2 = wrap_rrd_fetch( argstr);   
		if (ret_2 == -1)
			printf("RRD error fetching: %s\n", rrd_get_error());

		sprintf(argstr, "temp.png --start %ld --end %ld
DEF:mytemp=gopher.rrd:temp:MAX", (long)seconds1, (long)seconds2);

		ret_2 = wrap_rrd_graph( argstr);               
		if (ret_2 == -1)
			printf("RRD error creating temp.png: %s\n", rrd_get_error());
		printf("RRD error creating gopher.rrd: %s\n", rrd_get_error());

The method test_interfacekit() receives data from a temperature sensor and
updates it into the RRD. The call back method does this:

time_t seconds;
	char str[200];
	int ret;

	if (Index == 0)
		seconds = time (NULL);
		printf("Time is %ld\n", (long)seconds);
		sprintf(str, "gopher.rrd %ld:%d", (long)seconds, (int)Value);
		ret = wrap_rrd_update( str);
		if (ret == -1)
			printf("RRD update error: %s\n", rrd_get_error());

	printf("Sensor %d is %d\n", Index, Value);
	return 0;

View this message in context: http://www.nabble.com/Using-RRDTool-in-C-App---Graph-is-not-being-produced-and-there-is-no-error-tf3288407.html#a9146991
Sent from the RRDTool - User mailing list archive at Nabble.com.

More information about the rrd-users mailing list