Code Monkey home page Code Monkey logo

molfi's Introduction

MoLFI

Multi-objective Log message Format Identification

MoLFI is a tool implementing a search-based approach to solve the problem of log message format identification. More details on this approach is available in this paper:

Salma Messaoudi, Annibale Panichella, Domenico Bianculli, Lionel Briand, and Raimondas Sasnauskas. A Search-based Approach for Accurate Identification of Log Message Formats. In Proceedings of ICPC โ€™18: 26th IEEE/ACM International Conference on Program Comprehension (ICPC โ€™18). Available online at http://hdl.handle.net/10993/35286

A log message template is a two parts message; one fixed and one variable.

 For example: "File config.xml sent at 191.168.1.3"

 "File", "sent" and "at" are the fixed part because the represent an event of sending a file.

 "config.xml" and "191.168.1.3" are the variable part because they change with the occurrence of the sending event.

MoLFI uses an evolutionary approach based on NSGA-II to solve this problem.

MoLFI applies the following steps:

  1. Pre-processing the log file (detect trivial variable parts using domain knowledge).
  2. Run NSGA-II algorithm.
  3. Post-processing: apply corrections to the resulting solutions.

MoLFI is implemented as a python project (v3.6.0).

This package contains the source code of the tool with two executable scripts.

  • MoLFI.py: the script used to run MoLFI. This script can be used from the command line.

  • validation.py: this script is used to validate the generated templates. It will apply a comparison between the generated templates and the correct templates (the oracle files)

To re-run the experiments, the MoLFI and the datasets used for the evaluation ICPC-2018-Artifacts should be under the same directory

-> The ICPC-2018-Artifacts repository is accessible from the following link: https://github.com/SalmaMessaoudi/ICPC-2018-Artifacts.git

-> go under the folder ICPC-2018-Artifacts and run make.

Under the same folder (ICPC-2018-Artifacts), a new folder will be created (Experiments_Results) with a sub-folder called "Metrics" containing the validation scores for each dataset and another sub-folder "Validation" with the generated templates being compared with the oracle.

To run MoLFI on a single log file:

  • from the command line, run the MoLFI.py script and precise the following arguments:
  • -l : specify the log file
  • -s : specify the separator of the log file contents (e.g. a comma, a tab character)
  • -c : precise the position of the log messages in the log file (e.g. 3 for third column)
  • -p : specify where to save the generated templates.
  • -r : provide the regular expressions if any (one after the other, separated by a normal space)

Example:

python3.6 MoLFI.py -l ../MoLFI_experiments/Datasets/BGL/2K/BGL_2K_log_messages.txt -s "\n" -c 0 -p templates.pkl -r "core.[0-9]*" "0x([a-zA-Z]|[0-9])+"

molfi's People

Contributors

salmamessaoudi avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.