private void UpdateStatsFinishMsgHandler(AdapterProcessingFinished msg) { var startMessage = GetStartMessageObject <AdapterProcessingStarted>(); if (startMessage.IsSnapshot) { _snapshotsCount++; } else { _streamUpdatesCount++; } var timeTaken = msg.CompletedAt - startMessage.UpdateReceivedAt; //var updateOrSnapshot = startMessage.IsSnapshot ? "Snapshot" : "Update"; var minutes = (int)Math.Ceiling((DateTime.UtcNow - AdapterStartDate).TotalMinutes); if (minutes == 0) { return; } var _snapshots_perminute = _snapshotsCount == 0 ? 0 : _snapshotsCount / minutes; var _streamupdates_perminute = _streamUpdatesCount == 0 ? 0 : _streamUpdatesCount / minutes; _logger.Info($"Adapter {startMessage.PluginMethod} for {startMessage.Fixture}, took processingTime={timeTaken.TotalSeconds} seconds at sequence={startMessage.Sequence}"); _logger.Info($"{startMessage.Fixture} -> Snapshots_Processed={_snapshotsCount} StreamUpdates_Processed={_streamUpdatesCount} Snapshots_PerMinute={_snapshots_perminute} StreamUpdates_PerMinute={_streamupdates_perminute}"); }
public void TestUpdateStatsSnapshotCount() { // //Arrange // var streamStatsActorRef = ActorOfAsTestActorRef <StreamStatsActor>( Props.Create(() => new StreamStatsActor()), StreamStatsActor.ActorName); var dateNow = DateTime.UtcNow; var updateStatsStartMsg = new AdapterProcessingStarted { UpdateReceivedAt = dateNow, Sequence = 1, IsSnapshot = true, Fixture = new Fixture { Id = "Fixture1Id", Sequence = 1, Epoch = 1, MatchStatus = MatchStatus.Prematch.ToString() } }; var updateStatsFinishMsg = new AdapterProcessingFinished { CompletedAt = dateNow.AddMilliseconds(1500) }; // //Act // streamStatsActorRef.Tell(updateStatsStartMsg); Task.Delay(TimeSpan.FromMilliseconds(500)); streamStatsActorRef.Tell(updateStatsFinishMsg); Task.Delay(TimeSpan.FromMilliseconds(500)); streamStatsActorRef.Tell(updateStatsStartMsg); Task.Delay(TimeSpan.FromMilliseconds(500)); streamStatsActorRef.Tell(updateStatsFinishMsg); // //Assert // AwaitAssert(() => { Assert.AreEqual(2, streamStatsActorRef.UnderlyingActor.SnapshotsCount); Assert.AreEqual(0, streamStatsActorRef.UnderlyingActor.StreamUpdatesCount); Assert.AreEqual(0, streamStatsActorRef.UnderlyingActor.DisconnectionsCount); Assert.AreEqual(0, streamStatsActorRef.UnderlyingActor.ErrorsCount[StreamStatsActor.PluginExceptionType]); Assert.AreEqual(0, streamStatsActorRef.UnderlyingActor.ErrorsCount[StreamStatsActor.ApiExceptionType]); Assert.AreEqual(0, streamStatsActorRef.UnderlyingActor.ErrorsCount[StreamStatsActor.GenericExceptionType]); Assert.AreEqual(DateTime.MinValue, streamStatsActorRef.UnderlyingActor.LastDisconnectedDate); }, TimeSpan.FromMilliseconds(ASSERT_WAIT_TIMEOUT), TimeSpan.FromMilliseconds(ASSERT_EXEC_INTERVAL)); }