[
https://issues.apache.org/jira/browse/METRON-562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15658345#comment-15658345
]
ASF GitHub Bot commented on METRON-562:
---------------------------------------
Github user nickwallen commented on a diff in the pull request:
https://github.com/apache/incubator-metron/pull/352#discussion_r87668638
--- Diff:
metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileBuilderBolt.java
---
@@ -243,8 +244,18 @@ private void flush(Tuple tickTuple) {
measurement.setValue(result);
emit(measurement, tickTuple);
+ // Execute the update with the old state
+ Map<String, String> tickUpdate = profileConfig.getTickUpdate();
+ Map<String, Object> state = executor.getState();
+ if(tickUpdate != null) {
+ tickUpdate.forEach((var, expr) -> executor.assign(var, expr,
executor.getState()));
--- End diff --
The 3rd argument to executor.assign is called 'transientState'. It exists
only to make additional state available to the expression; additional state
that is not already maintained by the executor itself. The normal use for it
is when you want to make the fields in a telemetry message available to the
expression.
Setting transientState=executor.getState() does not make sense here. It is
exactly the same as passing nothing at all. The state in executor.getState()
is already exposed to the expression.
Hopefully, I am describing this well enough. As another feeble attempt at
explanation, the following two expression are equivalent.
```
tickUpdate.forEach((var, expr) -> executor.assign(var, expr,
executor.getState()));
```
```
tickUpdate.forEach((var, expr) -> executor.assign(var, expr, null));
```
> Add rudimentary statistical outlier detection
> ---------------------------------------------
>
> Key: METRON-562
> URL: https://issues.apache.org/jira/browse/METRON-562
> Project: Metron
> Issue Type: New Feature
> Reporter: Casey Stella
> Assignee: Casey Stella
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> With the advent of the profiler, we can now capture state. Furthermore, with
> Stellar, we can capture statistical summaries. We should provide rudimentary
> outlier detection functionality in the form of Stellar functions that can
> operate on captured state from the profiler.
> To begin, we should enable simple outlier tests using distance from a central
> measure such as Median Absolute Deviation (see
> http://www.itl.nist.gov/div898/handbook/eda/section3/eda35h.htm).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)