The Modular Autonomous Discovery for Science (MADSci) Event and Logging Manager.
Project description
MADSci Event Manager
Handles distributed logging and events throughout a MADSci-powered Lab.
Notable Features
- Collects logs from distributed components of the lab and centralizes them
- Allows for querying of events
- Can accept arbitrary event data
- Enforces a standard Event schema, allowing for structured querying and filtering of logs.
- Supports python
logging-style log levels.
Usage
Manager
To create and run a new MADSci Event Manager, do the following in your MADSci lab directory:
- If you're not using docker compose, provision and configure a MongoDB instance.
- If you're using docker compose, create or add the following to your Lab's
compose.yaml, defining your docker compose services for the EventManager and a MongoDB database to store events.
name: madsci_example_lab
services:
mongodb:
container_name: mongodb
image: mongodb/mongodb-community-server:latest
ports:
- 27017:27017
event_manager:
container_name: event_manager
image: madsci:latest
build:
context: ..
dockerfile: Dockerfile
environment:
- USER_ID=1000
- GROUP_ID=1000
network_mode: host
volumes:
- /path/to/your/lab/direcotry:/home/madsci/lab/
- .madsci:/home/madsci/.madsci/
command: python -m madsci.event_manager.event_server
depends_on:
- mongodb
# Create an Event Manager Definition
madsci manager add -t event_manager
# Start the database and Event Manager Server
docker compose up
# OR
python -m madsci.event_manager.event_server
You should see a REST server started on the configured host and port. Navigate in your browser to the URL you configured (default: http://localhost:8001/) to see if it's working.
You can see up-to-date documentation on the endpoints provided by your event manager, and try them out, via the swagger page served at http://your-event-manager-url-here/docs.
Client
You can use MADSci's EventClient (madsci.client.event_client.EventClient) in your python code to log new events to the event manager, or fetch/query existing events.
from madsci.client.event_client import EventClient
from madsci.common.types.event_types import Event, EventLogLevel, EventType
event_client = EventClient(
event_server="https://127.0.0.1:8001", # Update with the host/port you configured for your EventManager server
)
event_client.log_info("This logs a simple string at the INFO level, with event_type LOG_INFO")
event = Event(
event_type="NODE_CREATE",
log_level=EventLogLevel.DEBUG,
event_data="This logs a more complex NODE_CREATE event at the DEBUG level. The event_data field should contain relevant data about the event (in this case, something like the NodeDefinition, for instance)"
)
event_client.log(event)
event_client.log_warning(event) # Log the same event, but override the log level.
# Get recent events
event_client.get_events(number=50)
# Get all events from a specific node
event_client.query_events({"source": {"node_id": "01JJ4S0WNGEF5FQAZG5KDGJRBV"}})
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 Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file madsci_event_manager-0.1.3.tar.gz.
File metadata
- Download URL: madsci_event_manager-0.1.3.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.22.4 CPython/3.9.21 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00a700c63cb0cc9b2725ad5402acfe63aef949c8e6636b8679de9684b6c3d525
|
|
| MD5 |
b9cd23e3fd1b116164fd6d4ff7b17734
|
|
| BLAKE2b-256 |
733c9fd3ce001b7800d6626e8cabb6fe92a928969fd8f15930b22143c70948c0
|
File details
Details for the file madsci_event_manager-0.1.3-py3-none-any.whl.
File metadata
- Download URL: madsci_event_manager-0.1.3-py3-none-any.whl
- Upload date:
- Size: 3.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.22.4 CPython/3.9.21 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c56c44f098fff13cedc54b29c35e600e4876451ed1e8fe247f88a79a2292cdb0
|
|
| MD5 |
014e7e58ad7289d63ebf6968fcb8a5a9
|
|
| BLAKE2b-256 |
c57b727a485066b31c887b00f82383fdf3fc1ae6d305c41040879cfe541a9fa2
|