Reference

System

Source ClusterPage.tsx, SettingsPage.tsx, EffectsSettingsPage.tsx, LogsPage.tsx, RealTimePage.tsx

The deployment itself: the processes that run Trax, the scheduler's settings, the effects, and the logs. Bulk operations, also under System, has a page of its own.

Hosts

/system/hosts, read through operations.hosts. Every process that runs Trax writes a heartbeat every 15 seconds, with or without work. A host that misses three beats (45 seconds) is offline; one silent for a day is no longer listed.

Above the table: how many hosts, how many are online, and how many runs are running now.

ColumnValue
HostIts name, and the start of its instance id (the whole id on hover)
StatusOnline or Offline
Runs theManifest manager, job dispatcher, both, or neither
Worker slots busyHow many of its local worker slots are in use, or "No local workers"
Running nowIts runs in progress, linking Runs filtered to In progress on that host
Last heartbeat, Environment, VersionWhen it last beat, its environment name, and the Trax version it runs

The page says when the job dispatcher is paused, so no host starts queued work, with a link to the Scheduler page, and when no online host runs the dispatcher at all.

This process shows the CPU, working set, GC heap and uptime of the process serving the console, the only host whose memory the console can read.

Scheduler

/system/scheduler. The scheduler's settings, stored in the database and shared by every scheduler host, read through operations.config and saved through updateScheduler. A saved change applies at once on the host serving the page and within a few seconds on every other scheduler host, unless its section says otherwise. A saved setting replaces the value configured in code (AddScheduler).

Pause and resume has a switch for each of the scheduler's two loops, each behind a confirmation. While either is paused, the header says so on every page.

LoopDoesPaused
Manifest managerQueues each manifest's run when its schedule comes dueNo manifest is queued on its schedule. Work queued by hand is still started.
Job dispatcherStarts queued work on a workerQueued work waits and nothing new starts from the queue. Runs already started finish.

The other settings, a section each, each with its own Save and Discard. A section saves only the fields changed in it.

SectionSettings
Polling and queueHow often the manifest manager checks schedules and the job dispatcher checks the queue; max active jobs across all groups (blank for no limit); local workers per host (blank for one per processor, used from a host's next start)
RetryDefault max retries, default retry delay, retry backoff multiplier, max retry delay, failure count window
Job timeoutsDefault job timeout, stale pending timeout, and failing runs left in progress when a host starts (applies at a host's next start)
Retention and purgeDeleting resolved dead letters automatically and how long to keep them; on a host with metadata cleanup, how often it runs and how long scheduler train runs are kept

A duration outside the range the service accepts is refused with the service's message.

Log levels lists each category under Logging:LogLevel with its level now, read and saved through ILogLevelService. It is not stored with the settings: a change applies at once, only in the process serving the console, until it restarts. Scheduler and worker processes keep their own levels. A level set this way is marked Runtime override.

Effects

/system/effects. Every registered effect and junction effect provider factory, read and written through IEffectSettingsService, the service behind the API's effects query and setEffectEnabled. The registry is per process: a change applies to the next run's scope in the process serving the console and does not reach separate scheduler or worker processes.

ActionDoes
A row's switch, Enable all, Disable allMarks effects on or off; an effect that cannot be turned off reads Always on
SaveApplies the changed switches, then reads every effect again. A refused switch is reported and the others still apply.
Discard changesDrops unsaved switches
ConfigureOn a factory with a configuration type: a form of its settings

In Configure, each setting is a field for its type. A setting set in code, such as a delegate, is shown as set or not and is not editable. A [TraxSensitive] setting is never shown: its field opens blank, says whether a value is set, and is sent only when given a new one. Save sends only the changed settings, all or none, and a refusal keeps the dialog open with its reason.

Logs

/system/logs. Every run's log entries, newest first, read through operations.logs. Filters, kept in the address: Run id, Minimum level, Category contains, Message contains, and Order. The text filters ignore case; an exception's text cannot be searched. With a text filter the count stops at 10,000 and the pager says so. A run's own log is the Logs tab of its page.

Live events

/system/live. What the server pushes to the console, from the moment the page opened: every run's state change in an event stream, and a count of each change signal (work queue, dead letters, manifests, manifest groups, scheduler settings) that makes the list pages read again. The header says whether events are arriving.