[collectd] memcached:// support in curl plugin

Doug MacEachern Doug.MacEachern at hyperic.com
Mon Mar 16 23:37:11 CET 2009


Hi Florian,

On Mar 5, 2009, at 11:31 PM, Florian Forster wrote:

> Hi Doug,
>
> On Wed, Mar 04, 2009 at 12:17:49AM -0500, Doug MacEachern wrote:
>>> Did you talk to the cURL guys already? [...]
>>
>> Nope I didn't post to any of the cURL lists,  mainly because it
>> looked very much intentional having them all static to url.c.  If you
>> want to make the proposal/patch there, that'd be great.
>
> okay, I will. I'm just having very little time right now, so this may
> take a few days..
>

Understood, no problem for me.

>>> I've put your changes into a separate plugin, but unfortunately I
>>> couldn't delete as much code as I had hoped, so I'm not 100%
>>> satisfied.
>>
>> Looks great, thanks!  I feel guilty not having done the work myself,
>> but less so since you agree we should be able to shrink it more ;)
>
> Don't worry about it, it wasn't much work.
>
Good to know :)

>> Hmm, didn't know about libmemcache, but it seems both authors have
>> agreed on libmemcached:
>> http://lists.danga.com/pipermail/memcached/2007-December/006111.html
>
> I just searched the Debian Apt repository for `memcached' and
> `libmemcache' was the only library I've found there. I only noticed  
> the
> missing `d' when wondering why the header file wasn't found by  
> configure
> ;) Too bad the Debian developer didn't turn to `libmemcached' when
> `libmemcache' became abandoned. To date, there is not Debian package  
> for
> the new `libmemcached'.

Indeed, CentOS doesn't have either :(

>> But yes, it probably would make sense for the existing memcached.c
>> plugin to use libmemcached if available and also to support the  
>> custom
>> payload based stats.
>
> In fact, I would simply remove the partial implementation of the
> protocol in the existing. There is no real need to implement the
> protocol yet again and incomplete, and we've had problems with it in  
> the
> past ([0])..

ok, so you'd want to require libmemcached then?

>> So where do we go from here on this?  I'm happy to take your
>> direction and work on the implementation.  But have no problem of
>> course if you want to run with it, in which case I'll move on to
>> another unrelated patch :)
>
> All things considered, I think I like the separate `memcachec' plugin
> best, with one big `memcached' plugin with all things to do with
> `memcached' (the daemon) in it being second place.

ok, sounds good to me.

> I think the way to go is to take the `utils_tail_match' module and  
> make
> it general enough to be used by the `curl', `memcachec' and `tail'
> plugins. For that, we first need to move the actual `tail' stuff out
> first:
>
> * Move the call to `cu_tail_read' to the `tail' plugin.
> * Change the signature of `tail_match_read' to:
>     int tail_match_read (cu_tail_match_t *obj,
>         const char *buffer, size_t buffer_size);
>
> Then move the configuration handling code into that module. For this,
> change the signature of `tail_match_add_match_simple' to:
>
>  int tail_match_add_match_simple (cu_tail_match_t *obj,
>      oconfig_item_t *ci,
>      const char *plugin, const char *plugin_instance);
>
> I hope this would eliminate handling of the <Match> bocks in all three
> plugins and ensure the same behavior in the future.
>
> As a long-term goal I'd try to simplify the configuration handling in
> general by providing easy to use functions, possibly similar to  
> Apache's
> concept..
>
> Any thoughts?

That'd be great!  The patch I just sent for mysql config wasn't too  
difficult, but does seem like it should be easier :)

Thanks,
-Doug

> Regards,
> -octo
>
> [0] <https://bugs.verplant.org/view.php?id=26>
> -- 
> Florian octo Forster
> Hacker in training
> GnuPG: 0x91523C3D
> http://verplant.org/




More information about the collectd mailing list