Nimi is right that the TcpOutput actually does buffer messages to disk. Originally that functionality was built directly in to the TcpOutput, but we later abstracted it out so it could be used by other output plugins.

What hasn't been mentioned so far is that we have plans to change the interaction btn encoders and outputs and, as part of that, we plan on making the output buffering automatically available as a configuration option for *every* output. There are already a couple of issues open to capture this:

https://github.com/mozilla-services/heka/issues/930

and:

https://github.com/mozilla-services/heka/issues/1103

which contains this relevant comment:

https://github.com/mozilla-services/heka/issues/1103#issuecomment-58548339

This will be a fair amount of work. It is all intended to land before we release Heka 1.0, which is targeted for January 2015.

-r

On 10/15/2014 03:48 AM, Denis Shashkov wrote:

Hello!

AFAIK, now heka doesn't guarantee message delivering in case of output
plugin couldn't write message:
- output plugins didn't buffer or re-try write operations,
- there is no interior buffer between pipeline and output plugins (I
know about channels, but they have finite length and they located in
memory),
- you cannot write a buffering filter (because you cannot write all
messages back into pipeline).

(Please, correct me if I wrong).

I thought a lot about how not to lost messages if my storage (e.g. HTTP
server) is unavailable. I decided it will be great if some output plugin
will be special: if other outputs cannot write messages, this fallback
output will write instead of them.

Can I do this without touching pipeline code?

WBR.



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

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

Reply via email to