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(); }
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 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 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 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); } }