Add autotrain metrics settings and implement depot train counting
Updated locale Added Options for autotrain metric
This commit is contained in:
12
control.lua
12
control.lua
@@ -13,6 +13,8 @@ sendIndex = 0
|
||||
serverIndex = 0
|
||||
scannedGrids = false
|
||||
scannedLabs = false
|
||||
autotrainGroupName = ""
|
||||
autotrainDepotName = ""
|
||||
|
||||
options = {
|
||||
enableMod = false,
|
||||
@@ -60,6 +62,8 @@ script.on_init(function ()
|
||||
options.enableResearch = settings.global["factorio-metrics-exporter-export_research_stats"].value
|
||||
options.enableRobots = settings.global["factorio-metrics-exporter-export_logistic_stats"].value
|
||||
options.enableTrains = settings.global["factorio-metrics-exporter-export_train_stats"].value
|
||||
autotrainGroupName = settings.global["factorio-metrics-exporter-autotrain_group_name"].value
|
||||
autotrainDepotName = settings.global["factorio-metrics-exporter-autotrain_depot_name"].value
|
||||
|
||||
|
||||
end)
|
||||
@@ -79,6 +83,8 @@ script.on_load(function ()
|
||||
options.enableResearch = settings.global["factorio-metrics-exporter-export_research_stats"].value
|
||||
options.enableRobots = settings.global["factorio-metrics-exporter-export_logistic_stats"].value
|
||||
options.enableTrains = settings.global["factorio-metrics-exporter-export_train_stats"].value
|
||||
autotrainGroupName = settings.global["factorio-metrics-exporter-autotrain_group_name"].value
|
||||
autotrainDepotName = settings.global["factorio-metrics-exporter-autotrain_depot_name"].value
|
||||
end)
|
||||
|
||||
script.on_configuration_changed(function()
|
||||
@@ -149,6 +155,12 @@ script.on_event(defines.events.on_runtime_mod_setting_changed, function(event)
|
||||
if event.setting == "factorio-metrics-exporter-export_train_stats" then
|
||||
options.enableTrains = settings.global["factorio-metrics-exporter-export_train_stats"].value
|
||||
end
|
||||
if event.setting == "factorio-metrics-exporter-autotrain_depot_name" then
|
||||
autotrainDepotName = settings.global["factorio-metrics-exporter-autotrain_depot_name"].value
|
||||
end
|
||||
if event.setting == "factorio-metrics-exporter-autotrain_group_name" then
|
||||
autotrainGroupName = settings.global["factorio-metrics-exporter-autotrain_group_name"].value
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "factorio-metrics-exporter",
|
||||
"version": "0.1.22",
|
||||
"version": "0.2.0",
|
||||
"title": "Prometheus Metrics Exporter",
|
||||
"author": "Jan Grießhaber",
|
||||
"contact": "jan@griesshaber.systems",
|
||||
|
||||
@@ -1,6 +1,33 @@
|
||||
[mod-setting-name]
|
||||
factorio-metrics-exporter-export_production_stats = Enable ProductionD
|
||||
factorio-metrics-exporter-export_logistic_stats=Enable LogisticsD
|
||||
factorio-metrics-exporter-export_pollution_stats=Enable PollutionD
|
||||
factorio-metrics-exporter-enable=Mod aktivieren
|
||||
factorio-metrics-exporter-tick-interval=Tick-Intervall
|
||||
factorio-metrics-exporter-udp-address=UDP-Port
|
||||
factorio-metrics-exporter-export_production_stats=Produktion aktivieren
|
||||
factorio-metrics-exporter-export_fluid_stats=Flüssigkeiten aktivieren
|
||||
factorio-metrics-exporter-export_logistic_stats=Logistik aktivieren
|
||||
factorio-metrics-exporter-export_pollution_stats=Verschmutzung aktivieren
|
||||
factorio-metrics-exporter-export_kill_stats=Kills aktivieren
|
||||
factorio-metrics-exporter-export_research_stats=Forschung aktivieren
|
||||
factorio-metrics-exporter-export_power_stats=Energie aktivieren
|
||||
factorio-metrics-exporter-export_player_stats=Spieler aktivieren
|
||||
factorio-metrics-exporter-export_train_stats=Züge aktivieren
|
||||
factorio-metrics-exporter-enable_denkmalschutz=Denkmalschutz aktivieren
|
||||
factorio-metrics-exporter-autotrain_group_name=AutoTrain-Metrik Gruppenname
|
||||
factorio-metrics-exporter-autotrain_depot_name=AutoTrain-Metrik Depotname
|
||||
|
||||
[mod-setting-description]
|
||||
factorio-metrics-exporter-export_production_stats = Enables sending of the production statistics per surface. Not very expensive
|
||||
factorio-metrics-exporter-export_production_stats=Aktiviert das Senden der Produktionsstatistiken pro Oberfläche. Nicht sehr rechenintensiv.
|
||||
factorio-metrics-exporter-enable=Aktiviert das Senden der UDP-Pakete.
|
||||
factorio-metrics-exporter-tick-interval=Legt das Tick-Intervall fest, in dem Metriken gesammelt werden.
|
||||
factorio-metrics-exporter-udp-address=Wähle einen UDP-Port, an den die Daten gesendet werden. Factorio muss mit --enable-lua-udp <Sendeport> gestartet werden. Es ist wichtig, einen anderen Port als den Zielport zu verwenden.
|
||||
factorio-metrics-exporter-export_fluid_stats=Aktiviert das Senden von Flüssigkeits-Produktionsstatistiken. Nicht sehr rechenintensiv.
|
||||
factorio-metrics-exporter-export_logistic_stats=Aktiviert das Senden von Logistiknetz-Statistiken. Moderat rechenintensiv.
|
||||
factorio-metrics-exporter-export_pollution_stats=Aktiviert das Senden von verschmutzungsbezogenen Statistiken. Nicht sehr rechenintensiv.
|
||||
factorio-metrics-exporter-export_kill_stats=Aktiviert das Senden von Kill-Statistiken. Nicht sehr rechenintensiv.
|
||||
factorio-metrics-exporter-export_research_stats=Aktiviert das Senden von Forschungsstatistiken. Moderat rechenintensiv.
|
||||
factorio-metrics-exporter-export_power_stats=Aktiviert Energie-Statistiken. Skaliert linear mit der Anzahl der Stromnetze.
|
||||
factorio-metrics-exporter-export_player_stats=Aktiviert das Senden von Spielerstatistiken.
|
||||
factorio-metrics-exporter-export_train_stats=Aktiviert das Senden von Zug-Statistiken. Geringer Aufwand, außer es sind sehr viele Züge im Einsatz.
|
||||
factorio-metrics-exporter-enable_denkmalschutz=Aktiviert die Spaß-Option „Denkmalschutz“. Im Mehrspielermodus wird der Spieler gebannt, der das Starter-Raumschiff-Objekt abbaut.
|
||||
factorio-metrics-exporter-autotrain_group_name=Legt den Namen der Zuggruppe fest, die für die AutoTrain-Metrik verwendet werden soll.
|
||||
factorio-metrics-exporter-autotrain_depot_name=Legt den Namen des Depots fest, das für die AutoTrain-Metrik verwendet werden soll.
|
||||
@@ -11,6 +11,9 @@ factorio-metrics-exporter-export_research_stats=Enable Research
|
||||
factorio-metrics-exporter-export_power_stats=Enable Power
|
||||
factorio-metrics-exporter-export_player_stats=Enable Player
|
||||
factorio-metrics-exporter-export_train_stats=Enable Train
|
||||
factorio-metrics-exporter-enable_denkmalschutz=Enable Denkmalschutz
|
||||
factorio-metrics-exporter-autotrain_group_name=AutoTrain metrics group name
|
||||
factorio-metrics-exporter-autotrain_depot_name=AutoTrain metrics depot name
|
||||
[mod-setting-description]
|
||||
factorio-metrics-exporter-export_production_stats=Enables sending of the production statistics per surface. Not very expensive
|
||||
factorio-metrics-exporter-enable=Enable sending of the UDP packets
|
||||
@@ -21,6 +24,9 @@ factorio-metrics-exporter-export_logistic_stats=Enables sending of logistic netw
|
||||
factorio-metrics-exporter-export_pollution_stats=Enable sending of Pollution related statistics. Not very expensive
|
||||
factorio-metrics-exporter-export_kill_stats=Enable sending of kill statistics. Not very expensive
|
||||
factorio-metrics-exporter-export_research_stats=Enable sending of research statistics. Moderatly expensive
|
||||
factorio-metrics-exporter-export_power_stats=Enable Power. Not yet implemented!
|
||||
factorio-metrics-exporter-export_power_stats=Enable Power. Scales linearly with power grid count
|
||||
factorio-metrics-exporter-export_player_stats=Enable sending of player statistics
|
||||
factorio-metrics-exporter-export_train_stats=Enable sending of train statistics. Not yet implemented!
|
||||
factorio-metrics-exporter-export_train_stats=Enable sending of train statistics. Inexpensive unless very many trains are in use
|
||||
factorio-metrics-exporter-enable_denkmalschutz=Enable the fun option of Denkmalschutz. In multiplayer, the player who deconstructs the starter spaceship entity will get banned
|
||||
factorio-metrics-exporter-autotrain_group_name=Set the name of the traingroup you want to use for the autotrain metric
|
||||
factorio-metrics-exporter-autotrain_depot_name=Set the name of the depot you want to use for the autotrain metric
|
||||
15
settings.lua
15
settings.lua
@@ -91,6 +91,19 @@ data:extend({
|
||||
setting_type = "runtime-global",
|
||||
default_value = false,
|
||||
order = "z"
|
||||
},
|
||||
{
|
||||
type = "string-setting",
|
||||
name = "factorio-metrics-exporter-autotrain_group_name",
|
||||
setting_type = "runtime-global",
|
||||
default_value = "AutoTrain",
|
||||
order = "za"
|
||||
},
|
||||
{
|
||||
type = "string-setting",
|
||||
name = "factorio-metrics-exporter-autotrain_depot_name",
|
||||
setting_type = "runtime-global",
|
||||
default_value = "[virtual-signal=signal-pink][item=locomotive]",
|
||||
order = "zb"
|
||||
}
|
||||
|
||||
})
|
||||
@@ -16,6 +16,18 @@ function GetTrainName(train)
|
||||
return ""
|
||||
end
|
||||
|
||||
function GetTrainsInDepot()
|
||||
local trainsInDepot = 0
|
||||
for trainsID, train in pairs(storage.trains) do
|
||||
if train.state == defines.train_state.wait_station
|
||||
and train.station and train.station.backer_name == autotrainDepotName then
|
||||
trainsInDepot = trainsInDepot + 1
|
||||
end
|
||||
end
|
||||
local trainsInGroup = #game.train_manager.get_trains({group=autotrainGroupName})
|
||||
return ("---autotrain-stats---\n%d:%d"):format(trainsInDepot,trainsInGroup)
|
||||
end
|
||||
|
||||
function GetTrainPlayerKills()
|
||||
local trainKills = {}
|
||||
trainKills[#trainKills+1] = "---train-player-kills---"
|
||||
@@ -48,18 +60,18 @@ function GetTrainStates()
|
||||
if train.state == defines.train_state.wait_station
|
||||
or train.state == defines.train_state.destination_full
|
||||
or train.state == defines.train_state.no_schedule
|
||||
then trainsWaiting = trainsWaiting + 1 end
|
||||
then trainsWaiting = trainsWaiting + 1
|
||||
|
||||
if train.state == defines.train_state.on_the_path
|
||||
elseif train.state == defines.train_state.on_the_path
|
||||
or train.state == defines.train_state.arrive_signal
|
||||
or train.state == defines.train_state.wait_signal
|
||||
then trainsDriving = trainsDriving + 1 end
|
||||
then trainsDriving = trainsDriving + 1
|
||||
|
||||
if train.state == defines.train_state.manual_control
|
||||
elseif train.state == defines.train_state.manual_control
|
||||
or train.state == defines.train_state.manual_control_stop
|
||||
then trainsManual = trainsManual + 1 end
|
||||
then trainsManual = trainsManual + 1
|
||||
|
||||
if train.state == defines.train_state.no_path
|
||||
elseif train.state == defines.train_state.no_path
|
||||
then trainsProblems = trainsProblems + 1 end
|
||||
end
|
||||
return ("---trains-states---\n%d:%d:%d:%d"):format(trainsDriving,trainsManual,trainsProblems,trainsWaiting)
|
||||
@@ -180,6 +192,7 @@ function SendTrainStats()
|
||||
returnParts[#returnParts+1] = GetTrainTotalKills()
|
||||
returnParts[#returnParts+1] = GetTrainStates()
|
||||
returnParts[#returnParts+1] = GetTrainStatistics()
|
||||
returnParts[#returnParts+1] = GetTrainsInDepot()
|
||||
helpers.send_udp(udpAddress,table.concat(returnParts,"\n"),serverIndex)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user