Adds round metrics for prometheus.
This commit is contained in:
@@ -92,11 +92,11 @@ namespace Content.Server
|
|||||||
{
|
{
|
||||||
base.Update(level, frameEventArgs);
|
base.Update(level, frameEventArgs);
|
||||||
|
|
||||||
_gameTicker.Update(frameEventArgs);
|
|
||||||
switch (level)
|
switch (level)
|
||||||
{
|
{
|
||||||
case ModUpdateLevel.PreEngine:
|
case ModUpdateLevel.PreEngine:
|
||||||
{
|
{
|
||||||
|
_gameTicker.Update(frameEventArgs);
|
||||||
IoCManager.Resolve<IGalacticBankManager>().Update(frameEventArgs);
|
IoCManager.Resolve<IGalacticBankManager>().Update(frameEventArgs);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ using Content.Shared.Chat;
|
|||||||
using Content.Shared.GameObjects.Components.PDA;
|
using Content.Shared.GameObjects.Components.PDA;
|
||||||
using Content.Shared.Jobs;
|
using Content.Shared.Jobs;
|
||||||
using Content.Shared.Preferences;
|
using Content.Shared.Preferences;
|
||||||
|
using Prometheus;
|
||||||
using Robust.Server.Interfaces;
|
using Robust.Server.Interfaces;
|
||||||
using Robust.Server.Interfaces.Maps;
|
using Robust.Server.Interfaces.Maps;
|
||||||
using Robust.Server.Interfaces.Player;
|
using Robust.Server.Interfaces.Player;
|
||||||
@@ -53,6 +54,14 @@ namespace Content.Server.GameTicking
|
|||||||
{
|
{
|
||||||
public partial class GameTicker : SharedGameTicker, IGameTicker
|
public partial class GameTicker : SharedGameTicker, IGameTicker
|
||||||
{
|
{
|
||||||
|
private static readonly Counter RoundNumberMetric = Metrics.CreateCounter(
|
||||||
|
"ss14_round_number",
|
||||||
|
"Round number.");
|
||||||
|
|
||||||
|
private static readonly Gauge RoundLengthMetric = Metrics.CreateGauge(
|
||||||
|
"ss14_round_length",
|
||||||
|
"Round length in seconds.");
|
||||||
|
|
||||||
private static readonly TimeSpan UpdateRestartDelay = TimeSpan.FromSeconds(20);
|
private static readonly TimeSpan UpdateRestartDelay = TimeSpan.FromSeconds(20);
|
||||||
|
|
||||||
private const string PlayerPrototypeName = "HumanMob_Content";
|
private const string PlayerPrototypeName = "HumanMob_Content";
|
||||||
@@ -141,6 +150,11 @@ namespace Content.Server.GameTicking
|
|||||||
|
|
||||||
public void Update(FrameEventArgs frameEventArgs)
|
public void Update(FrameEventArgs frameEventArgs)
|
||||||
{
|
{
|
||||||
|
if (RunLevel == GameRunLevel.InRound)
|
||||||
|
{
|
||||||
|
RoundLengthMetric.Inc(frameEventArgs.DeltaSeconds);
|
||||||
|
}
|
||||||
|
|
||||||
if (RunLevel != GameRunLevel.PreRoundLobby || _roundStartTimeUtc > DateTime.UtcNow ||
|
if (RunLevel != GameRunLevel.PreRoundLobby || _roundStartTimeUtc > DateTime.UtcNow ||
|
||||||
_roundStartCountdownHasNotStartedYetDueToNoPlayers)
|
_roundStartCountdownHasNotStartedYetDueToNoPlayers)
|
||||||
return;
|
return;
|
||||||
@@ -161,6 +175,8 @@ namespace Content.Server.GameTicking
|
|||||||
|
|
||||||
SendServerMessage("Restarting round...");
|
SendServerMessage("Restarting round...");
|
||||||
|
|
||||||
|
RoundNumberMetric.Inc();
|
||||||
|
|
||||||
RunLevel = GameRunLevel.PreRoundLobby;
|
RunLevel = GameRunLevel.PreRoundLobby;
|
||||||
_resettingCleanup();
|
_resettingCleanup();
|
||||||
_preRoundSetup();
|
_preRoundSetup();
|
||||||
@@ -199,6 +215,8 @@ namespace Content.Server.GameTicking
|
|||||||
|
|
||||||
RunLevel = GameRunLevel.InRound;
|
RunLevel = GameRunLevel.InRound;
|
||||||
|
|
||||||
|
RoundLengthMetric.Set(0);
|
||||||
|
|
||||||
// Get the profiles for each player for easier lookup.
|
// Get the profiles for each player for easier lookup.
|
||||||
var profiles = readyPlayers.ToDictionary(p => p, GetPlayerProfile);
|
var profiles = readyPlayers.ToDictionary(p => p, GetPlayerProfile);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user