Skip to content

Commit f5f1318

Browse files
committed
Use center(segmentAfter) / center(segmentBefore) since ration doesn't work fine if the array contains 0
1 parent d6aeba3 commit f5f1318

File tree

2 files changed

+7
-11
lines changed

2 files changed

+7
-11
lines changed

dashboard/new-dashboard/src/shared/changeDetector/algorithm.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { avgSpread, center, ratio, shift } from "pragmastat"
1+
import { avgSpread, center, shift } from "pragmastat"
22

33
export enum ChangePointClassification {
44
DEGRADATION = "Degradation",
@@ -53,11 +53,11 @@ export const classifyChangePoint = (changePointIndexes: number[], dataset: numbe
5353
const segmentBefore = dataset.slice(startBefore, endBefore)
5454
const segmentAfter = dataset.slice(startAfter, endAfter)
5555

56-
const ratioValue = ratio(segmentAfter, segmentBefore)
57-
const percentageDifference = Math.abs((ratioValue - 1) * 100)
58-
5956
const centerBefore = center(segmentBefore)
6057
const centerAfter = center(segmentAfter)
58+
const ratioValue = centerAfter / centerBefore
59+
60+
const percentageDifference = Math.abs((ratioValue - 1) * 100)
6161
const absoluteChange = Math.abs(centerAfter - centerBefore)
6262

6363
const shiftValue = shift(segmentAfter, segmentBefore)

pkg/degradation-detector/degradationDetector.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,6 @@ func detectDegradations(values []int, builds []string, timestamps []int64, analy
6868
continue
6969
}
7070

71-
ratio, err := pragmastat.Ratio(lastSegment, segments[i])
72-
if err != nil {
73-
skippedSegments++
74-
continue
75-
}
76-
7771
currentCenter, err := pragmastat.Center(lastSegment)
7872
if err != nil {
7973
skippedSegments++
@@ -85,6 +79,8 @@ func detectDegradations(values []int, builds []string, timestamps []int64, analy
8579
continue
8680
}
8781

82+
ratio := currentCenter / previousCenter
83+
8884
percentageChange := math.Abs((ratio - 1) * 100)
8985
absoluteChange := math.Abs(currentCenter - previousCenter)
9086

@@ -97,7 +93,7 @@ func detectDegradations(values []int, builds []string, timestamps []int64, analy
9793
break
9894
}
9995

100-
isDegradation := ratio > 1
96+
isDegradation := currentCenter > previousCenter
10197
reportType := analysisSettings.GetReportType()
10298

10399
if !isDegradation && reportType == DegradationEvent {

0 commit comments

Comments
 (0)