Skip to main content

A (branching) Behaviour Synthesizer

Project description

Build Status

Absynthe: A (branching) Behavior Synthesizer

Motivation

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.

Overview

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.

Usage

The easiest way to use Absynthe is to pip install absynthe and then refer to the method basicLogGeneration in the first example file in examples folder in this repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for absynthe, version 0.0.1
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

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page