Skip to main content

Interactive browser for analyzing Dynflow task execution data from TheForeman/Red Hat Satellite sosreports.

Project description

DynflowBrowser

Interactive browser for analyzing Dynflow task execution data from Foreman/Satellite.

Overview

  • Dynflow data can be imported from a sosreport or by connecting to a live Foreman/Satellite server (connection is Read Only).
  • There are available two interfaces for analyzing Dynflow execution:
    • Terminal Browser: Fast keyboard/mouse-driven specifically designed TUI Dynflow browser.
    • HTTPD Service: Web interface accessible from any browser.

How it works?

  1. It reads Dynflow csv files from a sosreport and saves the data to a SQLite file.
    • Imported data can be filtered using similar sintax as the well known foreman-rake. E.g:
      # foreman-rake foreman_tasks:export_tasks TASK_SEARCH='result != success' TASK_DAYS=3
      #
      # dynflowbrowser --search="result != success" --task-days 3
      
  2. The database is used to get the Tasks details while browsing using the TUI or HTTP server.
  • HTTPD Service can be started in background while using the Terminal Browser.
  • Share HTTP or SSH tunnel access with colleagues to dig into the same Dynflow data.
  1. Dynflow and Pulp statistics by execution time are available for all/specific Tasks.

Key Features

  • Fast CSV parsing with pandas and optimized SQLite operations
  • Filter tasks by state, result, search queries, or time range
  • Expandable task hierarchies with automatic error expansion
  • Dynflow and Pulp execution statistics
  • Timezone-aware date conversion. Dynflow and Pulp UTC converted to sosreport TZ.
  • System context display (hostname, version, CPU, RAM, tuning)

Screenshots

Tasks list Task details Terminal

Installation

Using pip

pip install dynflowbrowser

Using prebuilt packages

Download from Latest Release

Requirements

  • Python 3.6+
  • Jinja2, pandas, pytz, textual

Usage

usage: dynflowbrowser [-h] [-v] [--search SEARCH] [--state {paused,pending,planned,planning,running,stopped}]
                      [--result {error,pending,success,warning}] [--task-days TASK_DAYS] [--dbserver] [-o OUTPUT_PATH]
                      [sosreport_path]

Get sosreport dynflow files and generates user friendly html pages for tasks, plans, actions and steps

positional arguments:
  sosreport_path        Path to sos report folder. Default is current path.

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  --search SEARCH       Search query using foreman-rake syntax. Supports operators: =, !=, ~, !~, >, <, >=, <= and connectors: AND, OR
  --state {paused,pending,planned,planning,running,stopped}
                        Filter by task state. Valid: paused, pending, planned, planning, running, stopped
  --result {error,pending,success,warning}
                        Filter by task result. Valid: error, pending, success, warning
  --task-days TASK_DAYS
                        Import only tasks from last N days. Same as foreman-rake TASK_DAYS parameter.
  --dbserver            Connect directly to PostgreSQL instead of importing CSV to SQLite. Requires PostgreSQL connection details.
  -o OUTPUT_PATH, --output_path OUTPUT_PATH
                        Write output to this path. Default is './dynflowbrowser/'.

Examples:
  # Combine state, result and time filters
  dynflowbrowser --state stopped --result error --task-days 10

  # Complex search query (AND / OR operators)
  dynflowbrowser --search="result != success" --task-days 3
  dynflowbrowser --search="label ~ Sync AND state = stopped AND result = error"

Exporting Tasks from Foreman Database

For systems where sos is not installed or doesn't include dynflow data:

# Run on the Satellite server
dynflowbrowser-export-tasks

# Options:
#  -d DAYS    Number of days to export (default: 14)
#  -f FILTER  SQL filter query
#  -o PATH    Output directory (default: /tmp)

Creates a compressed export file compatible with DynflowBrowser.

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

dynflowbrowser-0.0.6.tar.gz (90.5 kB view details)

Uploaded Source

Built Distribution

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

dynflowbrowser-0.0.6-py3-none-any.whl (104.6 kB view details)

Uploaded Python 3

File details

Details for the file dynflowbrowser-0.0.6.tar.gz.

File metadata

  • Download URL: dynflowbrowser-0.0.6.tar.gz
  • Upload date:
  • Size: 90.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dynflowbrowser-0.0.6.tar.gz
Algorithm Hash digest
SHA256 af0e5b110af3b6bad2f34a48fb23542572fa26ff8ac021586461f54148fedc68
MD5 74e14221d55be98aaaa70d59728a6204
BLAKE2b-256 c63ebbaf55b2e48984ec1113e4114c85ef54ef6a9683058eaba019b1cddf427a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dynflowbrowser-0.0.6.tar.gz:

Publisher: publish-pypi.yml on pafernanr/dynflowbrowser

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

File details

Details for the file dynflowbrowser-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: dynflowbrowser-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 104.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dynflowbrowser-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0c5900e6910c7f62710f7d8295f621bae1901613f3427d257cf4b2d83b57e505
MD5 a8cab2062280e24a95b9c7bc5923bd5b
BLAKE2b-256 35da91511535fbbe24d859951254b11d63d5bcfa4c44ed2356bd84fe14e6d8a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for dynflowbrowser-0.0.6-py3-none-any.whl:

Publisher: publish-pypi.yml on pafernanr/dynflowbrowser

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