public SystemTraceWriter(IEventGenerator eventGenerator, ScriptSettingsManager settingsManager, TraceLevel level) : base(level)
 {
     _settingsManager = settingsManager;
     _appName = _settingsManager.AzureWebsiteDefaultSubdomain;
     _subscriptionId = Utility.GetSubscriptionId();
     _eventGenerator = eventGenerator;
 }
 public SystemTraceWriter(IEventGenerator eventGenerator, ScriptSettingsManager settingsManager, TraceLevel level) : base(level)
 {
     _settingsManager = settingsManager;
     _appName         = _settingsManager.GetSetting(EnvironmentSettingNames.AzureWebsiteName);
     _subscriptionId  = Utility.GetSubscriptionId();
     _eventGenerator  = eventGenerator;
 }
        private static async Task Init()
        {
            //setup our DI
            var serviceCollection = new ServiceCollection()
                                    .AddLogging()
                                    .AddSingleton <IConfigurationReader, EnvironmentConfigurationReader>()
                                    //.AddSingleton<ITrafficSegmentConfigurator, BlobSegmentConfigurator>()
                                    .AddSingleton <ITrafficSegmentConfigurator, TwinSegmentConfigurator>()
                                    .AddSingleton <ITimeSimulationSettings, TimeSimulationSettings>()
                                    .AddSingleton <IEventGenerator, EventGenerator>();

            if (IsEdgeEnvironment)
            {
                _logger.Info($"This container is running in edge environment, creating iot edge module transmitter");
                serviceCollection.AddSingleton <ICameraTransmitterConfigurator, IoTEdgeModuleTransmitterConfiguration>();
            }
            else
            {
                _logger.Info($"This container is *not* running in edge environment, creating iot hub transmitter");
                serviceCollection.AddSingleton <ICameraTransmitterConfigurator, IoTHubTransmitterConfigurator>();
            }

            var serviceProvider = serviceCollection.BuildServiceProvider();

            _generator = serviceProvider.GetService <IEventGenerator>();
        }
Beispiel #4
0
        public UnmanagedDispose(IEventGenerator eventGenerator) : base(eventGenerator)
        {
            _eventGeneratorSubscription.Disposable = eventGenerator.Stream.ObserveOn(Scheduler.CurrentThread)
                                                     .SubscribeOn(Scheduler.CurrentThread).Subscribe(_ => OnEventAppeared());

            _pointer = Marshal.AllocHGlobal(1024 * 1024 * 300);
        }
 public AzureMonitorDiagnosticLoggerProvider(string hostInstanceId, IEventGenerator eventGenerator, IEnvironment environment, HostNameProvider hostNameProvider)
 {
     _hostInstanceId   = hostInstanceId ?? throw new ArgumentNullException(hostInstanceId);
     _eventGenerator   = eventGenerator ?? throw new ArgumentNullException(nameof(eventGenerator));
     _environment      = environment ?? throw new ArgumentException(nameof(environment));
     _hostNameProvider = hostNameProvider ?? throw new ArgumentException(nameof(hostNameProvider));
 }
 protected SystemLoggerProvider(string hostInstanceId, IEventGenerator eventGenerator, IEnvironment environment, IDebugStateProvider debugStateProvider)
 {
     _eventGenerator     = eventGenerator;
     _environment        = environment;
     _hostInstanceId     = hostInstanceId;
     _debugStateProvider = debugStateProvider;
 }
 public SystemTraceWriter(IEventGenerator eventGenerator, ScriptSettingsManager settingsManager, TraceLevel level) : base(level)
 {
     _settingsManager = settingsManager;
     _appName         = _settingsManager.AzureWebsiteDefaultSubdomain;
     _subscriptionId  = Utility.GetSubscriptionId();
     _eventGenerator  = eventGenerator;
 }
            internal FunctionActivityTracker(IEventGenerator generator, int functionActivityFlushInterval)
            {
                MetricsEventGenerator          = generator;
                _functionActivityFlushInterval = functionActivityFlushInterval;
                Task.Run(
                    async() =>
                {
                    try
                    {
                        int currentSecond = _functionActivityFlushInterval;
                        while (!_etwTaskCancellationSource.Token.IsCancellationRequested)
                        {
                            RaiseMetricsPerFunctionEvent();

                            if (currentSecond >= _functionActivityFlushInterval)
                            {
                                RaiseFunctionMetricEvents();
                                currentSecond = 0;
                            }
                            else
                            {
                                currentSecond = currentSecond + 1;
                            }

                            await Task.Delay(TimeSpan.FromSeconds(1), _etwTaskCancellationSource.Token);
                        }
                    }
                    catch (TaskCanceledException)
                    {
                        // This exception gets throws when cancellation request is raised via cancellation token.
                        // Let's eat this exception and continue
                    }
                },
                    _etwTaskCancellationSource.Token);
            }
