A (branching) Behaviour Synthesizer
Absynthe: A (branching) Behavior Synthesizer
You need Absynthe if you wish to simulate the behavior of any well defined process -- whether it's a computer application or a business process flow. This package helps in generating such behaviors in the form of logs, primarily to aid testing and development of analytic techniques for log analysis and anomaly detection.
Multiple business processes or computer applications could be dumping their logs into a single log stream in an interleaving manner. This means that consecutive log lines could have originated in different, unrelated application components. Absynthe is able to simulate such situations.
Each business process or compuater application is modelled as a control flow graph (or CFG), which typically has one or more roots (i.e. entry) nodes and multiple leaf (i.e. end) nodes. An example of a CFG generated using Absynthe is shown below.
Each behavior is the sequence of nodes encountered while traversing this CFG from a root to a leaf. Of course, a CFG might contain loops which could be traversed multiple times before arriving at the leaf. Moreover, if there are multiple CFGs, then Absynthe can synthesize interleaved behaviors. This means that a single sequence of nodes might contain nodes from multiple CFGs. We are ultimately interested in this interleaving behavior, which is produced by multiple CFGs.
The above screenshot shows logs generated by Absynthe. Each log line starts with a time stamp, followed by a session ID, CFG ID, and a log message. At present, the log message is simply a random concatenation of the node ID to which the log message corresponds. A single CFG might participate in multiple sessions, where each session is a different traversal of the CFG. Therefore, we maintain both session ID and CFG ID in the log line.
The easiest way to use Absynthe is to
pip install absynthe and then refer to
basicLogGeneration in the first example file in
in this repository.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size absynthe-0.0.1-py3-none-any.whl (22.1 kB)||File type Wheel||Python version py3||Upload date||Hashes View hashes|
|Filename, size absynthe-0.0.1.tar.gz (12.9 kB)||File type Source||Python version None||Upload date||Hashes View hashes|