Skip to content

ZengJinCheng/FicsitRemoteMonitoringCompanion

 
 

Repository files navigation

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 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. If protocol is unspecified, it defaults to http. EG: http://myserver1.frm.example:8080,myserver2.frm.example:8080,https://myserver3.frm.example:8081

FRM_LOG_STDOUT: If FRMC should print to stdout rather than a separate logfile. Useful for docker/containerization. default false.

What metrics are available

Name Description Labels
drone_port_fuel_rate 无人机平台燃料消耗率 id, home_station, fuel_name, url, session_name
drone_port_fuel_amount 无人机平台库存中的燃料量 id, home_station, fuel_name, url, session_name
drone_port_round_trip_seconds 记录无人机往返时间(秒) id, home_station, paired_station, url, session_name
drone_port_power 无人机平台当前消耗电力,单位为 MW circuit_id, url, session_name
drone_port_power_max 无人机平台最大消耗电力,单位为 MW circuit_id, url, session_name
extractor_power 提取器当前消耗电力,单位为 MW circuit_id, url, session_name
extractor_power_max 提取器最大消耗电力,单位为 MW circuit_id, url, session_name
machine_items_produced_per_min 建筑物当前每分钟生产多少物品 item_name, machine_name, x, y, z, url, session_name
machine_items_produced_pc 建筑物生产物品的效率 item_name, machine_name, x, y, z, url, session_name
factory_power 工厂机器的电力消耗,单位为 MW。不包括提取设备。 circuit_id, url, session_name
factory_power_max 工厂机器的最大电力消耗,单位为 MW。不包括提取器。 circuit_id, url, session_name
fracking_power fracking power use in MW circuit_id, url, session_name
fracking_power_max fracking max power use in MW circuit_id, url, session_name
hypertube_power hypertube power use in MW circuit_id, url, session_name
hypertube_power_max hypertube max power use in MW circuit_id, url, session_name
item_production_capacity_per_min 物品每分钟生产效率百分比 item_name, url, session_name
item_production_capacity_pc 物品理论最大产量 item_name, url, session_name
item_consumption_capacity_per_min 物品每分钟消耗效率百分比 item_name, url, session_name
item_consumption_capacity_pc 物品理论最大消耗量 item_name, url, session_name
items_produced_per_min 物品当前每分钟产量 item_name, url, session_name
items_consumed_per_min 物品当前消耗量 item_name, url, session_name
power_consumed 选定电路的当前电力消耗 circuit_id, url, session_name
power_capacity 选定电路的电力理论最大值 circuit_id, url, session_name
power_max_consumed 选定电路的最小消耗电量(需要这么多才能启动) circuit_id, url, session_name
battery_differential 电池组输入或输出的电量盈余或不足。正值表示给电池充电,负值表示消耗电池电量。 circuit_id, url, session_name
battery_percent 电池组充电百分比 circuit_id, url, session_name
battery_capacity 电池组总容量 circuit_id, url, session_name
battery_seconds_empty 电池耗尽还有多少秒 circuit_id, url, session_name
battery_seconds_full 电池充满所需秒数 circuit_id, url, session_name
fuse_triggered 保险丝被触发了吗 circuit_id, url, session_name
portal_power 传送门当前消耗电力,单位为 MW circuit_id, url, session_name
portal_power_max 传送门最大消耗电力,单位为 MW circuit_id, url, session_name
pump_power 水泵当前消耗电力,单位为 MW circuit_id, url, session_name
pump_power_max 水泵最大消耗电力,单位为 MW circuit_id, url, session_name
resource_sink_power AWESOME当前消耗电力,单位为 MW circuit_id, url, session_name
resource_sink_power_max AWESOME最大消耗电力,单位为 MW circuit_id, url, session_name
resource_sink_total_points AWESOME 累计积分总数 sink_type, url, session_name
resource_sink_points_to_coupon AWESOME 下一张优惠劵的积分数 sink_type, url, session_name
resource_sink_percent AWESOME 下一张优惠券的进度百分比 sink_type, url, session_name
resource_sink_collected_coupons AWESOME 里的优惠券数量 url, session_name
train_round_trip_seconds Recorded train round trip time in seconds name, url, session_name
train_segment_trip_seconds Recorded train trip between two stations name, from, to, url, session_name
train_derailed Is train derailed name, url, session_name
train_power_consumed How much power train is consuming name, url, session_name
train_power_circuit_consumed How much power all trains are consuming in a circuit circuit_id, url, session_name
train_power_circuit_consumed_max Maximum power all trains can consume on a circuit circuit_id, url, session_name
train_total_mass Total mass of the train name, url, session_name
train_payload_mass Current payload mass of the train name, url, session_name
train_max_payload_mass Max payload mass of the train name, url, session_name
train_station_power Train station power consumed in MW circuit_id, url, session_name
train_station_power_max Train station power max consumed in MW circuit_id, url, session_name
vehicle_round_trip_seconds Recorded vehicle round trip time in seconds id, vehicle_type, path_name, url, session_name
vehicle_fuel Amount of fuel remaining id, vehicle_type, fuel_type, url, session_name
vehicle_station_power Vehicle station power use in MW circuit_id, url, session_name
vehicle_station_power_max Vehicle station max power use in MW circuit_id, url, session_name

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.

About

A companion app to the Ficsit Remote Monitoring mod for Satisfactory

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 66.0%
  • TypeScript 24.1%
  • Makefile 3.9%
  • JavaScript 3.8%
  • HTML 2.1%
  • PowerShell 0.1%