Beispiel #9
0
        protected void CheckInvalidParameters(IEventGenerator generator, long collectionSize, object[] parameters)
        {
            var task = generator.GenerateDataProviderAsync(collectionSize, parameters);

            task.Exception.Should().NotBeNull();
            task.Exception.InnerExceptions.Count.Should().Be(1);
            task.Exception.InnerExceptions.FirstOrDefault().Should().BeOfType <ArgumentException>();
        }
Beispiel #10
0
        internal MetricsEventManager(IEventGenerator generator, int metricEventIntervalInSeconds)
        {
            // we read this in ctor (not static ctor) since it can change on the fly
            siteName = GetNormalizedString(Environment.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteName));

            _eventGenerator = generator;
            _metricEventIntervalInSeconds = metricEventIntervalInSeconds;
        }
Beispiel #11
0
 public AccountController(IUserService userService, IBlobService blobService, IContainerNameService containerNameService, IEventGenerator eventGenerator, IMLService mLService)
 {
     this.userService          = userService;
     this.blobService          = blobService;
     this.eventGenerator       = eventGenerator;
     this.containerNameService = containerNameService;
     this.mLService            = mLService;
 }
Beispiel #12
0
 protected SystemLoggerProvider(string hostInstanceId, IEventGenerator eventGenerator, IEnvironment environment, IDebugStateProvider debugStateProvider, IScriptEventManager eventManager, IOptionsMonitor <AppServiceOptions> appServiceOptions)
 {
     _eventGenerator     = eventGenerator;
     _environment        = environment;
     _hostInstanceId     = hostInstanceId;
     _debugStateProvider = debugStateProvider;
     _eventManager       = eventManager;
     _appServiceOptions  = appServiceOptions;
 }
 public SystemLogger(string hostInstanceId, string categoryName, IEventGenerator eventGenerator, IEnvironment environment)
 {
     _environment    = environment;
     _eventGenerator = eventGenerator;
     _categoryName   = categoryName ?? string.Empty;
     _functionName   = LogCategories.IsFunctionCategory(_categoryName) ? _categoryName.Split('.')[1] : string.Empty;
     _isUserFunction = LogCategories.IsFunctionUserCategory(_categoryName);
     _hostInstanceId = hostInstanceId;
 }
Beispiel #14
0
        public AzureMonitorDiagnosticLogger(string category, string hostInstanceId, IEventGenerator eventGenerator, IEnvironment environment, IExternalScopeProvider scopeProvider, HostNameProvider hostNameProvider)
        {
            _category         = category ?? throw new ArgumentNullException(nameof(category));
            _hostInstanceId   = hostInstanceId ?? throw new ArgumentNullException(nameof(hostInstanceId));
            _eventGenerator   = eventGenerator ?? throw new ArgumentNullException(nameof(eventGenerator));
            _environment      = environment ?? throw new ArgumentNullException(nameof(environment));
            _scopeProvider    = scopeProvider ?? throw new ArgumentNullException(nameof(scopeProvider));
            _hostNameProvider = hostNameProvider ?? throw new ArgumentNullException(nameof(hostNameProvider));

            _regionName = _environment.GetEnvironmentVariable(EnvironmentSettingNames.RegionName) ?? string.Empty;
        }
