/// <summary> /// Creates a new downstream connected server group /// </summary> /// <param name="name">The name of the group.</param> /// <param name="visibility">The groups visibility.</param> /// <param name="threadHelper">The server's thread helper.</param> /// <param name="logger">The logger to use.</param> /// <param name="remoteServerLogger">The logger to pass to created remote servers.</param> /// <param name="metricsCollector">The metrics collector to use.</param> /// <param name="remoteServerMetricsCollector">The metrics collector to pass to created remote servers.</param> internal DownstreamServerGroup(string name, ServerVisibility visibility, DarkRiftThreadHelper threadHelper, Logger logger, Logger remoteServerLogger, MetricsCollector metricsCollector, MetricsCollector remoteServerMetricsCollector) : base(name, visibility, threadHelper, logger, metricsCollector) { this.threadHelper = threadHelper; this.logger = logger; this.remoteServerLogger = remoteServerLogger; this.remoteServerMetricsCollector = remoteServerMetricsCollector; }
/// <summary> /// Creates a new upstream connected server group /// </summary> /// <param name="name">The name of the group.</param> /// <param name="visibility">The groups visibility.</param> /// <param name="threadHelper">The server's thread helper.</param> /// <param name="serverRegistryConnectorManager">The server's registry connector manager</param> /// <param name="remoteServerManager">The remote server manager for the server.</param> /// <param name="reconnectAttempts">The number of times to attempt to reconnect to a server before considering it unconnectable.</param> /// <param name="logger">The logger to use.</param> /// <param name="remoteServerLogger">The logger to pass to created remote servers.</param> /// <param name="metricsCollector">The metrics collector to use.</param> /// <param name="remoteServerMetricsCollector">The metrics collector to pass to created remote servers.</param> internal UpstreamServerGroup(string name, ServerVisibility visibility, DarkRiftThreadHelper threadHelper, ServerRegistryConnectorManager serverRegistryConnectorManager, RemoteServerManager remoteServerManager, int reconnectAttempts, Logger logger, Logger remoteServerLogger, MetricsCollector metricsCollector, MetricsCollector remoteServerMetricsCollector) : base(name, visibility, threadHelper, logger, metricsCollector) { this.threadHelper = threadHelper; this.serverRegistryConnectorManager = serverRegistryConnectorManager; this.remoteServerManager = remoteServerManager; this.reconnectAttempts = reconnectAttempts; this.logger = logger; this.remoteServerLogger = remoteServerLogger; this.remoteServerMetricsCollector = remoteServerMetricsCollector; }
public ServerGroup(string name, ServerVisibility visibility, DarkRiftThreadHelper threadHelper, Logger logger, MetricsCollector metricsCollector) { this.Name = name; this.Visibility = visibility; this.threadHelper = threadHelper; this.logger = logger; serversConnectedGauge = metricsCollector.Gauge("remote_servers_connected", "The number of servers connected to the server in this group.", "group").WithTags(name); serverJoinedEventTimeHistogram = metricsCollector.Histogram("remote_server_joined_event_time", "The time taken to execute the ServerJoined event.", "group").WithTags(name); serverLeftEventTimeHistogram = metricsCollector.Histogram("remote_server_left_event_time", "The time taken to execute the ServerLeft event.", "group").WithTags(name); serverJoinedEventFailuresCounter = metricsCollector.Counter("remote_server_joined_event_failures", "The number of failures executing the ServerJoined event.", "group").WithTags(name); serverLeftEventFailuresCounter = metricsCollector.Counter("remote_server_left_event_failures", "The number of failures executing the ServerLeft event.", "group").WithTags(name); }
/// <summary> /// Configures a group in the cluster. /// </summary> /// <param name="name">The name of the group.</param> /// <param name="visibility">The visibility of the group.</param> /// <param name="connectsTo">The name of groups this group connects to.</param> /// <returns>The configuration builder to continue construction.</returns> public DarkRiftClusterConfigurationBuilder AddGroup(string name, ServerVisibility visibility, params string[] connectsTo) { ClusterSpawnData.GroupsSettings.GroupSettings networkListenerSettings = new ClusterSpawnData.GroupsSettings.GroupSettings { Name = name, Visibility = visibility }; foreach (string connectsToName in connectsTo) { ClusterSpawnData.GroupsSettings.GroupSettings.ConnectsToSettings connectsToSettings = new ClusterSpawnData.GroupsSettings.GroupSettings.ConnectsToSettings() { Name = connectsToName }; networkListenerSettings.ConnectsTo.Add(connectsToSettings); } ClusterSpawnData.Groups.Groups.Add(networkListenerSettings); return(this); }
/// <summary> /// Constructor for a new group settings instance. /// </summary> /// <param name="name">The group name.</param> /// <param name="visibility">The group's visibility.</param> public GroupSettings(string name, ServerVisibility visibility) { this.Name = name; this.Visibility = visibility; }