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.

Source Distribution

absynthe-0.0.1.tar.gz (12.9 kB view hashes)

Uploaded Source

Built Distribution

absynthe-0.0.1-py3-none-any.whl (22.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page