Beispiel #15
0
 public SystemLogger(string hostInstanceId, string categoryName, IEventGenerator eventGenerator, ScriptSettingsManager settingsManager)
 {
     _settingsManager = settingsManager;
     _appName         = _settingsManager.AzureWebsiteUniqueSlotName;
     _subscriptionId  = Utility.GetSubscriptionId(settingsManager);
     _eventGenerator  = eventGenerator;
     _categoryName    = categoryName ?? string.Empty;
     _functionName    = LogCategories.IsFunctionCategory(_categoryName) ? _categoryName.Split('.')[1] : string.Empty;
     _isUserFunction  = LogCategories.IsFunctionUserCategory(_categoryName);
     _hostInstanceId  = hostInstanceId;
 }
 public SystemLogger(string hostInstanceId, string categoryName, IEventGenerator eventGenerator, IEnvironment environment, IDebugStateProvider debugStateProvider)
 {
     _environment = environment;
     _eventGenerator = eventGenerator;
     _categoryName = categoryName ?? string.Empty;
     _logLevel = LogLevel.Debug;
     _functionName = LogCategories.IsFunctionCategory(_categoryName) ? _categoryName.Split('.')[1] : string.Empty;
     _isUserFunction = LogCategories.IsFunctionUserCategory(_categoryName);
     _hostInstanceId = hostInstanceId;
     _debugStateProvider = debugStateProvider;
 }
Beispiel #17
0
        public TestForm()
        {
            InitializeComponent();

            _eventGenerator = ServiceProvider.Instance.GetRequiredService <IEventGenerator>();
            _pSimulator     = ServiceProvider.Instance.GetRequiredService <IPracticeSimulator>();
            _qSimulator     = ServiceProvider.Instance.GetRequiredService <IQualifyingSimulator>();
            _rSimulator     = ServiceProvider.Instance.GetRequiredService <IRaceSimulator>();

            _trackRepository  = ServiceProvider.Instance.GetRequiredService <ITrackRepository>();
            _seriesRepository = ServiceProvider.Instance.GetRequiredService <ISeriesRepository>();
        }
Beispiel #18
0
        public MetricsEventManager(IOptionsMonitor <AppServiceOptions> appServiceOptions, IEventGenerator generator, int functionActivityFlushIntervalSeconds, IMetricsPublisher metricsPublisher, int metricsFlushIntervalMS = DefaultFlushIntervalMS)
        {
            // we read these in the ctor (not static ctor) since it can change on the fly
            _appServiceOptions = appServiceOptions;
            _eventGenerator    = generator;
            _functionActivityFlushIntervalSeconds = functionActivityFlushIntervalSeconds;
            QueuedEvents = new ConcurrentDictionary <string, SystemMetricEvent>(StringComparer.OrdinalIgnoreCase);

            // Initialize the periodic log flush timer
            _metricsFlushTimer = new Timer(TimerFlush, null, metricsFlushIntervalMS, metricsFlushIntervalMS);

            _metricsPublisher = metricsPublisher;
        }
        public MetricsEventManager(ScriptSettingsManager settingsManager, IEventGenerator generator, int functionActivityFlushIntervalSeconds, int metricsFlushIntervalMS = DefaultFlushIntervalMS)
        {
            // we read these in the ctor (not static ctor) since it can change on the fly
            appName = GetNormalizedString(settingsManager.AzureWebsiteDefaultSubdomain);
            subscriptionId = Utility.GetSubscriptionId() ?? string.Empty;

            _eventGenerator = generator;
            _functionActivityFlushIntervalSeconds = functionActivityFlushIntervalSeconds;
            QueuedEvents = new ConcurrentDictionary<string, SystemMetricEvent>(StringComparer.OrdinalIgnoreCase);

            // Initialize the periodic log flush timer
            _metricsFlushTimer = new Timer(TimerFlush, null, metricsFlushIntervalMS, metricsFlushIntervalMS);
        }
        public MetricsEventManager(ScriptSettingsManager settingsManager, IEventGenerator generator, int functionActivityFlushIntervalSeconds, int metricsFlushIntervalMS = DefaultFlushIntervalMS)
        {
            // we read these in the ctor (not static ctor) since it can change on the fly
            appName        = GetNormalizedString(settingsManager.AzureWebsiteUniqueSlotName);
            subscriptionId = Utility.GetSubscriptionId(settingsManager) ?? string.Empty;

            _eventGenerator = generator;
            _functionActivityFlushIntervalSeconds = functionActivityFlushIntervalSeconds;
            QueuedEvents = new ConcurrentDictionary <string, SystemMetricEvent>(StringComparer.OrdinalIgnoreCase);

            // Initialize the periodic log flush timer
            _metricsFlushTimer = new Timer(TimerFlush, null, metricsFlushIntervalMS, metricsFlushIntervalMS);
        }
