/FicsitRemoteMonitoringCompanion

A companion app to the Ficsit Remote Monitoring mod for Satisfactory

Primary LanguageGo

Ficsit Remote Monitoring Companion

Ficsit Remote Monitoring Companion (FRMC) is a companion application for the Ficsit Remote Montioring mod for Satisfactory.

The Ficsit Remote Monitoring mod exports metrics about the loaded save in Satisfactory, via a web server serving JSON. This companion application provides a visulisation tool on top of those metrics.

Installation instructions

See installation instructions

How do I use it?

FRMC offers two tools for visualising the data being collected:

  1. The realtime map*
  2. The Prometheus metrics server*

The realtime map shows your factory buildings on the Satisfactory game world map, and charts their production levels in the last 5 minutes.

The Prometheus mertics server allows you to explore the data being exported using the full power of Prometheus.

(* Link goes to the address on your local system. If FRMC is not running, you will see an error)

What metrics are available

Name Description Labels
drone_port_battery_rate Rate of batteries used id, home_station, paired_station
drone_port_round_trip_seconds Recorded drone round trip time in seconds id, home_station, paired_station
machine_items_produced_per_min How much of an item a building is producing item_name, machine_name, x, y, z
machine_items_produced_pc The efficiency with which a building is producing an item item_name, machine_name, x, y, z
item_production_capacity_per_min The factory's capacity for the production of an item, per minute item_name
item_production_capacity_pc The percentage of an item's production capacity being used item_name
item_consumption_capacity_per_min The factory's capacity for the consumption of an item, per minute item_name
item_consumption_capacity_pc The percentage of an item's consumption capacity being used item_name
items_produced_per_min The number of an item being produced, per minute item_name
items_consumed_per_min The number of an item being consumed, per minute item_name
power_consumed Power consumed on selected power circuit circuit_id
power_capacity Power capacity on selected power circuit circuit_id
power_max_consumed Maximum Power that can be consumed on selected power circuit circuit_id
battery_differential Amount of power in excess/deficit going into or out of the battery bank(s). Positive = Charges batteries, Negative = Drains batteries circuit_id
battery_percent Percentage of battery bank(s) charge circuit_id
battery_capacity Total capacity of battery bank(s) circuit_id
battery_seconds_empty Seconds until Batteries are empty circuit_id
battery_seconds_full Seconds until Batteries are full circuit_id
fuse_triggered Has the fuse been triggered circuit_id
train_round_trip_seconds Recorded train round trip time in seconds name
train_segment_trip_seconds Recorded train trip between two stations name, from, to
train_derailed Is train derailed name
train_power_consumed How much power train is consuming name
vehicle_round_trip_seconds Recorded vehicle round trip time in seconds id, vehicle_type, path_name
vehicle_fuel Amount of fuel remaining id, vehicle_type, fuel_type

How it works

Ficsit Remote Monitoring Companion reads metric data from the Ficsit Remote Montioring mod, stores it in a local Prometheus instance, and enables to users to visualise it using a realtime map or the Prometheus query interface.

Building FRMC

To build FRMC, run make from the Companion/ directory. This will download all the necessary dependencies and build FRMC.

Commit guidlines

Commits should contain a title on the first line, followed by a blank line, followed by as much detail as necessary to undertstand what the commit does and why. Lines should avoid being more than 80 characters wide.

Commit titles prefixed with feat:, fix: or improvement: will appear in the release notes. If a change sensibly spans multiple commits, either use the last commit to add informationt to the release notes, or use en empty commit.

An example of a good commit looks like this

Update building data in marker popups on each request

Previously, the map was requesting new data regularly but wasn't
updating the marker contents. This meant that if a building's recipe
changed, it would never be reflected in the map.