// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddServerSentEvents(); services .AddServerSentEvents <IMailboxEventService, MailboxEventService >(); services.AddControllersWithViews(); var conf = new ConfigurationOptions(); conf.EndPoints.Add("localhost", 9001); services.AddSingleton <IMetricPayloadSerializer, MessagePackMetricPayloadSerializer>(); services.AddSingleton <IConnectionMultiplexer>(sp => ConnectionMultiplexer.Connect(conf)); services.AddSingleton <ObservableMetricSubscriber>(sp => new ObservableMetricSubscriber(sp.GetService <IConnectionMultiplexer>() , new MessagePackMetricPayloadSerializer(), "sample")); services.AddSingleton <SseRedisAsyncMetricSubscriber>(sp => new SseRedisAsyncMetricSubscriber( sp.GetService <IMailboxEventService>(), sp.GetService <IConnectionMultiplexer>(), sp.GetService <IMetricPayloadSerializer>(), "sample")); services.AddSingleton <IMetricMeasuringWriter>(sp => new MetricPublisher(sp.GetService <IConnectionMultiplexer>(), new MessagePackMetricPayloadSerializer(), "sample")); _actorSystem = ActorSystem.Create("sample", MetricMailboxConfig.Config()); }
public void MetricsMailbox_Records_Metrics() { var testSystem = ActorSystem.Create("test", MetricMailboxConfig.Config()); var metricsMock = new MetricsMock(); testSystem.RegisterMailboxMetricListener(metricsMock); var testActor = testSystem.ActorOf(Props.Create(() => new EchoActor()).WithDefaultMetricMailbox()); testActor.Tell(new Echo()); SpinWait.SpinUntil(() => false, TimeSpan.FromSeconds(3)); Assert.True(metricsMock.messagesReceived > 0); }