Github user merrimanr commented on the issue:
https://github.com/apache/metron/pull/824
The latest commit fixes the bug in the previous comment. The root cause
was that HBaseDao.getAllLatest was not properly returning the sensor type and
causing subsequent updates in Elasticsearch to fail. The solution was simple:
look up the sensor type from the document and add it to the return Document. I
added a constant for this field (essentially a copy of
ElasticsearchMetaAlertDao.SOURCE_TYPE) to the HBaseDao in anticipation of the
ES 5 upgrade where it will no longer be required to change .'s to :'s. At that
point we can just change the constant to Constants.SENSOR_TYPE and it should
continue to function.
There are a couple other solutions to this problem that I can think of:
- change the getAllLatest interface to include guid/sensorType mappings
instead of separate guid and sensorType lists
- add a column family to store the sensor type
- other more complicated ways of getting the correct sensor type field name
I felt this temporary constant was the simplest but feel free to give
opinions on other options. I also update the HBaseDaoIntegrationTest to expect
this field to be returned.
The PR description has been updated to reflect the various interface
changes and new testing procedure.
---