예제 #1
0
        internal EtlInMemoryProducer(
            DiskSpaceManager diskSpaceManager,
            IEtlInMemoryProducerConfigReaderFactory configReaderFactory,
            ITraceFileEventReaderFactory traceFileEventReaderFactory,
            ITraceEventSourceFactory traceEventSourceFactory,
            ProducerInitializationParameters initParam)
        {
            this.diskSpaceManager            = diskSpaceManager;
            this.traceFileEventReaderFactory = traceFileEventReaderFactory;

            // Initialization
            this.traceSource   = traceEventSourceFactory.CreateTraceEventSource(FabricEvents.Tasks.FabricDCA);
            this.logSourceId   = string.Concat(initParam.ApplicationInstanceId, "_", initParam.SectionName);
            this.consumerSinks = initParam.ConsumerSinks;

            // Read settings
            var configReader = configReaderFactory.CreateEtlInMemoryProducerConfigReader(this.traceSource, this.logSourceId);

            this.etlInMemoryProducerSettings = configReader.GetSettings();

            // ETL in-memory file processing is not enabled or we are not processing
            // winfab etl files, so return immediately
            if (false == this.etlInMemoryProducerSettings.Enabled || false == this.etlInMemoryProducerSettings.ProcessingWinFabEtlFiles)
            {
                return;
            }

            // Create a new worker object
            var newWorkerParam = new EtlInMemoryProducerWorker.EtlInMemoryProducerWorkerParameters()
            {
                TraceSource         = this.traceSource,
                LogDirectory        = initParam.LogDirectory,
                ProducerInstanceId  = this.logSourceId,
                EtlInMemoryProducer = this,
                LatestSettings      = this.etlInMemoryProducerSettings
            };

            var newWorker = new EtlInMemoryProducerWorker(
                newWorkerParam,
                this.diskSpaceManager,
                this.traceFileEventReaderFactory);

            this.producerWorker = newWorker;
        }
예제 #2
0
 public static EtlInMemoryProducerWorker.EtlInMemoryProducerWorkerSettings InitializeSettings(EtlInMemoryProducerWorker.EtlInMemoryProducerWorkerParameters param)
 {
     // For most settings we'll just apply the latest setting that the caller has provided
     return(new EtlInMemoryProducerWorker.EtlInMemoryProducerWorkerSettings
     {
         EtlReadInterval = param.LatestSettings.EtlReadInterval,
         EtlDeletionAge = param.LatestSettings.EtlDeletionAgeMinutes,
         WindowsFabricEtlType = param.LatestSettings.ServiceFabricEtlType,
         EtlPath = param.LatestSettings.EtlPath,
         EtlFilePatterns = param.LatestSettings.EtlFilePatterns,
         ProcessingWinFabEtlFiles = param.LatestSettings.ProcessingWinFabEtlFiles
     });
 }