FireX Flame
Flame is a lightweight server that collects, serves, and presents data from a FireX execution. It receives events from the FireX backend and aggregates them into the Flame data model, which is available through REST and Socket.IO APIs. Flame also serves the Flame UI for viewing a single execution.
The Flame server is typically ephemeral. A FireX execution launches its own server, which remains available after the workflow completes and terminates automatically after its configured timeout.
The server and UI are distributed as part of firexapp while retaining the
firex_flame and firex_flame_ui import namespaces, firex_flame
command, and Flame tracking-service entry point. Frontend source and tests
live in firex_flame_ui_frontend; its production build populates the
firex_flame_ui resource package included in the FireXApp artifact.
API Reference
Flask API module for interacting with celery tasks.
- class firex_flame.controller.RunningModelDumper(flame_controller: FlameAppController)[source]
Maintains a queue and a greenlet for async writing the flame data model. Having a dedicated greenlet prevents writing the model to disk from blocking the main celery event receiver.
Process events from Celery in to flame data model.
- class firex_flame.event_broker_processor.BrokerEventConsumerThread(celery_app, flame_controller: FlameAppController, config: BrokerConsumerConfig, recording_file: str, shutdown_handler)[source]
Events threading class
- class firex_flame.flame_helper.FlameServerConfig(webapp_port: int, serve_logs_dir: bool, recording_file: str | None, extra_task_dump_paths: list[str], authed_user_request_path: list[str])[source]
- class firex_flame.flame_task_graph.FlameEventAggregator(tasks_by_uuid, model_dumper: FlameModelDumper | None = None)[source]
Aggregates many events in to the task data model.
- generate_incomplete_events()[source]
Unfortunately, if a run terminates ungracefully, incomplete tasks will never arrive at a terminal runstate. The ‘task-incomplete’ runstate is a fake (non-Celery) terminal runstate that is generated here so that the UI can show a non-incomplete runstate. :return: