public void UsageMetrics_Concat()
        {
            var childMetricsmetric = new UsageMetrics();

            childMetricsmetric.BytesProcessed    = 12345;
            childMetricsmetric.DeadLetterCount   = 25;
            childMetricsmetric.ErrorCount        = 5;
            childMetricsmetric.WarningCount      = 12;
            childMetricsmetric.ProcessingMS      = 1235;
            childMetricsmetric.MessagesProcessed = 1235;
            childMetricsmetric.ActiveCount       = 19;

            var rolledUpMetrics = new UsageMetrics();

            rolledUpMetrics.BytesProcessed    = 500;
            rolledUpMetrics.DeadLetterCount   = 20;
            rolledUpMetrics.ErrorCount        = 38;
            rolledUpMetrics.MessagesProcessed = 20;
            rolledUpMetrics.ProcessingMS      = 123123;
            rolledUpMetrics.ActiveCount       = 38;
            rolledUpMetrics.WarningCount      = 15;

            rolledUpMetrics.Concat(childMetricsmetric);

            Assert.AreEqual(childMetricsmetric.BytesProcessed + 500, rolledUpMetrics.BytesProcessed);
            Assert.AreEqual(childMetricsmetric.DeadLetterCount + 20, rolledUpMetrics.DeadLetterCount);
            Assert.AreEqual(childMetricsmetric.ErrorCount + 38, rolledUpMetrics.ErrorCount);
            Assert.AreEqual(20, rolledUpMetrics.MessagesProcessed);
            Assert.AreEqual(childMetricsmetric.ProcessingMS + 123123, rolledUpMetrics.ProcessingMS);
            Assert.AreEqual(childMetricsmetric.WarningCount + 15, rolledUpMetrics.WarningCount);
            Assert.AreEqual(childMetricsmetric.ActiveCount + 38, rolledUpMetrics.ActiveCount);
        }
Esempio n. 2
0
        public PipelineModule(IPipelineModuleConfiguration pipelineModuleConfiguration, IPEMBus pemBus, IPipelineModuleRuntime moduleHost)
        {
            _pemBus = pemBus;
            _pipelineModuleConfiguration = pipelineModuleConfiguration;
            ModuleHost = moduleHost;

            _pipelineMetrics = new UsageMetrics(pemBus.Instance.PrimaryHost.Id, pemBus.Instance.Id, Id);
            _pipelineMetrics.Reset();
        }
Esempio n. 3
0
 private void ValidateUsageMetrics(UsageMetrics usageMetrics)
 {
     Assert.NotNull(usageMetrics);
     Assert.NotNull(usageMetrics.MetricsValue);
     Assert.NotNull(usageMetrics.Name);
     foreach (var metrics in usageMetrics.MetricsValue)
     {
         ValidateMetrics(metrics);
     }
 }
Esempio n. 4
0
        public PipelineModule(IPipelineModuleConfiguration pipelineModuleConfiguration, IPEMBus pemBus, IPipelineModuleRuntime moduleHost, IPEMQueue listenerQueue, List <IPEMQueue> secondaryOutputQueues)
        {
            _listenerQueue = listenerQueue;
            _pemBus        = pemBus;
            _pipelineModuleConfiguration = pipelineModuleConfiguration;
            _secondaryOutputQueues       = secondaryOutputQueues;
            ModuleHost = moduleHost;

            _pipelineMetrics = new UsageMetrics(pemBus.Instance.PrimaryHost.Id, pemBus.Instance.Id, Id);
            _pipelineMetrics.Reset();
        }
        public void UsageMetrics_Calculate_ElapsedMS()
        {
            var childMetricsmetric = new UsageMetrics();
            var end = DateTime.Now;

            childMetricsmetric.EndTimeStamp   = end.ToJSONString();
            childMetricsmetric.StartTimeStamp = end.AddMinutes(-1).ToJSONString();

            childMetricsmetric.Calculate();

            Assert.AreEqual(60 * 1000, childMetricsmetric.ElapsedMS, 0.1);
        }
