A Python-based monitoring tool for Teraslice distributed computing clusters
Project description
ts-topy
A monitoring tool for Teraslice distributed computing clusters, built on Python with Textual.
Overview
This is a rewrite of teraslice-top in Python, designed to provide better scalability and UX for monitoring Teraslice clusters with many jobs.
Installation
# Install using uv (recommended for CLI tools)
uv tool install ts-topy
# Or from PyPI
pip install ts-topy
# Or using pipx
pipx install ts-topy
Usage
# Connect to localhost:5678 (default)
ts-topy
# Specify custom URL
ts-topy https://teraslice.example.com:8000
# Set refresh interval (default: 5s)
ts-topy http://localhost:5678 --interval 5
ts-topy http://localhost:5678 -i 5
# Set request timeout (default: 10s)
ts-topy http://localhost:5678 --request-timeout 30
# All options
ts-topy https://teraslice.example.com:8000 -i 5 --request-timeout 30
Features
- Real-time monitoring of Teraslice cluster state
- Three-pane display showing:
- Execution Contexts
- Controllers
- Jobs
- Global search/filter across all data
- Auto-refresh with configurable intervals
- Terminal UI built with Textual
Technology Stack
- Python 3.10+
- uv - Python project and package manager
- Textual - Terminal UI framework
- httpx - Async HTTP client
- Pydantic - Data validation and models
- Typer - CLI interface
Development
# Install dependencies
uv sync
# Run the application
uv run ts-topy
Releasing
This project uses GitHub Actions for automated releases to PyPI. To create a new release:
-
Bump the version using the bump script:
# For a patch release (bug fixes) uv run scripts/bump_version.py patch # For a minor release (new features) uv run scripts/bump_version.py minor # For a major release (breaking changes) uv run scripts/bump_version.py major # Or set a specific version uv run scripts/bump_version.py --set 1.2.3
-
Review and commit the changes:
git diff # Review the version change git add pyproject.toml git commit -m "Bump version to X.Y.Z"
-
Create and push a git tag:
git tag vX.Y.Z git push origin main --tags
-
GitHub Actions will automatically:
- Build the package
- Create a GitHub release
- Publish to PyPI
-
Verify the release:
- Check the GitHub releases page
- Verify on PyPI
Manual Release (if needed)
If you need to build and publish manually:
# Build the package
uv build
# Publish to PyPI (requires PyPI credentials)
uv publish
License
MIT
Project details
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 ts_topy-0.4.0.tar.gz.
File metadata
- Download URL: ts_topy-0.4.0.tar.gz
- Upload date:
- Size: 37.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42f68a6b767759cbe5fe3ffec33bc6fa20b11e79d512c4a8d44f33d576061032
|
|
| MD5 |
7fdc98c5fa34482bf3a1ea4c1e5ca457
|
|
| BLAKE2b-256 |
21429ffd1330c246d59b893d201877e46e565c11cf185999e26915f9471f6ae2
|
Provenance
The following attestation bundles were made for ts_topy-0.4.0.tar.gz:
Publisher:
release.yml on godber/ts-topy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ts_topy-0.4.0.tar.gz -
Subject digest:
42f68a6b767759cbe5fe3ffec33bc6fa20b11e79d512c4a8d44f33d576061032 - Sigstore transparency entry: 577786193
- Sigstore integration time:
-
Permalink:
godber/ts-topy@080ff4bf9aefcde5e89e8b2d33df838f99d67a08 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/godber
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@080ff4bf9aefcde5e89e8b2d33df838f99d67a08 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ts_topy-0.4.0-py3-none-any.whl.
File metadata
- Download URL: ts_topy-0.4.0-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
914a25c1a15f8750797e4bc997c0ee2ecd54e4b6bb587b4502db385c999d44c5
|
|
| MD5 |
925d3fe0cdb311138e81f93331fb3451
|
|
| BLAKE2b-256 |
41ce773ffcf734bbbb93604d84d1390db612123b336761d119b527fa274afe59
|
Provenance
The following attestation bundles were made for ts_topy-0.4.0-py3-none-any.whl:
Publisher:
release.yml on godber/ts-topy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ts_topy-0.4.0-py3-none-any.whl -
Subject digest:
914a25c1a15f8750797e4bc997c0ee2ecd54e4b6bb587b4502db385c999d44c5 - Sigstore transparency entry: 577786258
- Sigstore integration time:
-
Permalink:
godber/ts-topy@080ff4bf9aefcde5e89e8b2d33df838f99d67a08 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/godber
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@080ff4bf9aefcde5e89e8b2d33df838f99d67a08 -
Trigger Event:
push
-
Statement type: