[rrd-developers] getting new RRA entries since last update

Tobias Oetiker tobi at oetiker.ch
Wed Apr 14 11:38:43 CEST 2010


Hi Frederik,


Today Frederik Kriewitz wrote:

> On Wed, Apr 14, 2010 at 1:07 AM, Tobias Oetiker <tobi at oetiker.ch> wrote:
> > Yesterday Gustav Koller wrote:
> >
> >> Hello,
> >>
> >>  my problem:
> >>  I call rrd_update_r() and some RRAs are updated.
> >>  How can I get all the RRA entries which were updated?
> >> [...]
> >
> > are you using multithreaded rrdtool calls ? else the rrd_update_v
> > call is what you need.
>
> I'm working on a patch for rrdcached and had the same problem.
>
> rrd_update_v() works but results in some ugly code including a malloc
> which souldn't be necessary:
>
> /* We need to use rrd_update_v and construct update_argv because
>    rrd_update_r doesn't allow us to use the rrd_info_t * pcdp_summary
>    parameter of _rrd_update() */
> int update_argc = values_num + 2;
> char **update_argv = (char**) malloc (update_argc * sizeof (char*));
> if (update_argv == NULL)
> {
>   RRDD_LOG (LOG_ERR, "queue_thread_main: update_argv malloc failed.");
> }
> else
> {
>   /* construct argv rrd_update_v */
>   update_argv[0] = NULL;
>   update_argv[1] = file;
>   for (size_t i = 0; i < values_num; i++)
>     update_argv[i+2] = values[i];
>
>   data = rrd_update_v(update_argc, update_argv);
>   free(update_argv);
> }
>
> Here's rrd_update_r from rrd_update.c using a hardcoded NULL for pcdp_summary:
>
> int rrd_update_r(const char *filename, const char *tmplt, int argc,
> const char **argv)
> {
>     return _rrd_update(filename, tmplt, argc, argv, NULL);
> }
>
> Is there a reason why pcdp_summary can't be passed to rrd_update_r()?

only api stability ... but how about an rrd_update_v_r call ?

cheers
tobi

>
>

-- 
Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland
http://it.oetiker.ch tobi at oetiker.ch ++41 62 775 9902 / sb: -9900


More information about the rrd-developers mailing list