Jintao, take a look here: http://flume.apache.org/FlumeDeveloperGuide.html#sink
It's pretty straight forward (coming from a .net guy :)
1. Create your sink based on the dev guide into a jar
2. Set your config file to use that sink type:
spool-agent.sources = spooler
spool-agent.channels = FileChannel-1
spool-agent.sinks = mysink
spool-agent.sinks.mysink.type = com.domain.flume.sink.esper.EsperSink
spool-agent.sinks.mysink.esperAddress = 10.50.2.131 //can read this value in your configure(Context context) implementation
spool-agent.sinks.mysink.channel = FileChannel-1
3. Add your sink jar to the classpath
Software Developer / Architect
[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>
866.484.6630 | [EMAIL PROTECTED]<https://ex1.globalrelay.net/owa/redir.aspx?C=01df0579a4cc42feb9f7e2801368f729&URL=mailto%3ainfo%40globalrelay.net> | globalrelay.com<https://ex1.globalrelay.net/owa/redir.aspx?C=01df0579a4cc42feb9f7e2801368f729&URL=http%3a%2f%2fwww.globalrelay.com%2f>
From: Jintao Guan [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, June 04, 2013 2:49 PM
To: [EMAIL PROTECTED]
Subject: Re: How to use Esper in Flume
Thank you for your email. The first solution is what I am looking for.
I really want to know the details of the custom sink.
1. The first thing I want to know is that how to install the custom sink ? Compile it then put the ***.jar into $FLOME_HOME/lib ?
2. Is there any material about how to write custom sink ?
On Tue, Jun 4, 2013 at 2:41 PM, Shekhar Sharma <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
You have two options :
(1) You can write a custom flume sink for esper..Disadvantage would be you cant change the esper queries at run time
(2) YOu can write esper service (Rest API) and the flume sink will send the java pojo to Esper service..The advantage is that you will have the ability to change the queries at run time..
I have tried both the approaches..let me know if you would like to know more...
The first approach is very simple, just need to extend the sink from flume Abstract sink and override the process method..
In the constructor of the flume you need to initialze the esper engine, as well as esper statements and esper queries..
Make sure your listeners are attached as well when constructing the object..
While you receive the events in the process method, you need to convert the Flume SimpleEvent to POJO and call EsperEngine's sendevent() method...
For the second method you can have your queries,listeners and statements defined in XML file and you parse them when the service starts and have a thread that looks for the change of this xml file..
Hope that helps.
Som Shekhar Sharma
On Tue, Jun 4, 2013 at 11:36 PM, Jintao Guan <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
I want to use Esper in Flume Agents, so that I can monitor all of the messages and logs and trigger alerts when there are Error logs.
Does it seem like a plugin ? How do I install the custom interceptor ?
Does anyone have any idea ?