Skip to main content

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

# Select from or add cluster to ~/.teraslice/aliases.yaml
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

Mock Server

For development and testing without a real Teraslice cluster, you can use the built-in mock server:

# Install mock server dependencies
uv sync --extra mock

# Start the mock server
uv run ts-topy mock-server

# In another terminal, monitor the mock server
uv run ts-topy http://localhost:5678

See MOCK_SERVER.md for detailed documentation on the mock server, including all available endpoints, options, and mock data characteristics.

Releasing

This project uses GitHub Actions for automated releases to PyPI. To create a new release:

  1. 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
    
  2. Review and commit the changes:

    git diff  # Review the version change
    git add pyproject.toml
    git commit -m "Bump version to X.Y.Z"
    
  3. Create and push a git tag:

    git tag vX.Y.Z
    git push origin main --tags
    
  4. GitHub Actions will automatically:

    • Build the package
    • Create a GitHub release
    • Publish to PyPI
  5. Verify the release:

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

ts_topy-0.5.1.tar.gz (55.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ts_topy-0.5.1-py3-none-any.whl (26.7 kB view details)

Uploaded Python 3

File details

Details for the file ts_topy-0.5.1.tar.gz.

File metadata

  • Download URL: ts_topy-0.5.1.tar.gz
  • Upload date:
  • Size: 55.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ts_topy-0.5.1.tar.gz
Algorithm Hash digest
SHA256 a08f440c33052252b1e9ffa65682b788fc503b2bb11faf551d1cebb9decee005
MD5 49f728315c30dc4c30c9c3e2fc1ee207
BLAKE2b-256 2a3191db690b2371dbece3f585c5330310895a6ea0c696b635cd38ab84562fd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ts_topy-0.5.1.tar.gz:

Publisher: release.yml on godber/ts-topy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ts_topy-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: ts_topy-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 26.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ts_topy-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f312afe9a6819318b6f55b94d064c08bce1973aba422591d1887cbf4ad2ecdd1
MD5 bfb056a461f4929d71268dfa43c44da7
BLAKE2b-256 4ff7a090271d837066ede6b007f7b54f88c3b974f49c2858ecbb31fac8658a2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ts_topy-0.5.1-py3-none-any.whl:

Publisher: release.yml on godber/ts-topy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page