Not end to end, unfortunately. Best I can offer off-hand is a link to a 
graphite module that we have:

https://github.com/mozilla-services/heka/blob/versions/0.10/sandbox/lua/modules/graphite.lua

That module exposes a Lua API that accepts stats in Lua table format and 
generates Graphite string format, ready to be delivered to a Graphite server.

With this module, it's pretty trivial to write a statsd-like filter. That 
filter would extract stats data from incoming messages, storing those stats in 
Lua tables. Every ticker interval, it would rip through the stored stats, using 
the `graphite` module to generate an output message in Graphite string format.

This strategy holds for any type of aggregation you might want to do. We have a 
module that generates InfluxDB line format strings, and another that generates 
ElasticSearch Bulk Index API JSON headers, and clearly you could write your own 
to emit any other formats you might need. Here's a simple filter that 
aggregates message data and periodically outputs InfluxDB format, for instance:

https://github.com/mozilla-services/heka/blob/versions/0.10/sandbox/lua/filters/influx_batch.lua

Hope this helps!

-r


On 10/13/2015 01:11 AM, Jozef Vilcek wrote:
Great to hear! Do you, by any chance, have an example how to make it work?

On Oct 12, 2015 20:04, "Rob Miller" <[email protected]
<mailto:[email protected]>> wrote:

    Yes, this is possible, it's just a matter of doing work to support
    your exact needs.

    You can use UdpInput or TcpInput to receive data over either
    transport. Then you'd use a decoder to parse that input and map the
    metric onto message fields. A filter plugin would then catch these
    messages and aggregate them, periodically emitting the aggregate
    data which would be matched by an output plugin.

    -r


    On 10/11/2015 12:33 PM, Jozef Vilcek wrote:

        I am looking into the heka and wonder if following is possible
        out of
        the box.

        * receive metrics over UDP / TCP
        * metric is defined by name, value, type [counter, gauge, time]
        and tags
        (key-value pairs)
        * aggregate received metrics for given amount of time, same way
        statsd does
        * send aggregated metrics to output (opentsdb, elasticsearch, ...)

        I have seen StatsD input and stats aggreagation input in docs,
        but can
        not figure out if those can be used for nicer and richer heka
        messages
        or only for statsd text line protocol.

        Many thanks.

        Best,
        Jozef


        _______________________________________________
        Heka mailing list
        [email protected] <mailto:[email protected]>
        https://mail.mozilla.org/listinfo/heka



_______________________________________________
Heka mailing list
[email protected]
https://mail.mozilla.org/listinfo/heka

Reply via email to