Exemplo n.º 1
0
 private void ConfigureTasks(Alex.Alex alex)
 {
     MetricTasks.Add(new SystemPerformanceCountersTask());
     MetricTasks.Add(new ProfilerMetrics(alex));
     MetricTasks.Add(new GPUMetricsTask());
     MetricTasks.Add(new WorldMetrics(alex));
 }
Exemplo n.º 2
0
        private async Task Run()
        {
            // while (_isRunning)
            // {
            Parallel.ForEach(MetricTasks.ToArray(), task => { task.Run(); });

            var healthStatus = await Health.HealthCheckRunner.ReadAsync(_threadCancellationToken);

            using (var ms = new MemoryStream())
            {
                await Health.DefaultOutputHealthFormatter.WriteAsync(ms, healthStatus);
            }

            await Task.WhenAll(Metrics.ReportRunner.RunAllAsync(_threadCancellationToken));

            // }
        }
Exemplo n.º 3
0
        public override void Enabled(Alex.Alex alex)
        {
            if (_isRunning)
            {
                return;
            }
            _isRunning = true;

            ConfigureTasks(alex);

            foreach (var task in MetricTasks.ToArray())
            {
                task.Configure(Metrics);
            }

            _threadCancellationTokenSource = new CancellationTokenSource();

            _metricTimer = new Timer(async state => await Run(), null, 0, 1000);

            Log.Info($"Metrics plugin enabled!");
        }