Generic Adder
This presentations goal it to introduce the features of the Generic Adder and how to configure it.
The challenge
I want add fields or values depending on a matching filter.
from this:
[24]:
document = {
'message': {
"time_in_ms": "bla",
"tags": ["hello"]
}
}
to this:
[25]:
expected = {
'message': {
"time_in_ms": "bla",
"tags": ["hello", "new"]
}
}
Create rule and processor
create the rule:
[ ]:
create the processor config:
[26]:
processor_config = {
"almighty generic adder":{
"type": "generic_adder",
"rules": [{"filter": "*", "generic_adder": {"extend_target_list": True, "add": {"message.tags": "New"}} }],
}
}
create the processor with the factory:
[27]:
from unittest import mock
from logprep.factory import Factory
mock_logger = mock.MagicMock()
calculator = Factory.create(processor_config)
calculator
[27]:
generic_adder
Process event
[28]:
from copy import deepcopy
mydocument = deepcopy(document)
print(f"before: {mydocument}")
calculator.process(mydocument)
print(f"after: {mydocument}")
print(mydocument == expected)
before: {'message': {'time_in_ms': 'bla', 'tags': ['hello']}}
after: {'message': {'time_in_ms': 'bla', 'tags': ['hello', 'New']}}
False