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

