FireX Keeper

FireX Keeper is a lightweight process that collects and persists task data from a FireX execution in an SQLite database. The database can be queried for task results, run states, arguments, and execution relationships.

The implementation is distributed as part of firexapp while retaining the firex_keeper import namespace, firex_keeper command, and Keeper tracking-service entry point.

API Reference

Process events from Celery.

class firex_keeper.keeper_event_consumer.KeeperEventAggregator(run_db_manager: WritingFireXRunDbManager, firex_id: str)[source]

Aggregates many events in to the task data model. Tries to minimize memory usage and disk-reads by keeping only incomplete tasks in memory. Task completeness is ill defined, so it may always be necessary to read a task in order to perform aggregation.

class firex_keeper.keeper_event_consumer.KeeperQueueEntryType(value)[source]

An enumeration.

class firex_keeper.keeper_event_consumer.KeeperThreadedEventWriter(run_metadata, writing_complete_callback)[source]

Aggregates Celery events from a queue and writes to the Keeper DB in a seperate thread.

class firex_keeper.keeper_event_consumer.TaskDatabaseAggregatorThread(celery_app, run_metadata: RunMetadata, max_retry_attempts: int | None = None, receiver_ready_file: str | None = None)[source]

Receives Celery events and puts them on an internal queue to eventually store the FireX datamodel in an SQLite DB.

class firex_keeper.keeper_event_consumer.WritingFireXRunDbManager(run_metadata: RunMetadata)[source]

Utility functions for the firex_keeper package.

class firex_keeper.keeper_helper.FireXTreeTask(uuid, firex_id, chain_depth, firex_bound_args, firex_result, firex_default_bound_args, from_plugin, hostname, logs_url, long_name, name, actual_runtime, first_started, parent_id, retries, state, task_num, utcoffset, exception, traceback, exception_cause_uuid, children, parent)
actual_runtime

Alias for field number 11

chain_depth

Alias for field number 2

children

Alias for field number 21

exception

Alias for field number 18

exception_cause_uuid

Alias for field number 20

firex_bound_args

Alias for field number 3

firex_default_bound_args

Alias for field number 5

firex_id

Alias for field number 1

firex_result

Alias for field number 4

first_started

Alias for field number 12

from_plugin

Alias for field number 6

hostname

Alias for field number 7

logs_url

Alias for field number 8

long_name

Alias for field number 9

name

Alias for field number 10

parent

Alias for field number 22

parent_id

Alias for field number 13

retries

Alias for field number 14

state

Alias for field number 15

task_num

Alias for field number 16

traceback

Alias for field number 19

utcoffset

Alias for field number 17

uuid

Alias for field number 0

class firex_keeper.keeper_launcher.FireXKeeperLauncher[source]
class firex_keeper.persist.FireXRunDbManager(db_conn)[source]

Read-only operations on a keeper DB connection.

exception firex_keeper.persist.FireXWaitQueryExceeded[source]
firex_keeper.persist.get_db_manager(logs_dir)[source]

Get a query-only DB manager for an existing keeper DB file.

exception firex_keeper.task_query.FireXTaskQueryException[source]