Engineering notebook
splitting up the normalization library
- Published
- Updated
- AI use
- Human-created
- Filed under
- cee, libcee, libeventnorm, liblognorm
I have dug into the design of my upcoming event/log normalization library. As it will base on CEE, I intend to pull in CEE definitions for types defined there, like tags or field types. Also, I thought about what the library should output. An obvious choice for many use cases is an in-memory object model describing the normalized form of the event that was passed in. This is probably most convenient for applications that want to do further processing on the event.
However, it also seems useful to have the ability to serialize this data in the form of a text string. That string could be stored in a file for later reference, forensics or to feed some other tool capable of understanding the file format. And as the in-memory object model will be CEE based, and CEE defines such serialization formats, it seems obvious that the library should be able to generate serialization based on the CEE-defined and supported formats (note that does not necessarily means XML, it may be JSON or syslog structured data as well).
Looking at all this, the normalization library seems to consist of two largely independent (but co-operating) parts:
- the parser engine itself, that part that is used to actually normalize the input string according to the provided sample base and CEE definitions
- a CEE support library, which provides the plumbing for everything that is defined in CEE (like tags, field types and serialization formats)