Skip to main content

A Python-based monitoring tool for Teraslice distributed computing clusters

Project description

ts-topy

A Python-based monitoring tool for Teraslice distributed computing clusters, built 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.

Features

  • Real-time monitoring of Teraslice cluster state
  • Five-pane display showing:
    • Nodes
    • Workers
    • Controllers
    • Jobs
    • Execution Contexts
  • 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

Implementation Plan

Phase 1: Project Setup & Data Layer

  1. Initial setup - Create basic project structure with uv, pyproject.toml
  2. API Client - Build httpx client to connect to Teraslice master
  3. Data Models - Define Pydantic models for the 5 entity types
  4. Test API client - Verify we can fetch and parse all 5 endpoints

Phase 2: Basic Textual UI

  1. Hello World - Create minimal Textual app that runs
  2. Single pane - Display data from one endpoint in a DataTable widget
  3. Layout - Add all 5 panes with responsive layout
  4. Auto-refresh - Add timer to poll APIs and update display

Phase 3: Polish

  1. Search/Filter - Add input widget and filtering logic
  2. Styling - Improve colors, headers, formatting
  3. CLI args - Add host/port/timeout options
  4. Error handling - Handle connection errors, empty responses gracefully

Installation

# Coming soon
uv tool 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

Development

# Initialize project
uv init

# Install dependencies
uv sync

# Run the application
uv run ts-topy

Development Status

🚧 In Development - Currently in Phase 1

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.2.1.tar.gz (25.9 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.2.1-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ts_topy-0.2.1.tar.gz
  • Upload date:
  • Size: 25.9 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.2.1.tar.gz
Algorithm Hash digest
SHA256 f281a541e9ba525dac5ccad891f751d4779bc0adf2d8aa8d97d5d462d3e798ba
MD5 61ae07858588f589f21f60c36ecc7ecc
BLAKE2b-256 3a61e1ba3fba071866024c372e691f87e470944e1a4b252943d4468dcee36735

See more details on using hashes here.

Provenance

The following attestation bundles were made for ts_topy-0.2.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.2.1-py3-none-any.whl.

File metadata

  • Download URL: ts_topy-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 10.4 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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9d54cfbda2f9582ea975cc9d204b4b2465e864b6ae9958e20ef8a971bd735594
MD5 3fa3fa7fbd1ba43dc3252d012c44367d
BLAKE2b-256 926e6cf72837ef77893f345d2db0021a92feba121fa0b2961061996e1ad589ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for ts_topy-0.2.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