internal FunctionActivityTracker(IMetricsEventGenerator generator, int metricEventIntervalInSeconds) { MetricsEventGenerator = generator; _metricEventIntervalInSeconds = metricEventIntervalInSeconds; Task.Run( async() => { try { int currentSecond = _metricEventIntervalInSeconds; while (!_etwTaskCancellationSource.Token.IsCancellationRequested) { RaiseMetricsPerFunctionEvent(); if (currentSecond >= _metricEventIntervalInSeconds) { 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); }
internal MetricsEventManager(IMetricsEventGenerator generator, int metricEventIntervalInSeconds) { // we read this in ctor (not static ctor) since it can change on the fly siteName = GetNormalizedString(Environment.GetEnvironmentVariable("WEBSITE_SITE_NAME")); _metricsEventGenerator = generator; _metricEventIntervalInSeconds = metricEventIntervalInSeconds; }
public WebHostMetricsLogger(IMetricsEventGenerator metricsEventGenerator, int metricEventIntervalInSeconds) { _metricsEventManager = new MetricsEventManager(metricsEventGenerator, metricEventIntervalInSeconds); }
internal MetricsEventManager(IMetricsEventGenerator generator, int metricEventIntervalInSeconds) { _metricsEventGenerator = generator; _metricEventIntervalInSeconds = metricEventIntervalInSeconds; }