Beispiel #21
0
 public SystemLogger(string hostInstanceId, string categoryName, IEventGenerator eventGenerator, IEnvironment environment,
                     IDebugStateProvider debugStateProvider, IScriptEventManager eventManager, IExternalScopeProvider scopeProvider, IOptionsMonitor <AppServiceOptions> appServiceOptions)
 {
     _environment        = environment;
     _eventGenerator     = eventGenerator;
     _categoryName       = categoryName ?? string.Empty;
     _logLevel           = LogLevel.Debug;
     _functionName       = LogCategories.IsFunctionCategory(_categoryName) ? _categoryName.Split('.')[1] : null;
     _isUserFunction     = LogCategories.IsFunctionUserCategory(_categoryName);
     _hostInstanceId     = hostInstanceId;
     _debugStateProvider = debugStateProvider;
     _eventManager       = eventManager;
     _scopeProvider      = scopeProvider;
     _appServiceOptions  = appServiceOptions;
 }
Beispiel #22
0
        public MetricsEventManager(IOptionsMonitor <AppServiceOptions> appServiceOptions, IEventGenerator generator, int functionActivityFlushIntervalSeconds, IMetricsPublisher metricsPublisher, ILinuxContainerActivityPublisher linuxContainerActivityPublisher, ILogger <MetricsEventManager> logger, int metricsFlushIntervalMS = DefaultFlushIntervalMS)
        {
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));

            // we read these in the ctor (not static ctor) since it can change on the fly
            _appServiceOptions = appServiceOptions;
            _eventGenerator    = generator;
            _functionActivityFlushIntervalSeconds = functionActivityFlushIntervalSeconds;
            QueuedEvents = new ConcurrentDictionary <string, SystemMetricEvent>(StringComparer.OrdinalIgnoreCase);

            // Initialize the periodic log flush timer
            _metricsFlushTimer = new Timer(TimerFlush, null, metricsFlushIntervalMS, metricsFlushIntervalMS);

            _functionActivityTracker = new FunctionActivityTracker(_appServiceOptions, _eventGenerator, metricsPublisher, linuxContainerActivityPublisher, _functionActivityFlushIntervalSeconds, _logger);
        }
            internal FunctionActivityTracker(IOptionsMonitor <AppServiceOptions> appServiceOptions, IEventGenerator generator, IMetricsPublisher metricsPublisher, ILinuxContainerActivityPublisher linuxContainerActivityPublisher, int functionActivityFlushInterval)
            {
                MetricsEventGenerator          = generator;
                _appServiceOptions             = appServiceOptions;
                _functionActivityFlushInterval = functionActivityFlushInterval;

                if (linuxContainerActivityPublisher != null && linuxContainerActivityPublisher != NullLinuxContainerActivityPublisher.Instance)
                {
                    _linuxContainerActivityPublisher = linuxContainerActivityPublisher;
                }

                if (metricsPublisher != null && metricsPublisher != NullMetricsPublisher.Instance)
                {
                    _metricsPublisher = metricsPublisher;
                }

                Task.Run(
                    async() =>
                {
                    try
                    {
                        int currentSecond = _functionActivityFlushInterval;
                        while (!_etwTaskCancellationSource.Token.IsCancellationRequested)
                        {
                            RaiseMetricsPerFunctionEvent();

                            if (currentSecond >= _functionActivityFlushInterval)
                            {
                                RaiseFunctionMetricEvents();
                                currentSecond = 0;
                            }
                            else
                            {
                                currentSecond = currentSecond + 1;
                            }

                            await Task.Delay(TimeSpan.FromSeconds(1), _etwTaskCancellationSource.Token);
                        }
                    }
                    catch (TaskCanceledException)
                    {
                        // This exception gets throws when cancellation request is raised via cancellation token.
                        // Let's eat this exception and continue
                    }
                },
                    _etwTaskCancellationSource.Token);
            }
