[ 
https://issues.apache.org/jira/browse/EAGLE-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15043788#comment-15043788
 ] 

Hao Chen commented on EAGLE-2:
------------------------------

{code}
Exception in thread "main" java.lang.UnsupportedOperationException: output 
fields should be declared in sub class of KafkaSourcedSpoutProvider
        at 
org.apache.eagle.dataproc.impl.storm.kafka.KafkaSourcedSpoutScheme.getOutputFields(KafkaSourcedSpoutScheme.java:63)
        at 
backtype.storm.spout.SchemeAsMultiScheme.getOutputFields(SchemeAsMultiScheme.java:39)
        at storm.kafka.KafkaSpout.declareOutputFields(KafkaSpout.java:185)
        at 
backtype.storm.topology.TopologyBuilder.getComponentCommon(TopologyBuilder.java:226)
        at 
backtype.storm.topology.TopologyBuilder.createTopology(TopologyBuilder.java:110)
        at 
org.apache.eagle.datastream.StormTopologyCompiler.buildTopology(StormTopologyCompiler.scala:91)
        at 
org.apache.eagle.datastream.StormExecutionEnvironment.execute(ExecutionEnvironment.scala:96)
        at 
org.apache.eagle.datastream.ExecutionEnvironmentBase.execute(ExecutionEnvironment.scala:88)
        at 
org.apache.eagle.datastream.kafka.KafkaStreamMonitorApp$delayedInit$body.apply(KafkaStreamMonitor.scala:30)
        at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
        at 
scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
        at scala.App$$anonfun$main$1.apply(App.scala:71)
        at scala.App$$anonfun$main$1.apply(App.scala:71)
        at scala.collection.immutable.List.foreach(List.scala:309)
        at 
scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
        at scala.App$class.main(App.scala:71)
        at 
org.apache.eagle.datastream.kafka.KafkaStreamMonitorApp.main(KafkaStreamMonitor.scala:22)
        at 
org.apache.eagle.datastream.TestKafkaStreamMonitor.main(TestKafkaStreamMonitor.java:27)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
{code}

> watch message process backlog in Eagle UI
> -----------------------------------------
>
>                 Key: EAGLE-2
>                 URL: https://issues.apache.org/jira/browse/EAGLE-2
>             Project: Eagle
>          Issue Type: Improvement
>         Environment: production
>            Reporter: Edward Zhang
>            Assignee: Libin, Sun
>   Original Estimate: 96h
>  Remaining Estimate: 96h
>
> Message latency is a key factor for Eagle to enable realtime security 
> monitoring. For hdfs audit log monitoring, kafka is used as datasource. So 
> there is always some gap between current max offset in kafka and processed 
> offset in eagle. The gap is the backlog which eagle should consume quickly as 
> much as quickly. If the gap can be sampled for every minute or 20 seconds, 
> then we understand if eagle is catching up or is lagging behind more.
> The command to get current max offset in kafka is 
> bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list xxxx --topic 
> hdfs_audit_log --time -1
> and Storm-kafka spout would store processed offset in zookeeper, in the 
> following znode:
> /consumers/hdfs_audit_log/eagle.hdfsaudit.consumer/partition_0 
> So technically we can get the gap and write that to eagle service then in UI 
> we can watch the backlog



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to