Esempio n. 1
0
        private void StartSLAViolationCounter()
        {
            Task t = new Task(async() =>
            {
                while (Started)
                {
                    await Task.Delay(Global.Second);
                    var needed = GetNeededHostLoadInfo();
                    var v      = needed.Volume;

                    if (v > 1)
                    {
                        var loaddiff = needed.CurrentLoad - _maxLoad;
                        var vioCon   = _containerTable.CalculateSlaViolations(loaddiff);
                        //var vhis = _containerTable.CalculateSlaViolationsPercent(loaddiff);
                        var vhis = (1 - (1 / v)) * 100;
                        if (vhis != 0)
                        {
                        }
                        violationHistory.Add(vhis);
                        foreach (var conId in vioCon)
                        {
                            lock (_lock)
                            {
                                if (!violatedContainers.ContainsKey(conId))
                                {
                                    violatedContainers.Add(conId, 1);
                                }
                                else
                                {
                                    violatedContainers[conId]++;
                                }
                            }
                        }
                    }
                    else
                    {
                        //violationhistory.Add(0);
                    }
                }
            });

            t.Start();
        }