Beispiel #24
0
        public WebHostResolver(ScriptSettingsManager settingsManager, ISecretManagerFactory secretManagerFactory,
                               IScriptEventManager eventManager, WebHostSettings settings, IWebJobsRouter router, ILoggerProviderFactory loggerProviderFactory,
                               ILoggerFactory loggerFactory, IEventGenerator eventGenerator)
        {
            _settingsManager      = settingsManager;
            _secretManagerFactory = secretManagerFactory;
            _eventManager         = eventManager;
            _router         = router;
            _settings       = settings;
            _eventGenerator = eventGenerator;

            // _loggerProviderFactory is used for creating the LoggerFactory for each ScriptHost
            _loggerProviderFactory = loggerProviderFactory;

            // _loggerFactory is used when there is no host available.
            _loggerFactory = loggerFactory;
        }
        public AzureMonitorDiagnosticLogger(string category, string hostInstanceId, IEventGenerator eventGenerator, IEnvironment environment, IExternalScopeProvider scopeProvider,
                                            HostNameProvider hostNameProvider, IOptionsMonitor <AppServiceOptions> appServiceOptionsMonitor)
        {
            _category         = category ?? throw new ArgumentNullException(nameof(category));
            _hostInstanceId   = hostInstanceId ?? throw new ArgumentNullException(nameof(hostInstanceId));
            _eventGenerator   = eventGenerator ?? throw new ArgumentNullException(nameof(eventGenerator));
            _environment      = environment ?? throw new ArgumentNullException(nameof(environment));
            _scopeProvider    = scopeProvider ?? throw new ArgumentNullException(nameof(scopeProvider));
            _hostNameProvider = hostNameProvider ?? throw new ArgumentNullException(nameof(hostNameProvider));
            _ = appServiceOptionsMonitor ?? throw new ArgumentNullException(nameof(appServiceOptionsMonitor));

            appServiceOptionsMonitor.OnChange(newOptions => _appServiceOptions = newOptions);
            _appServiceOptions = appServiceOptionsMonitor.CurrentValue;

            _roleInstance = _environment.GetInstanceId();

            _regionName = _environment.GetEnvironmentVariable(EnvironmentSettingNames.RegionName) ?? string.Empty;
        }
Beispiel #26
0
            internal FunctionActivityTracker(IOptionsMonitor <AppServiceOptions> appServiceOptions, IEventGenerator generator, IMetricsPublisher metricsPublisher, ILinuxContainerActivityPublisher linuxContainerActivityPublisher, int functionActivityFlushInterval)
            {
                MetricsEventGenerator          = generator;
                _appServiceOptions             = appServiceOptions;
                _functionActivityFlushInterval = functionActivityFlushInterval;

                if (linuxContainerActivityPublisher != null && linuxContainerActivityPublisher != NullLinuxContainerActivityPublisher.Instance)
                {
                    _linuxContainerActivityPublisher = linuxContainerActivityPublisher;
                }

                if (metricsPublisher != null && metricsPublisher != NullMetricsPublisher.Instance)
                {
                    _metricsPublisher = metricsPublisher;
                }

                StartActivityTimer();
            }
