A lightweight library for node and internal flow-level status tracking using PostgreSQL.
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
node-status-lib
node-status-lib is a lightweight Python library designed to simplify the tracking of node and flow statuses in distributed systems. It is especially useful for monitoring pipelines, workflows, and microservices by storing runtime states in a PostgreSQL database.
Features
- Track the status of an entire node
- Track the status of individual flows/tasks within a node
- Store all status updates directly into a PostgreSQL database
- Built-in support for integration with secret managers (e.g., AWS Secrets Manager)
- Easy integration into any Python-based pipeline or microservice
Installation
Install via PyPI:
pip install node-status-lib
Usage
1. Import the Library
from node-status-lib.manager import NodeStatusManager
from node-status-lib.enums import Status
2. Initialize the Node Status Manager
manager = NodeStatusManager(
node_id="102",
node_name="multispectral_node",
flows=["heatmap_gen", "insight_gen", "response"],
db_details={
"DB_NAME": < DB_NAME >,
"DB_USER": < DB_USER >,
"DB_PASSWORD": < DB_PASS >,
"DB_HOST": < DB_HOST >,
"DB_PORT": < DB_PORT >
}
)
4. Update Node and Flow Status
# Update node's overall status
manager.update_node_status(Status.RUNNING)
# Update specific flow status
manager.update_flow_status("heatmap_gen", Status.SUCCESS)
Status Enum Options
from node-status-lib.enums import Status
Status.PENDING
Status.RUNNING
Status.SUCCESS
Status.FAILED
🗃️ Database Table Schema
Make sure your PostgreSQL database has a table named node_status. Here's a basic schema:
CREATE TABLE node_status (
id SERIAL PRIMARY KEY,
node_id TEXT NOT NULL,
node_name TEXT NOT NULL,
flow_name TEXT,
status TEXT NOT NULL,
timestamp TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);
Requirements
- Python 3.7+
- PostgreSQL
psycopg2-binaryboto3(optional, for AWS Secrets Manager)
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
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 node_status_lib-0.1.8.tar.gz.
File metadata
- Download URL: node_status_lib-0.1.8.tar.gz
- Upload date:
- Size: 1.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.10.12 Linux/6.8.0-60-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
796452bf90131de47a285fea0e4e5ef8c9e05443805cf9782789329c0bf5d324
|
|
| MD5 |
063a589bd836884ffebab86cb2698fe2
|
|
| BLAKE2b-256 |
3e90388b8092d590acd383c115fe8757ba141818b814c38d03332b882e6deccd
|
File details
Details for the file node_status_lib-0.1.8-py3-none-any.whl.
File metadata
- Download URL: node_status_lib-0.1.8-py3-none-any.whl
- Upload date:
- Size: 2.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.10.12 Linux/6.8.0-60-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27d507ead047c81cda9664d8de23d913e0cfde5171c476b8b98d34f366f94ab1
|
|
| MD5 |
e2956bbda7e031e486fd6372f22e96d5
|
|
| BLAKE2b-256 |
dd8a5c4d8345304b4c84da8617b7d66d00c386c6cf5c544e85d2c828ada946be
|