Skip to main content

A tool for generating astronomer software deployment compute reports

Project description

Orbis

Orbis Logo

Orbis is a deployment compute report generator tool developed by RDC Team. It analyzes data from Prometheus to provide insights into deployment metrics and resource utilization for Astronomer Software platforms.

Docs

Features

  • Generates comprehensive deployment compute reports
  • Analyzes CPU, memory, and pod count metrics
  • Supports both Kubernetes and Celery executors
  • Creates visualizations for easy data interpretation
  • Exports reports in DOCX, JSON, and CSV formats
  • Supports resume functionality for interrupted report generation
  • Diagnostic scanner for collecting cluster support bundles
  • APC 1.x multi-cluster CP/DP support with topology discovery, incremental collection, and auto-merge
  • Session-based resume workflow for collecting across separate cloud accounts

Flow Diagram

Alt text

Installation

To install Orbis, follow these steps:

  1. Download the distributions from Releases

  2. Create and activate a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
    
  3. Install the package:

    pip install orbis-0.4.0-py3-none-any.whl
    

Configuration

Before running Orbis reporting, generate a system admin API token and export it as ASTRO_SOFTWARE_API_TOKEN.

export ASTRO_SOFTWARE_API_TOKEN=<your-token>

Reporting

Run reporting with a local Orbis install:

orbis reporting \
  -s <start-date> -e <end-date> \
  -b <base-domain> \
  --version <platform-version> -vvv -r -p -z

Run reporting with Podman:

podman run --rm -it \
  -e ASTRO_SOFTWARE_API_TOKEN=<your-token> \
  -v $(pwd)/output:/app/output \
  quay.io/astronomer/orbis:<orbis-version> \
  reporting \
  -s <start-date> -e <end-date> \
  -b <base-domain> \
  --version <platform-version> -vvv -r -p -z

Scanner

Run scanner with a local Orbis install:

orbis scanner create \
  -n <platform-namespace> \
  --kubeconfig <path-to-unified-kubeconfig> \
  -d <base-domain> \
  --image quay.io/astronomer/orbis:<orbis-version> \
  --log-level debug \
  --no-cleanup

Run scanner with Podman:

podman run --rm -it \
  -v ~/path/to/unified-kubeconfig:/kubeconfigs/unified_kubeconfig:ro \
  -v $(pwd)/output:/app/output \
  -v ~/.aws:/home/nonroot/.aws:ro \
  -e AWS_PROFILE \
  quay.io/astronomer/orbis:<orbis-version> \
  scanner create \
  -n <platform-namespace> \
  --kubeconfig /kubeconfigs/unified_kubeconfig \
  -d <base-domain> \
  --image quay.io/astronomer/orbis:<orbis-version> \
  --log-level debug \
  --no-cleanup

See docs/reporting/generate-report.md and docs/scanner/create-support-bundle.md for the full command list.

Output

Orbis generates:

  1. A comprehensive deployment compute report in DOCX format
  2. A JSON report for automation purposes
  3. A CSV report for automation purposes

Development

To set up the development environment:

  1. Clone the repository

  2. Install development dependencies:

    pip install -e ".[dev]"
    
  3. Install pre-commit hooks:

    pre-commit install
    
  4. Run tests:

    pytest tests/
    

Debugging

Create a .vscode folder and add launch.json file with the following contents:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python Debugger: Orbis",
            "type": "debugpy",
            "request": "launch",
            "module": "orbis.cli",
            "console": "integratedTerminal",
            "args": [
                "sizing",
                "-o",
                "<org_id>",
                "-s",
                "2024-07-03",
                "-e",
                "2024-07-04"
            ]
        }
    ]
}

Using pre-commit

Pre-commit is used to maintain code quality. Here's how to use it:

  1. Run pre-commit on all files:

    pre-commit run --all-files
    
  2. Run pre-commit on staged files:

    pre-commit run
    
  3. Run a specific hook:

    pre-commit run <hook_id>
    

    Replace <hook_id> with the ID of the specific hook you want to run (e.g., ruff).

  4. To bypass pre-commit hooks when committing:

    git commit -m "Your commit message" --no-verify
    

Pre-commit will run automatically before each commit once the hooks are installed.

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

astronomer_orbis-0.9.0rc5.tar.gz (98.6 kB view details)

Uploaded Source

Built Distribution

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

astronomer_orbis-0.9.0rc5-py3-none-any.whl (122.9 kB view details)

Uploaded Python 3

File details

Details for the file astronomer_orbis-0.9.0rc5.tar.gz.

File metadata

  • Download URL: astronomer_orbis-0.9.0rc5.tar.gz
  • Upload date:
  • Size: 98.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for astronomer_orbis-0.9.0rc5.tar.gz
Algorithm Hash digest
SHA256 1cb18fe791351455dec0a4103913e2894fe27e731fecca5ca5b8223a508b0989
MD5 a6eca210ce21bf0abdf0079a8818b99a
BLAKE2b-256 502df5a3b4e70dbcc6c822682b7371290996e202af8feb5aa525bcd14ceaa777

See more details on using hashes here.

Provenance

The following attestation bundles were made for astronomer_orbis-0.9.0rc5.tar.gz:

Publisher: pypi.yaml on astronomer/orbis

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

File details

Details for the file astronomer_orbis-0.9.0rc5-py3-none-any.whl.

File metadata

File hashes

Hashes for astronomer_orbis-0.9.0rc5-py3-none-any.whl
Algorithm Hash digest
SHA256 9bc829e396ed6d9d930e90b500d7f0a5cbb2c4abcaca7dff1fb6a171f69b4136
MD5 39edac3b83741658b25100576f2d50b9
BLAKE2b-256 fbcce3414de34069025df6ba454fcaa3dee20b15d306c4e64af8c0e1a4561789

See more details on using hashes here.

Provenance

The following attestation bundles were made for astronomer_orbis-0.9.0rc5-py3-none-any.whl:

Publisher: pypi.yaml on astronomer/orbis

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