Beispiel #27
0
            internal FunctionActivityTracker(IOptionsMonitor <AppServiceOptions> appServiceOptions, IEventGenerator generator, IMetricsPublisher metricsPublisher, ILinuxContainerActivityPublisher linuxContainerActivityPublisher, int functionActivityFlushInterval, ILogger <MetricsEventManager> logger)
            {
                MetricsEventGenerator          = generator;
                _appServiceOptions             = appServiceOptions;
                _functionActivityFlushInterval = functionActivityFlushInterval;

                if (linuxContainerActivityPublisher != null && linuxContainerActivityPublisher != NullLinuxContainerActivityPublisher.Instance)
                {
                    _linuxContainerActivityPublisher = linuxContainerActivityPublisher;
                }

                if (metricsPublisher != null && metricsPublisher != NullMetricsPublisher.Instance)
                {
                    _metricsPublisher = metricsPublisher;
                }

                _activityFlushCounter = _functionActivityFlushInterval;
                _activityTimer        = new Timer(TimerFlush, null, _activityTimerIntervalMS, _activityTimerIntervalMS);

                _logger = logger;
            }
Beispiel #28
0
        public WebScriptHostManager(ScriptHostConfiguration config,
                                    ISecretManagerFactory secretManagerFactory,
                                    IScriptEventManager eventManager,
                                    ScriptSettingsManager settingsManager,
                                    WebHostSettings webHostSettings,
                                    IWebJobsRouter router,
                                    ILoggerFactory loggerFactory,
                                    IScriptHostFactory scriptHostFactory = null,
                                    ISecretsRepositoryFactory secretsRepositoryFactory = null,
                                    HostPerformanceManager hostPerformanceManager      = null,
                                    ILoggerProviderFactory loggerProviderFactory       = null,
                                    IEventGenerator eventGenerator      = null,
                                    int hostTimeoutSeconds              = 30,
                                    int hostPollingIntervalMilliseconds = 500)
            : base(config, settingsManager, scriptHostFactory, eventManager, environment: null,
                   hostPerformanceManager: hostPerformanceManager, loggerProviderFactory: loggerProviderFactory)
        {
            _config = config;

            _exceptionHandler   = new WebScriptHostExceptionHandler(this);
            _webHostSettings    = webHostSettings;
            _settingsManager    = settingsManager;
            _hostTimeoutSeconds = hostTimeoutSeconds;
            _hostRunningPollIntervalMilliseconds = hostPollingIntervalMilliseconds;
            _router = router;

            config.IsSelfHost = webHostSettings.IsSelfHost;

            secretsRepositoryFactory = secretsRepositoryFactory ?? new DefaultSecretsRepositoryFactory();
            var secretsRepository = secretsRepositoryFactory.Create(settingsManager, webHostSettings, config);

            _secretManager = secretManagerFactory.Create(settingsManager, loggerFactory.CreateLogger(ScriptConstants.LogCategoryHostGeneral), secretsRepository);
            eventGenerator = eventGenerator ?? new EtwEventGenerator();

            _bindingWebHookProvider = new WebJobsSdkExtensionHookProvider(_secretManager);
            _metricsLogger          = new WebHostMetricsLogger(eventGenerator);
        }
