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?
- 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
- Imported data can be filtered using similar sintax as the well known
- 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.
- 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af0e5b110af3b6bad2f34a48fb23542572fa26ff8ac021586461f54148fedc68
|
|
| MD5 |
74e14221d55be98aaaa70d59728a6204
|
|
| BLAKE2b-256 |
c63ebbaf55b2e48984ec1113e4114c85ef54ef6a9683058eaba019b1cddf427a
|
Provenance
The following attestation bundles were made for dynflowbrowser-0.0.6.tar.gz:
Publisher:
publish-pypi.yml on pafernanr/dynflowbrowser
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dynflowbrowser-0.0.6.tar.gz -
Subject digest:
af0e5b110af3b6bad2f34a48fb23542572fa26ff8ac021586461f54148fedc68 - Sigstore transparency entry: 1790558020
- Sigstore integration time:
-
Permalink:
pafernanr/dynflowbrowser@71db156c891d5e30f98d88c22220d3f807c2f7e9 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/pafernanr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@71db156c891d5e30f98d88c22220d3f807c2f7e9 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c5900e6910c7f62710f7d8295f621bae1901613f3427d257cf4b2d83b57e505
|
|
| MD5 |
a8cab2062280e24a95b9c7bc5923bd5b
|
|
| BLAKE2b-256 |
35da91511535fbbe24d859951254b11d63d5bcfa4c44ed2356bd84fe14e6d8a0
|
Provenance
The following attestation bundles were made for dynflowbrowser-0.0.6-py3-none-any.whl:
Publisher:
publish-pypi.yml on pafernanr/dynflowbrowser
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dynflowbrowser-0.0.6-py3-none-any.whl -
Subject digest:
0c5900e6910c7f62710f7d8295f621bae1901613f3427d257cf4b2d83b57e505 - Sigstore transparency entry: 1790558071
- Sigstore integration time:
-
Permalink:
pafernanr/dynflowbrowser@71db156c891d5e30f98d88c22220d3f807c2f7e9 -
Branch / Tag:
refs/tags/v0.0.6 - Owner: https://github.com/pafernanr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@71db156c891d5e30f98d88c22220d3f807c2f7e9 -
Trigger Event:
release
-
Statement type: