示例#1
0
        public DebtMeasureValue MeasureDebt(DatePeriodValue period = null)
        {
            QualityMeasureValue measure = this.Measure(period);
            var result   = new DebtMeasureValue();
            var measures = this.JourneyMaps.Select(c => measure.MeasureDebt(c.Journey.GetSLO())).ToList();

            result.AddRange(measures);
            return(result);
        }
        public DebtMeasureValue Measure(DatePeriodValue period = null)
        {
            var measure = new DebtMeasureValue();

            foreach (var journey in this.Journeys)
            {
                measure.Add(journey.Measure(period));
            }
            return(measure);
        }
        public DebtMeasureValue MeasureDebt(DatePeriodValue period = null)
        {
            var measure = this.Measure(period);

            var     maps             = this.Indicators.Select(c => c.Feature.JourneyMaps).ToList();
            var     services         = maps.SelectMany(c => c.Select(d => d.Journey)).Distinct(new JourneyEntityCompare());
            decimal availabilityDebt = 0;
            decimal latencyDebt      = 0;
            decimal experienceDebt   = 0;

            foreach (var item in services)
            {
                availabilityDebt += QualityUtils.MeasureDebt(measure.Availability, item.AvailabilitySlo);

                latencyDebt += QualityUtils.MeasureLatencyDebt(measure.Latency, item.LatencySlo);

                experienceDebt += QualityUtils.MeasureDebt(measure.Experience, item.ExperienceSlo);
            }
            var result = new DebtMeasureValue(availabilityDebt, latencyDebt, experienceDebt);

            return(result);
        }