[
https://issues.apache.org/jira/browse/METRON-567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15671009#comment-15671009
]
Otto Fowler commented on METRON-567:
------------------------------------
: to list
Looking for some background here. If you read the jira, the issue we have is a
fully numeric value for a field being looked at for enrichment is causing an
exception at enrichment time because we are using casting, and trying to cast a
Long to a String.
We support getting the value the following ways:
public Object getValue() {
return value;
}
public <T> T getValue(Class<T> clazz) {
return clazz.cast(getValue());
}
In practice, we pretty much always call this with either Map.class or
String.class.
All of the tests we have as well always use Strings. If we want a String,
based on CacheKey we cannot assume as we do the ability to cast to it, and
maybe should do getValue().toString() or something.
In METRON-567 - it looks like the parser is mapping the csv input through grok
to either strings or longs based on their composition ( I have not gone down
the rabbit hole to the grok side of this yet to confirm where the mapping to
object type is done ). So that will be a problem as well. I think based on my
current understanding that each Cache is per message operation, and we don’t
have to worry that field _a may be Long one message and String in the next.
>From the readme.md in enrichments, there doesn’t seem to be a restriction on
>the ‘type’ of a field in the enrichment mappings to String.
Any thoughts?
> Usernames as numerics strings attempted to be parsed and compared as numbers
> ----------------------------------------------------------------------------
>
> Key: METRON-567
> URL: https://issues.apache.org/jira/browse/METRON-567
> Project: Metron
> Issue Type: Bug
> Affects Versions: 0.2.1BETA
> Environment: Linux CentOS 6.5
> 252GB RAM
> HDP 2.5
> 16TB HDD
> Reporter: ed de
> Assignee: Otto Fowler
> Priority: Minor
> Attachments: metron-567.zip
>
>
> 1. Windows logs are being ingested through Nifi, most usernames are number
> (ex: 423191384)
> 2. Windows parser Grok pattern for element "usrName" has been modified to and
> from : GREEDYDATA, NUMBER, WORD, USERNAME.
> 3. An enrichment has been flatline loaded into Hbase containing department,
> manager, firstname, lastname, etc.
> 4. The enrichment works if the usrName is characters (ex: DONALDDUCK)
> 5. The consistent error message is "cannot cast java.lang.Long to
> java.lang.String". This is readily apparent in the enrichment log under
> /var/log/storm/enrichment*
> To recreate, build a parser that looks for a username, then build a simple
> enrichment, then feed a sample of numeric and non-numeric username logs
> through the system and see which one parses and enriches.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)