Hi all,

I'm happy to be able to say that Heka v0.9.0 has been officially released, at last! This is a significant release, containing a considerable number of new features and bug fixes. It also has a handful of significant breaking changes, so upgrading from prior versions will require tweaks to existing configuration, and should be done carefully and tested thoroughly. I'll cover the issues briefly here, but you should also check the changelog and the updated docs for the whole story.

The one issue that impacts everybody is the introduction of Splitter plugins. Splitters are embedded within Inputs, and they're responsible for watching the incoming data stream and deciding where it should be sliced to generate discrete chunks of data that can be decoded and injected into the Heka pipeline. In v0.8 and earlier, this job was handled on an ad-hoc basis by the inputs themselves; now it's available to all inputs and lots of duplicate code has been removed.

What this means in practice is that all of the 'parser_type', 'delimiter', and 'delimiter_location' config settings for various input plugins are now gone. These are replaced by a single 'splitter' setting that will refer to an separate section containing the splitter configuration, much like the already existing 'decoder' and 'encoder' behavior. Heka automatically registers some splitters for you, including a NullSplitter, a HekaFramingSplitter, and a TokenSplitter (using the default newline delimiter '\n'). All available splitters and their configuration options are described in the docs: http://hekad.readthedocs.org/en/v0.9.0/config/splitters/index.html

If you're just using existing input plugins, then converting your config to use Splitter plugins should be quite straightforward. If you've implemented your own inputs, they'll might still work, but you'll almost certainly want to update them to take advantage of the new APIs we've exposed that take the splitting and decoding burdens out of your hands. How this works is more detailed than I want to cover here, but you should find all of the info that you need in the updated developer docs (http://hekad.readthedocs.org/en/v0.9.0/developing/plugin.html#inputs). If you have any questions or problems, please feel free to ask on this mailing list or in the #heka channel on irc.mozilla.org.

Beyond this big one, there are a lot of other exciting improvements, especially with the Lua sandbox. The sandbox now supports loading dynamic library loading, so you can pull in new Lua modules, implemented in C, without having to recompile Heka. Also we've introduced SandboxInput and SandboxOutput plugins, so it's now possible to do any arbitrary I/O from within Lua code. We've also added the ability to encode and decode Heka protobuf messages entirely within the sandbox, which greatly expands the range of new behavior that can be introduced without needing to recompile or redeploy the core Heka binary.

There's one unfortunate point to mention. Due to a bug in Go's interfacing with C, the new version is currently not working on Windows. We've reported the issue to the Go team (https://github.com/golang/go/issues/9754), but as of yet there's been no resolution. We did just get notice today that a patch has landed that *may* resolve this issue (https://go-review.googlesource.com/#/c/5711/), we'll be testing that soon to see if it helps. Fingers crossed!

Okay, I've blathered on long enough. Check the changelog (https://github.com/mozilla-services/heka/blob/v0.9.0/CHANGES.txt) for the complete list of what we've been up to. Check the release page (https://github.com/mozilla-services/heka/releases/tag/v0.9.0) for the available binary packages. Test carefully before deploying, and report any issues or bugs that you discover in the issue tracker (https://github.com/mozilla-services/heka/issues).

And, most importantly, thanks for using Heka, and have a great day.

Cheers!

-r
_______________________________________________
Heka mailing list
Heka@mozilla.org
https://mail.mozilla.org/listinfo/heka

Reply via email to