Esempio n. 6
0
        public PipelineModule(IPipelineModuleConfiguration pipelineModuleConfiguration, string routeModuleId, IPEMBus pemBus)
        {
            _inputMessageQueue = pemBus.Queues.Where(queue => queue.PipelineModuleId == routeModuleId).FirstOrDefault();
            if (_inputMessageQueue == null)
            {
                throw new Exception($"Incoming queue for module {pipelineModuleConfiguration.Id} - {pipelineModuleConfiguration.Name} could not be found.");
            }

            ModuleType = _inputMessageQueue.ForModuleType;

            _pemBus = pemBus;
            _pipelineModuleConfiguration = pipelineModuleConfiguration;

            _pipelineMetrics = new UsageMetrics(pemBus.Instance.PrimaryHost.Id, pemBus.Instance.Id, pipelineModuleConfiguration.Id);
            _pipelineMetrics.Reset();
        }
        public void UsageMetrics_Calculate_AvergeProcessing()
        {
            var childMetricsmetric = new UsageMetrics();
            var end = DateTime.Now;

            childMetricsmetric.EndTimeStamp   = end.ToJSONString();
            childMetricsmetric.StartTimeStamp = end.AddMinutes(-1).ToJSONString();
            childMetricsmetric.BytesProcessed = 12345;

            childMetricsmetric.ProcessingMS      = 2400;
            childMetricsmetric.MessagesProcessed = 120;

            childMetricsmetric.Calculate();

            Assert.AreEqual(20, childMetricsmetric.AverageProcessingMS);
        }
        public void UsageMetrics_Calculate_MessagePerSecond()
        {
            var childMetricsmetric = new UsageMetrics();
            var end = DateTime.Now;

            childMetricsmetric.EndTimeStamp   = end.ToJSONString();
            childMetricsmetric.StartTimeStamp = end.AddMinutes(-1).ToJSONString();
            childMetricsmetric.BytesProcessed = 12345;

            childMetricsmetric.ElapsedMS         = 60 * 1000;
            childMetricsmetric.ProcessingMS      = 1235;
            childMetricsmetric.MessagesProcessed = 120;

            childMetricsmetric.Calculate();

            Assert.AreEqual(2, childMetricsmetric.MessagesPerSecond);
        }
Esempio n. 9
0
        public IUsageMetrics GetAndResetReadMetrics(DateTime dateStamp, string hostVersion)
        {
            UsageMetrics.Version = hostVersion;
            lock (UsageMetrics)
            {
                var clonedMetrics = UsageMetrics.Clone();
                clonedMetrics.SetDatestamp(dateStamp);

                clonedMetrics.EndTimeStamp   = dateStamp.ToJSONString();
                clonedMetrics.StartTimeStamp = UsageMetrics.StartTimeStamp;
                clonedMetrics.Status         = "Running";

                clonedMetrics.Calculate();

                UsageMetrics.Reset(clonedMetrics.EndTimeStamp);
                return(clonedMetrics);
            }
        }
        public void UsageMetrics_Clone()
        {
            var metricToClone = new UsageMetrics();

            metricToClone.Version          = "1.2.3.4";
            metricToClone.HostId           = "hostid";
            metricToClone.InstanceId       = "instanceid";
            metricToClone.PipelineModuleId = "piplinemoduleid";

            metricToClone.BytesProcessed    = 12345;
            metricToClone.DeadLetterCount   = 25;
            metricToClone.ErrorCount        = 5;
            metricToClone.WarningCount      = 12;
            metricToClone.ProcessingMS      = 1235;
            metricToClone.MessagesProcessed = 1235;
            metricToClone.ActiveCount       = 19;

            var clonedMetric = (UsageMetrics)metricToClone.Clone();

            Assert.IsTrue(String.IsNullOrEmpty(clonedMetric.PartitionKey));
            Assert.IsTrue(String.IsNullOrEmpty(clonedMetric.RowKey));
            Assert.IsTrue(String.IsNullOrEmpty(clonedMetric.StartTimeStamp));
            Assert.IsTrue(String.IsNullOrEmpty(clonedMetric.EndTimeStamp));

            Assert.AreEqual("1.2.3.4", clonedMetric.Version);
            Assert.AreEqual("hostid", clonedMetric.HostId);
            Assert.AreEqual("instanceid", clonedMetric.InstanceId);
            Assert.AreEqual("piplinemoduleid", clonedMetric.PipelineModuleId);

            /* Note we do not concat messages processed, since each pipeline module will report on it, we only want to report on one */
            Assert.AreEqual(1235, clonedMetric.MessagesProcessed);
            Assert.AreEqual(5, clonedMetric.ErrorCount);
            Assert.AreEqual(12345, clonedMetric.BytesProcessed);
            Assert.AreEqual(12, clonedMetric.WarningCount);
            Assert.AreEqual(1235, clonedMetric.ProcessingMS);
            Assert.AreEqual(25, clonedMetric.DeadLetterCount);
            Assert.AreEqual(19, clonedMetric.ActiveCount);
        }