[erlang-questions] count events within last XX minutes

Mike Oxford <>
Fri Aug 24 22:05:03 CEST 2012


If you care about, as you say, "certain minute" you can use Ulf's gproc.
 If you want "last minute" then the ETS solution below will work well, with
the modification on the Counter to use a ms/us timer like erlang:now().

-mox

On Fri, Aug 24, 2012 at 8:14 AM, Anders Nygren <>wrote:

> Use an ETS table with {Counter,{YYYY,MM,DD,HH,MM}} as key, and
> ets:update_counter/2,3.
> update_counter returns the new counter value, so if it is 1, (or the
> increment used) You know that a new minute has been entered so You can
> delete the oldest.
>
> /Anders
>
> On Fri, Aug 24, 2012 at 9:16 AM, Max Bourinov <> wrote:
> > Dear Erlangers,
> >
> > Does anybody know best memory efficient way to count events within last
> XX
> > minutes?
> >
> > So far I have the following idea: For each counter I have a process. The
> > counter process has a list of XX items. Each item represents a certain
> > minute, so I always know where is my current counter. There is also must
> be
> > a mechanism to remove last item from the list and add a new one. Summing
> > values from all items is a number of events within last XX minutes. This
> is
> > it.
> >
> > Maybe there is a ready lib that does the same in a better way?
> >
> > Any suggestions are welcome!
> >
> > Best regards,
> > Max
> >
> >
> >
> > _______________________________________________
> > erlang-questions mailing list
> > 
> > http://erlang.org/mailman/listinfo/erlang-questions
> >
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120824/68840f58/attachment.html>


More information about the erlang-questions mailing list