Exemple #1
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();
        }
Exemple #2
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();
        }
Exemple #3
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();
        }
Exemple #4
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);
            }
        }
Exemple #5
0
        public UsageMetrics GetAndResetMetrics(DateTime actualDataStamp, string hostVersion)
        {
            _pipelineMetrics.Version = hostVersion;
            //TODO: This __could__ be a bottle neck, not sure though.
            /* This needs to be VERY, VERY fast since it will block anyone elses access to writing metrics */
            lock (_pipelineMetrics)
            {
                var clonedMetrics = _pipelineMetrics.Clone() as UsageMetrics;
                clonedMetrics.RowKey       = actualDataStamp.ToInverseTicksRowKey();
                clonedMetrics.PartitionKey = Id;

                clonedMetrics.EndTimeStamp   = actualDataStamp.ToJSONString();
                clonedMetrics.StartTimeStamp = _pipelineMetrics.StartTimeStamp;
                clonedMetrics.Status         = this.Status.ToString();

                clonedMetrics.Calculate();

                _pipelineMetrics.Reset(clonedMetrics.EndTimeStamp);
                return(clonedMetrics);
            }
        }