Beispiel #29
0
        public RdfACoreParserContext(IRdfHandler handler, IRdfAHostLanguage language, TextReader reader, bool traceParsing)
        {
            this._handler      = handler;
            this._traceParsing = traceParsing;
            this._language     = language;

            //Set up the Event Queue
            IEventGenerator <IRdfAEvent> generator = this._language.GetEventGenerator(reader);

            if (generator is IJitEventGenerator <IRdfAEvent> )
            {
                this._events = new StreamingEventQueue <IRdfAEvent>((IJitEventGenerator <IRdfAEvent>)generator);
            }
            else if (generator is IPreProcessingEventGenerator <IRdfAEvent, RdfACoreParserContext> )
            {
                this._events = new EventQueue <IRdfAEvent>(generator);
                ((IPreProcessingEventGenerator <IRdfAEvent, RdfACoreParserContext>)generator).GetAllEvents(this);
            }
            this._events = new DualEventQueue <IRdfAEvent>(this._events);

            //Setup final things
            this._baseUri         = new NestedReference <Uri>((this._language.InitialBaseUri != null ? this._language.InitialBaseUri : this._handler.GetBaseUri()));
            this._defaultVocabUri = new NestedReference <Uri>(this._language.DefaultVocabularyUri);
        }
 public AzureMonitorDiagnosticLoggerProvider(IOptions <ScriptJobHostOptions> scriptOptions, IEventGenerator eventGenerator, IEnvironment environment)
     : this(scriptOptions.Value.InstanceId, eventGenerator, environment)
 {
 }
Beispiel #31
0
        private static ILoggerFactory CreateLoggerFactory(string hostInstanceId, ScriptSettingsManager settingsManager, IEventGenerator eventGenerator, WebHostSettings settings)
        {
            var loggerFactory = new LoggerFactory(Enumerable.Empty <ILoggerProvider>(), Utility.CreateLoggerFilterOptions());

            var systemLoggerProvider = new SystemLoggerProvider(hostInstanceId, eventGenerator, settingsManager);

            loggerFactory.AddProvider(systemLoggerProvider);

            // This loggerFactory logs everything to host files. No filter is applied because it is created
            // before we parse host.json.
            var hostFileLogger = new HostFileLoggerProvider(hostInstanceId, settings.LogPath, () => true);

            loggerFactory.AddProvider(hostFileLogger);

            return(loggerFactory);
        }
 public SystemLoggerProvider(IOptions <ScriptJobHostOptions> scriptOptions, IEventGenerator eventGenerator, IEnvironment environment, IDebugStateProvider debugStateProvider, IScriptEventManager eventManager)
     : this(scriptOptions.Value.InstanceId, eventGenerator, environment, debugStateProvider, eventManager)
 {
 }
Beispiel #33
0
 /// <summary>
 /// Creates a new Event Queue with the given Event Generator
 /// </summary>
 /// <param name="generator">Event Generator</param>
 public EventQueue(IEventGenerator generator)
 {
     this._eventgen = generator;
 }
 public WebHostMetricsLogger(ScriptSettingsManager settingsManager, IEventGenerator eventGenerator, int metricEventIntervalInSeconds)
 {
     _metricsEventManager = new MetricsEventManager(settingsManager, eventGenerator, metricEventIntervalInSeconds);
 }
            internal FunctionActivityTracker(IEventGenerator generator, int functionActivityFlushInterval)
            {
                MetricsEventGenerator = generator;
                _functionActivityFlushInterval = functionActivityFlushInterval;
                Task.Run(
                    async () =>
                    {
                        try
                        {
                            int currentSecond = _functionActivityFlushInterval;
                            while (!_etwTaskCancellationSource.Token.IsCancellationRequested)
                            {
                                RaiseMetricsPerFunctionEvent();

                                if (currentSecond >= _functionActivityFlushInterval)
                                {
                                    RaiseFunctionMetricEvents();
                                    currentSecond = 0;
                                }
                                else
                                {
                                    currentSecond = currentSecond + 1;
                                }

                                await Task.Delay(TimeSpan.FromSeconds(1), _etwTaskCancellationSource.Token);
                            }
                        }
                        catch (TaskCanceledException)
                        {
                            // This exception gets throws when cancellation request is raised via cancellation token.
                            // Let's eat this exception and continue
                        }
                    },
                    _etwTaskCancellationSource.Token);
            }