A Python program that can process log files and generate a daily report on anomalies in a set of logs.
- It should be able to read multiple files and output an html-formatted file.
- It should have multiple metrics/checks for anomalous log lines.
- It should be able to take in a log line format so that it knows how to extract useful information from a log line.
- It should be able to traverse a well-defined file system structure to access all logs.
- It should be able to generate metrics that span multiple files.
- It should be well-tested.
pip install alogamous
-
Open a terminal
-
Install hatch
curl -Lo hatch-universal.pkg https://github.com/pypa/hatch/releases/latest/download/hatch-universal.pkg sudo installer -pkg ./hatch-universal.pkg -target /
-
Restart your terminal
Hatch modifies your system PATH variable, and this won't take effect unless you restart the terminal.
-
Make sure hatch works
hatch --version
-
Configure hatch
hatch config set dirs.env.virtual .venv
-
Clone the repo
git clone https://github.com/aquanauts/alogamous.git cd alogamous
-
Install pre-commit hooks
This will make sure certain checks are run when committing code.
hatch run pre-commit:install
-
Run the tests
hatch test
-
Setup your IDE
-
Sign up for a free JetBrains Educational License or buy one
-
Download Pycharm
- Depending on your platform you may need to download and install Python
-
Open Pycharm
-
Click Open on the welcome screen and then select the file alogamous
-
Permission Error
-
Message: PermissionError: [Errno 13] Permission denied: '/usr/local/hatch/bin/hatch'
-
Fix by running:
sudo chmod a+r /usr/local/hatch/bin/hatch
Gitignore is a way to explicitly tell Git that certain files should not be committed. For example, we did this with the .idea folder, which is automatically generated and contains settings that do not need to be committed.
- Create the gitignore file
touch .gitignore
- Add the current file to the gitignore
git add .
- Commit these changes
git commit
If you open the .gitignore file, you can add lines directly there as well.
- If you would like to exclude any file or directory whose name begins with a certain phrase (e.g. "hello."), you can use the pattern of name followed by asterisk (e.g. hello.*)
- If you would like to match a directory and the paths underneath it, but not a regular file with the same name, you can use the pattern of name followed by forward slash (e.g. foo/)
- If you would like to include a certain file which has been excluded by a previous pattern, you can use the prefix "!". (Note that it is not possible to re-include a file if a parent directory of that file is excluded)
- For additional information on gitignore's pattern format and examples, see the git docs
alogamous
is distributed under the terms of the MIT license.