Commit a822e444 authored by Andrei Mihu's avatar Andrei Mihu
Browse files

Console status handler function. (#314)

parent 7ff2532f
Loading
Loading
Loading
Loading
+176 −244

File changed.

Preview size limit exceeded, changes collapsed.

+14 −28
Original line number Diff line number Diff line
@@ -400,38 +400,24 @@ message StatusList {
  message Status {
    // Node name.
    string name = 1;
    // Health score.
    int32 health = 2;
    // Currently connected sessions.
    int32 session_count = 2;
    int32 session_count = 3;
    // Currently registered live presences.
    int32 presence_count = 3;
    int32 presence_count = 4;
    // Current number of active authoritative matches.
    int32 match_count = 4;
    int32 match_count = 5;
    // Current number of running goroutines.
    int32 goroutine_count = 5;
    // Latest average response latency in milliseconds.
    double avg_latency_ms = 6;
    // Average response latency in milliseconds over the last minute.
    double avg_latency_ms_min = 7; // TODO
    // Average response latency in milliseconds over the last hour.
    double avg_latency_ms_hr = 8; // TODO
    // Latest number of requests per second.
    double rate_sec = 9;
    // Number of requests per second over the last minute.
    double rate_sec_min = 10; // TODO
    // Number of requests per second over the last hour.
    double rate_sec_hr = 11; // TODO
    // Latest input bandwidth usage.
    double input_kbs = 12;
    // Input bandwidth usage over the last minute.
    double input_kbs_min = 13; // TODO
    // Input bandwidth usage over the last hour.
    double input_kbs_hr = 14; // TODO
    // Latest output bandwidth usage.
    double output_kbs = 15;
    // Output bandwidth usage over the last minute.
    double output_kbs_min = 16; // TODO
    // Output bandwidth usage over the last hour.
    double output_kbs_ht = 17; // TODO
    int32 goroutine_count = 6;
    // Average response latency in milliseconds.
    double avg_latency_ms = 7;
    // Average number of requests per second.
    double avg_rate_sec = 8;
    // Average input bandwidth usage.
    double avg_input_kbs = 9;
    // Average output bandwidth usage.
    double avg_output_kbs = 10;
  }

  // List of nodes and their stats.
+12 −47
Original line number Diff line number Diff line
@@ -896,6 +896,11 @@
          "type": "string",
          "description": "Node name."
        },
        "health": {
          "type": "integer",
          "format": "int32",
          "description": "Health score."
        },
        "session_count": {
          "type": "integer",
          "format": "int32",
@@ -919,62 +924,22 @@
        "avg_latency_ms": {
          "type": "number",
          "format": "double",
          "description": "Latest average response latency in milliseconds."
        },
        "avg_latency_ms_min": {
          "type": "number",
          "format": "double",
          "description": "Average response latency in milliseconds over the last minute."
        },
        "avg_latency_ms_hr": {
          "type": "number",
          "format": "double",
          "description": "Average response latency in milliseconds over the last hour."
        },
        "rate_sec": {
          "type": "number",
          "format": "double",
          "description": "Latest number of requests per second."
        },
        "rate_sec_min": {
          "type": "number",
          "format": "double",
          "description": "Number of requests per second over the last minute."
        },
        "rate_sec_hr": {
          "type": "number",
          "format": "double",
          "description": "Number of requests per second over the last hour."
        },
        "input_kbs": {
          "type": "number",
          "format": "double",
          "description": "Latest input bandwidth usage."
        },
        "input_kbs_min": {
          "type": "number",
          "format": "double",
          "description": "Input bandwidth usage over the last minute."
        },
        "input_kbs_hr": {
          "type": "number",
          "format": "double",
          "description": "Input bandwidth usage over the last hour."
          "description": "Average response latency in milliseconds."
        },
        "output_kbs": {
        "avg_rate_sec": {
          "type": "number",
          "format": "double",
          "description": "Latest output bandwidth usage."
          "description": "Average number of requests per second."
        },
        "output_kbs_min": {
        "avg_input_kbs": {
          "type": "number",
          "format": "double",
          "description": "Output bandwidth usage over the last minute."
          "description": "Average input bandwidth usage."
        },
        "output_kbs_ht": {
        "avg_output_kbs": {
          "type": "number",
          "format": "double",
          "description": "Output bandwidth usage over the last hour."
          "description": "Average output bandwidth usage."
        }
      },
      "description": "The status of a Nakama node."
+9 −23
Original line number Diff line number Diff line
@@ -19,38 +19,24 @@ export interface ConfigWarning {
}
/** The status of a Nakama node. */
export interface StatusListStatus {
  // Latest average response latency in milliseconds.
  // Average input bandwidth usage.
  avg_input_kbs?: number;
  // Average response latency in milliseconds.
  avg_latency_ms?: number;
  // Average response latency in milliseconds over the last hour.
  avg_latency_ms_hr?: number;
  // Average response latency in milliseconds over the last minute.
  avg_latency_ms_min?: number;
  // Average output bandwidth usage.
  avg_output_kbs?: number;
  // Average number of requests per second.
  avg_rate_sec?: number;
  // Current number of running goroutines.
  goroutine_count?: number;
  // Latest input bandwidth usage.
  input_kbs?: number;
  // Input bandwidth usage over the last hour.
  input_kbs_hr?: number;
  // Input bandwidth usage over the last minute.
  input_kbs_min?: number;
  // Health score.
  health?: number;
  // Current number of active authoritative matches.
  match_count?: number;
  // Node name.
  name?: string;
  // Latest output bandwidth usage.
  output_kbs?: number;
  // Output bandwidth usage over the last hour.
  output_kbs_ht?: number;
  // Output bandwidth usage over the last minute.
  output_kbs_min?: number;
  // Currently registered live presences.
  presence_count?: number;
  // Latest number of requests per second.
  rate_sec?: number;
  // Number of requests per second over the last hour.
  rate_sec_hr?: number;
  // Number of requests per second over the last minute.
  rate_sec_min?: number;
  // Currently connected sessions.
  session_count?: number;
}
+4 −2
Original line number Diff line number Diff line
@@ -116,9 +116,11 @@ func main() {
	leaderboardScheduler.Start(runtime)

	pipeline := server.NewPipeline(logger, config, db, jsonpbMarshaler, jsonpbUnmarshaler, sessionRegistry, matchRegistry, matchmaker, tracker, router, runtime)
	metrics := server.NewMetrics(logger, startupLogger, config)
	metricsExporter := server.NewMetricsExporter(logger)
	metrics := server.NewMetrics(logger, startupLogger, config, metricsExporter)
	statusHandler := server.NewLocalStatusHandler(logger, sessionRegistry, matchRegistry, tracker, metricsExporter, config.GetName())

	consoleServer := server.StartConsoleServer(logger, startupLogger, db, config, tracker, configWarnings)
	consoleServer := server.StartConsoleServer(logger, startupLogger, db, config, tracker, statusHandler, configWarnings)
	apiServer := server.StartApiServer(logger, startupLogger, db, jsonpbMarshaler, jsonpbUnmarshaler, config, socialClient, leaderboardCache, leaderboardRankCache, sessionRegistry, matchRegistry, matchmaker, tracker, router, pipeline, runtime)

	gaenabled := len(os.Getenv("NAKAMA_TELEMETRY")) < 1
Loading