A client application for handling logging sending to a server
Project description
Lion Handler - Loghandler application - Client
Team
Authored by: Saulo Leão - @sleao
Coauthored by: Thiago Pinho - @thiagolrpinho
Lion Handler
Over engineering things is my passion and I will do it forever. That being said, this repo includes both a server for receiving and managing logs via websockets/API and a client that you can attach to your code that will send the logs over.
Setting up goals
To better track this project, I'll write a bunch of things I think it should have in order to achieve my goals for this tool.
My basic idea for this is to be able to send/receive logs and the server should store it in MongoDB, but also to have some sort of control panel, to explore the logs with analytics, maybe or something like that.
The server itself should have a frontend (the control panel), with access control (a.k.a. login/logout), and the hability to create application tokens.
Application tokens will be used as a sort of access control to the log server and to minimize the amount of data in each message. An application token should be a HS256 encrypted JWT, with info about the app on its payload.
I'm building this to work in a container based enviroment, that hosts many applications with one or more instances of each application, so there should be a way to differentiate the instances (maybe use hostnames, since each are unique to the application pod?)
On receiving a connection, the server should validate the token (or deny the connection) and assign the application instance to its application bucket
A bucket should be a collection of logs related to an application, each log with its instance tag.
-
Client
- Can send INFO, WARNING, ERROR, CRITICAL and DEBUG
- Can handle both String and JSON messages
- Has a fallback in case the server is unreachable
Connection Manager
In order to better manage all the socket connections from all different applications, a Connection Manager class is defined. Besides handling both instance connection and disconnection, it should be able to return a list of active Apps/Instances, following the JSON specification below
{
"cerco": {
"running_instances": 3,
"instances": {
"a2b5": {
"socket": "hash",
"connected_at": "6/11/2021"
},
"a2b6": {
"socket": "WebSocket",
"connected_at": "6/11/2021"
},
"a2b7": {
"socket": "WebSocket",
"connected_at": "6/11/2021"
}
}
},
"midas": {
...
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for lionhandler-0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 307be8fc2911d31c0276cd3d5fd8bec5bd9a8b94c274ac68670da3a4fb700288 |
|
MD5 | 8503a2a88d27fc3a756f8f85bcae5e92 |
|
BLAKE2b-256 | 7a15d6a620c67bf1ebd1984765b9a8b5b54a2d901ebf992adee36a987e90f22f |