You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Description

From Hadoop Native Metrics Monitoring, we can observed that 

  • A typical metric stream should contain multiple metrics with different names. More often, these metrics are grouped in one semantic category, say JMX metric, system metric.
  • Multiple monitoring rules are required based on different metric name/type.
  • CEP logic becomes more and more complex when user needs to do stream separation and join(pattern match).
  • Un-named stream make the data flow logically route from spout to next elements. Though the grouping helps here, with named stream, we could make route for the different metrics.

This page's content is recorded in  Unable to render Jira issues macro, execution error.

Design

Data Flow & Generic Topology Structure

eagle metric multiplexer

Multi Plexer

The key idea is to split the metric stream into different streams, so that it could be routed to different (logic) executor. This introduce a multiplexer. This multiplexer would be responsible to

  • Understand the metric by metadata driven (a "metricName" field in the input tuple)
  • Multiplex the metrics into different stream names (This is driven the metric name/type)

Policy Executor

Play a role similar to the current PolicyProcessExecutor, it would recognize the metric in the same way of MultiPlexer. And support stream joining.

 

Route Table

A route table is calculated and used by Multiplexer to decide how to route the given tuple. Basically, the route table ask the question "Given current tuple, which stream should the multiplexer route it to."

 

It would be implemented like

MetricNamePolicyStream
m1p1stream1
m1p2stream2
m1p3stream1
m2p2stream2

So that given m1 as current tuple, it would multiplex routed to stream1 and stream2 by look at the route table.

 

Metadata

The current policy definition would be extend to express the relationship between policy and metric. This would be used in MultiPlexer and Policy Executor to build the stream route map

{

   “policydef” : “…”

   “Metrics”: [“m1”, “m2”] — 映射到#2的metric name

},

{

   “policydef” : “…”

   “Metrics”: [“m1”, “m3"]

}

]

 

On boarding

TBD

 

 

 


  • No labels