I don't believe that you'll be able to store these NIF instances in
mochiglobal. You can only store things that can be represented as BEAM code.

On Wed, Feb 29, 2012 at 2:46 PM, Joel Meyer <[email protected]> wrote:

> Hello,
>
> I'd like to capture statistics on all calls to my riak_core service and
> the execution time of vnode commands. I looked at folsom_metrics, but for a
> service that does 10-30k QPS I'm concerned about the overhead introduced of
> doing ets calls. Given that, my current plan was to create several
> basho_metrics on startup and store the opaque refs using mochiglobal. Then
> my service will make module calls to update the metrics. Will using
> basho_metrics in that matter cause problems?
>
> Here's what I'm thinking:
>
> -module(freqserver_stats).
>
> -export([ init/0,
>             vnode_count/1,
>             ... ]).
>
> -define( VNODE_COUNT,     freqserver_stats_vnode_count     ).
>
>
> ...
>
> -define( METRICS,
>              [ { ?VNODE_COUNT,     histogram },
>                ... ] ).
>
>   -define( STAT(Name), mochiglobal:get(Name) ).
>
> init() ->
>
>
>     F = fun( { S, Type } , _ ) ->
>           Ref = case Type of
>                   histogram -> basho_metrics_nifs:histogram_new();
>                   meter     -> basho_metrics_nifs:meter_new()
>                 end,
>           ok = mochiglobal:put( S, Ref )
>         end,
>     lists:foldl( F, [], ?METRICS ).
>
>   vnode_count( Micros ) ->
>     basho_metrics_nifs:histogram_update( ?STAT( ?VNODE_COUNT ), Micros ).
>
> I'm also open to better ideas, if people have them. I'm concerned about
> back pressure and/or overflowing the message queue if I dedicate a process
> to handling these statistics. Let me know if I'm needlessly concerned about
> that.
>
> Thanks,
> Joel
>
> _______________________________________________
> riak-users mailing list
> [email protected]
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
>
_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to