public ISnapshottingConfiguration Hooks(Action<PipelineModule> config)
 {
     var module = new PipelineModule();
     config(module);
     builder.RegisterModule(module);
     return this;
 }
示例#2
0
        public void MeticsRollupTest_ShouldSetPartitionKey()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.StartTimeStamp = startTime.ToJSONString();

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.AreEqual(PipelineModule.Id, result.PartitionKey);
        }
示例#3
0
        public void MeticsRollupTest_ShouldCalculateElapsedMS()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.StartTimeStamp = startTime.ToJSONString();

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.AreEqual((rollupTime - startTime).TotalMilliseconds, result.ElapsedMS, 0.01);
        }
示例#4
0
        public void MeticsRollupTest_ShouldAddVersionProperty()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.StartTimeStamp = startTime.ToJSONString();

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.AreEqual("1.2.3.4", result.Version);
        }
示例#5
0
        public void MeticsRollupTest_ShouldSetStartTimeAndHaveEmptyEndOfOfCurrentToRollup()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.StartTimeStamp = startTime.ToJSONString();

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.AreEqual(rollupTime.ToJSONString(), PipelineModule.Metrics.StartTimeStamp);
            Assert.IsTrue(String.IsNullOrEmpty(PipelineModule.Metrics.EndTimeStamp));
        }
示例#6
0
        public void MeticsRollupTest_ShouldSetPropertStartEndTimesOnRolledUpRecord()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.StartTimeStamp = startTime.ToJSONString();

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.AreEqual(rollupTime.ToJSONString(), result.EndTimeStamp);
            Assert.AreEqual(rollupTime.ToJSONString(), PipelineModule.Metrics.StartTimeStamp);
        }
示例#7
0
        public void MeticsRollupTest_ShouldSetRowKey()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.StartTimeStamp = startTime.ToJSONString();

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.IsFalse(String.IsNullOrEmpty(result.RowKey));
            Assert.IsTrue(32 < result.RowKey.Length); /* This will be based on the time stamp and a random guid and timestamp, can't determine exact way (well not worth it, assume if it's longer than 32 characters we probably created the right row key */
        }
示例#8
0
        public void MeticsRollupTest_RollupMessagesPerSecond()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.MessagesProcessed = 120;

            PipelineModule.Metrics.StartTimeStamp = startTime.ToJSONString();

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.AreEqual(result.MessagesProcessed / (rollupTime - startTime).TotalSeconds, result.MessagesPerSecond, 0.01);
        }
示例#9
0
        public void MeticsRollupTest_ShouldMaintainActiveAcount()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.ActiveCount = 23;

            PipelineModule.Metrics.StartTimeStamp = startTime.ToJSONString();

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.AreEqual(23, PipelineModule.Metrics.ActiveCount);
        }
示例#10
0
        public void MeticsRollupTest_ShouldProcessingMS()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.ProcessingMS = 22425;

            PipelineModule.Metrics.StartTimeStamp = startTime.ToJSONString();

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.AreEqual(0, PipelineModule.Metrics.ProcessingMS);
        }
示例#11
0
        public void MeticsRollupTest_RollupAverageProcessingTime()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.MessagesProcessed = 120;
            PipelineModule.Metrics.ProcessingMS      = 20000;

            PipelineModule.Metrics.StartTimeStamp = startTime.ToJSONString();

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.AreEqual(result.ProcessingMS / result.MessagesProcessed, result.AverageProcessingMS, 0.01);
        }
示例#12
0
        public void MeticsRollupTest_ShouldIdProperties()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.StartTimeStamp   = startTime.ToJSONString();
            PipelineModule.Metrics.HostId           = Instance.PrimaryHost.Id;
            PipelineModule.Metrics.InstanceId       = Instance.Id;
            PipelineModule.Metrics.PipelineModuleId = PipelineModule.Id;

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.AreEqual(Instance.PrimaryHost.Id, result.HostId);
            Assert.AreEqual(Instance.Id, result.InstanceId);
            Assert.AreEqual(PipelineModule.Id, result.PipelineModuleId);
            Assert.AreEqual(PipelineModule.Status.ToString(), result.Status);
        }
示例#13
0
        public void MeticsRollupTest_ShouldResetCounts()
        {
            var startTime  = DateTime.UtcNow.AddMinutes(-1);
            var rollupTime = DateTime.UtcNow;

            PipelineModule.Metrics.BytesProcessed    = 2000000;
            PipelineModule.Metrics.MessagesProcessed = 120;
            PipelineModule.Metrics.DeadLetterCount   = 300;
            PipelineModule.Metrics.WarningCount      = 120;
            PipelineModule.Metrics.ErrorCount        = 50;

            PipelineModule.Metrics.StartTimeStamp = startTime.ToJSONString();

            var result = PipelineModule.GetAndResetMetrics(rollupTime, "1.2.3.4");

            Assert.AreEqual(0, PipelineModule.Metrics.BytesProcessed);
            Assert.AreEqual(0, PipelineModule.Metrics.MessagesProcessed);
            Assert.AreEqual(0, PipelineModule.Metrics.ErrorCount);
            Assert.AreEqual(0, PipelineModule.Metrics.WarningCount);
            Assert.AreEqual(0, PipelineModule.Metrics.DeadLetterCount);
        }