<!-- This readme is generated by running `Companion.exe -GenerateReadme` -->
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:
- The realtime map*
- 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 metrics 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)
Env vars
FRM_HOST: The host to the Ficsit Remote Monitoring server. EG: 172.17.0.1.
FRM_PORT: The port of the Ficist Remote Monitoring server. EG: 8080.
FRM_HOSTS: A comma separated list of Ficsit Remote Monitoring servers. This variable supports two connection modes:
- Standard FRM Web Server: Provide the base URL. If protocol is unspecified, it defaults to
http.
- Example:
http://myserver1.frm.example:8080,http://myserver2.frm.example:8080
- Dedicated Server API: Provide the full path to the server's built-in API. This will automatically switch to using the secure
POST method.
- Example:
https://my-dedicated-server.example:7777/api/v1
FRM_LOG_STDOUT: If FRMC should print to stdout rather than a separate logfile. Useful for docker/containerization. default false.
What metrics are available
<table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
<th>Labels</th>
</tr>
</thead>
<tbody>
<tr>
<td>drone_port_fuel_rate</td>
<td>Rate of fuel used</td>
<td>id, home_station, fuel_name, url, session_name</td>
</tr>
<tr>
<td>drone_port_fuel_amount</td>
<td>Amount of fuel in inventory</td>
<td>id, home_station, fuel_name, url, session_name</td>
</tr>
<tr>
<td>drone_port_round_trip_seconds</td>
<td>Recorded drone round trip time in seconds</td>
<td>id, home_station, paired_station, url, session_name</td>
</tr>
<tr>
<td>drone_port_power</td>
<td>Drone port power in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>drone_port_power_max</td>
<td>Max drone port power in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>extractor_power</td>
<td>extractor power use in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>extractor_power_max</td>
<td>extractor max power use in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>machine_items_produced_per_min</td>
<td>How much of an item a building is producing</td>
<td>item_name, machine_name, x, y, z, url, session_name</td>
</tr>
<tr>
<td>machine_items_produced_pc</td>
<td>The efficiency with which a building is producing an item</td>
<td>item_name, machine_name, x, y, z, url, session_name</td>
</tr>
<tr>
<td>machine_items_produced_max</td>
<td>Maximum production rate of an item a building can produce per minute</td>
<td>item_name, machine_name, x, y, z, url, session_name</td>
</tr>
<tr>
<td>machine_input_inventory</td>
<td>How much of an item a building has stored in its input</td>
<td>item_name, machine_name, x, y, z, url, session_name</td>
</tr>
<tr>
<td>machine_input_inventory_max</td>
<td>How much of an item a building can store in its input</td>
<td>item_name, machine_name, x, y, z, url, session_name</td>
</tr>
<tr>
<td>machine_output_inventory</td>
<td>How much of an item a building has stored in its output</td>
<td>item_name, machine_name, x, y, z, url, session_name</td>
</tr>
<tr>
<td>machine_output_inventory_max</td>
<td>How much of an item a building can store in its output</td>
<td>item_name, machine_name, x, y, z, url, session_name</td>
</tr>
<tr>
<td>factory_power</td>
<td>Power draw from factory machines in MW. Does not include extractors.</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>factory_power_max</td>
<td>Max power draw from factory machines in MW. Does not include extractors.</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>fracking_power</td>
<td>fracking power use in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>fracking_power_max</td>
<td>fracking max power use in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>hypertube_power</td>
<td>hypertube power use in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>hypertube_power_max</td>
<td>hypertube max power use in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>item_production_capacity_per_min</td>
<td>The factory's capacity for the production of an item, per minute</td>
<td>item_name, url, session_name</td>
</tr>
<tr>
<td>item_production_capacity_pc</td>
<td>The percentage of an item's production capacity being used</td>
<td>item_name, url, session_name</td>
</tr>
<tr>
<td>item_consumption_capacity_per_min</td>
<td>The factory's capacity for the consumption of an item, per minute</td>
<td>item_name, url, session_name</td>
</tr>
<tr>
<td>item_consumption_capacity_pc</td>
<td>The percentage of an item's consumption capacity being used</td>
<td>item_name, url, session_name</td>
</tr>
<tr>
<td>items_produced_per_min</td>
<td>The number of an item being produced, per minute</td>
<td>item_name, url, session_name</td>
</tr>
<tr>
<td>items_consumed_per_min</td>
<td>The number of an item being consumed, per minute</td>
<td>item_name, url, session_name</td>
</tr>
<tr>
<td>power_consumed</td>
<td>Power consumed on selected power circuit</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>power_capacity</td>
<td>Power capacity on selected power circuit</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>power_max_consumed</td>
<td>Maximum Power that can be consumed on selected power circuit</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>battery_differential</td>
<td>Amount of power in excess/deficit going into or out of the battery bank(s). Positive = Charges batteries, Negative = Drains batteries</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>battery_percent</td>
<td>Percentage of battery bank(s) charge</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>battery_capacity</td>
<td>Total capacity of battery bank(s)</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>battery_seconds_empty</td>
<td>Seconds until Batteries are empty</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>battery_seconds_full</td>
<td>Seconds until Batteries are full</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>fuse_triggered</td>
<td>Has the fuse been triggered</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>portal_power</td>
<td>portal power use in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>portal_power_max</td>
<td>portal max power use in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>pump_power</td>
<td>pump power use in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>pump_power_max</td>
<td>pump max power use in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>resource_sink_power</td>
<td>AWESOME sink power use in MW</td>
<td>circuit_id, url, session_name</td>
</tr>
<tr>
<td>resource_sink_power_max</td>
<td>AWESOME sink max power use in MW</td>
<td