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.
Features
- Centralized logging from distributed lab components
- Event querying with structured filtering
- Arbitrary event data support with standard schema
- Python
logging-style log levels - Alert notifications (email, etc.)
Installation
See the main README for installation options. This package is available as:
- PyPI:
pip install madsci.event_manager - Docker: Included in
ghcr.io/ad-sdl/madsci - Example configuration: See example_lab/managers/example_event.manager.yaml
Dependencies: MongoDB database (see the example_lab)
Usage
Quick Start
Use the example_lab as a starting point:
# Start with working example
docker compose up # From repo root
# Event Manager available at http://localhost:8001/docs
# Or run standalone
python -m madsci.event_manager.event_server
Manager Setup
For custom deployments, create an Event Manager definition:
madsci manager add -t event_manager
See example_event.manager.yaml for configuration options.
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_client.info("This does the same thing")
event = Event(
event_type="NODE_CREATE",
log_level=EventLogLevel.DEBUG,
event_data="This logs a 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 the 50 most recent events
event_client.get_events(number=50)
# Get all events from a specific node
event_client.query_events({"source": {"node_id": "01JJ4S0WNGEF5FQAZG5KDGJRBV"}})
event_client.alert(event) # Will force firing any configured alert notifiers on this event
Alerts
The Event Manager provides some native alerting functionality. A default alert level can be set in the event manager definition's alert_level, which will determine the minimum log level at which to send an alert. Calls directly to the EventClient.alert method will send alerts regardless of the alert_level.
You can configure Email Alerts by setting up an EmailAlertsConfig (madsci.common.types.event_types.EmailAlertsConfig) in the email_alerts field of your EventManagerSettings.
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.5.0rc1.tar.gz.
File metadata
- Download URL: madsci_event_manager-0.5.0rc1.tar.gz
- Upload date:
- Size: 42.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.26.0 CPython/3.9.24 Linux/6.14.0-1012-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69b5dae4d2d30183960856e5e58a5b0ffadd52be1f2f9aa0edeee0524c7d401e
|
|
| MD5 |
10d49e667b6c75f6b93c30e90a268c92
|
|
| BLAKE2b-256 |
e24fbd64855f37d261fd36659084daebc4e88b4e1295b28e7f88f4fff6a53b3f
|
File details
Details for the file madsci_event_manager-0.5.0rc1-py3-none-any.whl.
File metadata
- Download URL: madsci_event_manager-0.5.0rc1-py3-none-any.whl
- Upload date:
- Size: 41.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.26.0 CPython/3.9.24 Linux/6.14.0-1012-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5c2215d9c5707d3388e655cdae5abd0687115267b6ce532e32d894a8ea481ce
|
|
| MD5 |
bca4c7aa6353a193e85ddfb2b9381f98
|
|
| BLAKE2b-256 |
39e96cb5659698957b2f42eb994da55cdd41f605870e72d908c9ab4201a30a5b
|