임계값 & 알림
재능있느라 어떻게 성능 회귀를 잡는지 알려주는 방법입니다. 임계값은 고유한 조합에 할당됩니다 : 브랜치, 테스트 베드, 그리고 측정값. 임계값은 하한선, 상한선 또는 둘 다 있어야 합니다. 각 경계는 경계 제한을 계산하는 데 사용됩니다. 그런 다음 모든 새로운 메트릭이 각 경계 제한에 대해 확인됩니다.
- 하한선
- 하한선은 작은 값이 성능 저하를 나타낼 때 사용되는 Throughput Measure와 같습니다.
- 상한선
- 상한선은 큰 값이 성능 저하를 나타낼 때 사용됩니다, 예를 들어 Latency Measure와 같습니다.
임계값의 여러 종류가 있습니다:
알림
새로운 메트릭이 임계값의 하한선 이하 또는 상한선 이상일 때 알림이 생성됩니다.
알림 발생 시 CI 빌드를 실패시키려면 bencher run
CLI 서브커맨드를 사용할 때 --err
플래그를 설정하세요.
알림 억제
특정 벤치마크에 대한 알림을 억제하는 것이 유용할 수 있습니다. 이를 위한 가장 좋은 방법은 해당 벤치마크의 이름에 이 특별한 접미사 중 하나를 추가하는 것입니다:
_bencher_ignore
BencherIgnore
-bencher-ignore
예를 들어, 벤치마크가 my_flaky_benchmark
라는 이름으로 생성되었다면 이를 my_flaky_benchmark_bencher_ignore
로 이름을 바꾸면 해당 벤치마크만 무시하게 됩니다.
무시된 벤치마크는 존재하는 임계값과 비교 검사를 받지 않습니다.
그러나 무시된 벤치마크의 메트릭은 여전히 저장됩니다.
예시를 계속하면, my_flaky_benchmark_bencher_ignore
의 결과는 아직 데이터베이스의 my_flaky_benchmark
하에 저장됩니다.
접미사를 제거하고 원래의 벤치마크 이름으로 돌아가면, 이전에 중단한 시점부터 바로 다시 시작하게 됩니다.
정적 임계값
정적 임계값은 가장 기본적인 임계값입니다. 새로운 메트릭이 설정된 하한선 아래에 있거나 설정된 상한선 위에 있을 경우 경보가 생성됩니다. 즉, 하/상한선은 명확한 하/상한선 제한입니다. 하한선, 상한선 또는 둘 다 설정되어야 합니다. 정적 임계값은 메트릭의 값이 일정 범위 내에 있어야 할 때 가장 잘 작동합니다, 예를 들어 명령어 수와 같은 경우입니다.
-
정적 임계값 하한선
- 정적 임계값 하한선은 어떠한 부동소수점 수도 될 수 있습니다. 이는 더 작은 값이 성능 저하를 나타낼 경우 사용됩니다. 하한선은 반드시 상한선과 같거나 작아야 합니다, 만약 둘 다 명시되어 있다면.
- 예를 들어, 하한선이
100
으로 설정된 정적 임계값이 있다면 하한선 제한값도 마찬가지로100
이고100
보다 작은 값이 들어오면 경보가 생성됩니다.
-
정적 임계값 상한선
- 정적 임계값 상한선은 어떠한 부동소수점 수도 될 수 있습니다. 이는 더 큰 값이 성능 저하를 나타날 경우 사용됩니다. 상한선은 반드시 하한선과 같거나 커야 합니다, 만약 둘 다 명시되어 있다면.
- 예를 들어, 상한선이
100
으로 설정된 정적 임계값이 있다면 상한선 제한값도 마찬가지로100
이고100
보다 큰 값이 들어오면 경보가 생성됩니다.
통계적 임계값
다른 모든 임계값은 통계적 임계값입니다. 각 통계적 임계값은 과거 메트릭과 고유한 통계적 유의성 검정을 사용하여 경보가 생성되는지 여부를 결정합니다. 따라서 하한/상한은 다른 통계적 임계값에 따라 다른 것을 의미합니다. 하한 및/또는 상한 설정 외에 사용되는 과거 메트릭을 결정하는 컨트롤도 있습니다(즉, 선택된 표본).
-
최소 표본 크기
- 통계적 임계값에 대해 최소 표본 크기를 설정할 수 있습니다. 통계적 임계값은 과거 메트릭의 수가 최소 표본 크기 이상인 경우에만 통계적 유의성 검정을 실행합니다. 최소 표본 크기는 최대 표본 크기 이하여야 합니다. 만약 둘 다 명시되어 있다면.
-
최대 표본 크기
- 통계적 임계값에 대해 최대 표본 크기를 설정할 수 있습니다. 통계적 임계값은 통계적 유의성 검정을 위해 최신 과거 메트릭만 사용하도록 제한하며, 그 수는 최대 표본 크기로 제한됩니다. 최대 표본 크기는 최소 표본 크기 이상이어야 합니다. 만약 둘 다 명시되어 있다면.
-
윈도우 사이즈
- 통계적 임계값에 대해 초 단위의 윈도우 크기를 설정할 수 있습니다. 통계적 임계값은 주어진 시간 창에 의해 제한된 가장 최신의 과거 메트릭만 사용하도록 제한합니다. 통계적 유의성 검정을 위해.
퍼센트 임계치
퍼센트 임계치는 가장 간단한 통계적 임계치입니다. 새로운 측정치가 평균의 일정 비율 이하(하한) 또는 평균의 일정 비율 초과(상한)일 경우 경보가 생성됩니다. 하한, 상한 또는 둘 다 설정해야 합니다. 퍼센트 임계치는 측정치의 값이 알려진 좋은 범위 내에 있어야 할 때 가장 효과가 있습니다.
-
퍼센트 임계치 하한
- 퍼센트 임계치 하한은 0 이상의 어떤 퍼센트이든 소수 형태로 표현될 수 있습니다(예:
10%
의 경우0.10
을 사용). 치수가 작아질수록 성능이 저하됨을 나타내는 경우에 사용됩니다. - 예를 들어, 하한을
0.10
으로 설정한 퍼센트 임계치를 가지고 있고 국사적 측정치의 평균이100
인 경우 하한 한도는90
이고90
보다 작은 값은 경보를 생성합니다.
- 퍼센트 임계치 하한은 0 이상의 어떤 퍼센트이든 소수 형태로 표현될 수 있습니다(예:
-
퍼센트 임계치 상한
- 퍼센트 임계치 상한은 0 이상의 어떤 퍼센트이든 소수 형태로 표현될 수 있습니다(예:
10%
의 경우0.10
을 사용). 치수가 클수록 성능이 저하됨을 나타내는 경우에 사용됩니다. - 예를 들어, 상한을
0.10
으로 설정한 퍼센트 임계치를 가지고 있고 국사적 측정치의 평균이100
인 경우 상한 한도는110
이고110
보다 큰 값은 경보를 생성합니다.
- 퍼센트 임계치 상한은 0 이상의 어떤 퍼센트이든 소수 형태로 표현될 수 있습니다(예:
z-점수 임계값
z-점수 임계값은 새로운 메트릭이 표준 편차 (σ)로 구성된 과거 메트릭 평균에서 얼마나 다른지를 측정하는 z-점수를 사용합니다.
z-점수 임계값은 다음과 같은 경우에 가장 잘 작동합니다:
- 벤치마크 실행간에 극단적인 차이가 없을 때
- 벤치마크 실행이 완전히 독립적일 때
- 단일 벤치마크 실행의 반복 횟수가 과거 메트릭의 10% 미만일 때
- 최소 30개의 과거 메트릭이 있을 때 (최소 샘플 크기 >= 30)
z-점수 임계값에서 표준 편차는 소수점 누적 비율로 표현됩니다. 이는 새로운 메트릭이 과거 메트릭의 특정 왼쪽 누적 비율 (하한) 또는 다른 오른쪽 누적 비율 (상한) 아래나 위에 있는 경우 경고가 생성됩니다. 하한, 상한 또는 둘 다 설정해야 합니다.
-
z-점수 임계값 하한
- z-점수 임계값 하한은
0.5
와1.0
사이의 임의의 양의 소수가 될 수 있습니다. 여기서0.5
는 평균을 나타내고1.0
은 모든 가능한 왼쪽 값 (-∞)을 나타냅니다. 이는 더 작은 값이 성능 하락을 가리킬 때 사용됩니다. - 예를 들어, z-점수 임계값으로 하한을
0.977
로 설정했고 과거 메트릭의 평균이100
이고 표준 편차가10
이었다면, 하한 한계는80.05
가 되고80.05
보다 작은 값은 경고를 생성할 것입니다.
- z-점수 임계값 하한은
-
z-점수 임계값 상한
- z-점수 임계값 상한은
0.5
와1.0
사이의 임의의 양의 소수가 될 수 있습니다. 여기서0.5
는 평균을 나타내고1.0
은 모든 가능한 오른쪽 값 (∞)을 나타냅니다. 이는 더 큰 값이 성능 하락을 가리킬 때 사용됩니다. - 예를 들어, z-점수 임계값으로 상한을
0.977
로 설정했고 과거 메트릭의 평균이100
이고 표준 편차가10
이었다면, 상한 한계는119.95
가 되고119.95
보다 큰 값은 경고를 생성할 것입니다.
- z-점수 임계값 상한은
t-검정 임계값
t-검정 임계값은 새로운 메트릭이 사용자의 역사적 메트릭의 평균이상 혹은 이하일 확률이 얼마나 되는지에 대한 신뢰 구간(CI) 을 측정합니다. 이는 스튜던트의 t-검정을 사용합니다.
t-검정 임계값은 다음과 같은 조건에서 가장 잘 동작합니다:
- 벤치마크 실행간에 극단적인 차이가 없는 경우
- 벤치마크 실행이 서로 완전히 독립적인 경우
- 단일 벤치마크 실행의 반복 횟수가 역사적 메트릭의 10% 미만인 경우
t-검정 임계값에서는 신뢰 구간이 소수점 단위의 신뢰도 퍼센트로 표현됩니다. 만약 새로운 메트릭이 특정 왼쪽 신뢰도 퍼센트(Lower Boundary) 이하이거나 역사적 메트릭의 특정 오른쪽 신뢰도 퍼센트(Upper Boundary) 이상일 경우 경고가 생성됩니다. Lower Boundary, Upper Boundary 또는 둘 모두를 설정해야 합니다.
-
t-검정 임계값 Lower Boundary
- t-검정 임계값 Lower Boundary는
0.5
와1.0
사이의 양의 소수가 될 수 있으며, 여기에서0.5
는 평균을 나타내고1.0
은 모든 가능한 왼쪽 값(-∞)을 나타냅니다. 이는 더 작은 값이 성능 저하를 나타낼 때 사용됩니다. - 예를 들어, Lower Boundary가
0.977
인 t-검정 임계값을 사용하고 평균이100
이고 표준 편차가10
인25
개의 역사적 메트릭이 있다면, Lower Boundary Limit은78.96
이고,78.96
보다 작은 어떤 값이든 경고를 생성할 것입니다.
- t-검정 임계값 Lower Boundary는
-
t-검정 임계값 Upper Boundary
- t-검정 임계값 Upper Boundary는
0.5
와1.0
사이의 양의 소수가 될 수 있으며, 여기에서0.5
는 평균을 나타내고1.0
은 모든 가능한 오른쪽 값(∞)을 나타냅니다. 이는 더 큰 값이 성능 저하를 나타낼 때 사용됩니다. - 예를 들어, Upper Boundary가
0.977
인 t-검정 임계값을 사용하고 평균이100
이고 표준 편차가10
인25
개의 역사적 메트릭이 있다면, Upper Boundary Limit은121.04
이고,121.04
보다 큰 어떤 값이든 경고를 생성할 것입니다.
- t-검정 임계값 Upper Boundary는
로그 정규 임계값
로그 정규 임계값은 새로운 메트릭이 이력 메트릭의 중심 위치보다 높거나 낮을 확률을 로그 정규 분포를 통해 측정합니다.
로그 정규 임계값은 아래와 같은 경우에 가장 잘 작동합니다:
- 벤치마크 실행이 서로 완전히 독립적인 경우
- 단일 벤치마크 실행의 반복 횟수가 이력 메트릭의 10% 미만인 경우
- 모든 데이터가 양수인 경우(음수의 자연로그는
undefined
입니다)
로그 정규 임계값에서는 소수 백분율로 표현된 확률입니다. 새로운 메트릭이 이력 메트릭의 일정한 왼쪽 퍼센트(하한) 아래거나 일정한 오른쪽 퍼센트(상한) 위일 경우 경고가 생성됩니다. 하한, 상한 또는 둘 다 설정해야 합니다.
-
로그 정규 임계값 하한
- 로그 정규 임계값 하한은
0.5
와1.0
사이의 양의 소수일 수 있습니다. 여기서0.5
는 중심 위치를 나타내고1.0
은 모든 가능한 왼쪽 값(-∞)을 나타냅니다. 작은 값이 성능 저하를 나타내는 경우 사용됩니다. - 예를 들어, 하한이
0.977
인 로그 정규 임계값을 사용하고 이력 메트릭이100
을 중심으로25
개 있고 이전에200
의 이상치가 하나 있다면, 하한 한도는71.20
이 되며71.20
보다 작은 값은 경고를 생성합니다.
- 로그 정규 임계값 하한은
-
로그 정규 임계값 상한
- 로그 정규 임계값 상한은
0.5
와1.0
사이의 양의 소수일 수 있습니다. 여기서0.5
는 중심 위치를 나타내고1.0
은 모든 가능한 오른쪽 값(∞)을 나타냅니다. 큰 값이 성능 저하를 나타내는 경우 사용됩니다. - 예를 들어, 상한이
0.977
인 로그 정규 임계값을 사용하고 이력 메트릭이100
을 중심으로25
개 있고 이전에200
의 이상치가 하나 있다면, 상한 한도는134.18
이 되며134.18
보다 큰 값은 경고를 생성합니다.
- 로그 정규 임계값 상한은
사분위수 범위 임계값
사분위수 범위 임계값은 신규 메트릭이 당신의 기록적인 메트릭들의 중앙값 보다 얼마나 많은 배수로 사분위수 범위 (IQR) 위 또는 아래에 있는지를 측정합니다. 만약 새로운 메트릭이 IQR의 특정 배수에서 중앙값 아래 (하한)이거나 당신의 기록적인 메트릭의 중앙값에서 IQR의 특정 배수 이상 (상한)이라면 경고가 생성됩니다. 하한, 상한 또는 둘 다 설정해야 합니다.
-
사분위수 범위 임계값 하한
- 사분위수 범위 임계값 하한은 0(예:
2x
를 위해2.0
사용) 이상의 어떤 배율이 될 수 있습니다. 이것은 더 작은 값이 성능 저하를 나타낼 때 사용됩니다. - 예를 들어, 하한이
2.0
으로 설정된 사분위수 범위 임계값이 있고 기록적인 메트릭들이 중앙값이100
, 사분위수 범위가10
이라면 하한 제한은80
이 될 것이고80
보다 작은 모든 값은 경고를 생성할 것입니다.
- 사분위수 범위 임계값 하한은 0(예:
-
사분위수 범위 임계값 상한
- 사분위수 범위 임계값 상한은 0(예:
2x
를 위해2.0
사용) 이상의 어떤 배율이 될 수 있습니다. 이것은 더 큰 값이 성능 저하를 나타낼 때 사용됩니다. - 예를 들어, 상한이
2.0
으로 설정된 사분위수 범위 임계값이 있고 기록적인 메트릭들이 중앙값이100
, 사분위수 범위가10
이라면 상한 제한은120
이 될 것이고120
보다 큰 모든 값은 경고를 생성할 것입니다.
- 사분위수 범위 임계값 상한은 0(예:
델타 사분위수 범위 임계값
델타 사분위수 범위 임계값은 평균 백분율 변경치(Δ)의 배수(즉, 사분위수 범위 (IQR)에 해당하는) 측정치가 기존 Metric의 중위수에 비해 얼마나 높거나 낮은지를 측정합니다. 새로운 Metric이 기존 Metric의 중위수로부터 특정 배수만큼 ΔIQR보다 낮은 경우(하한) 또는 특정 배수만큼 ΔIQR보다 높은 경우(상한), 경고가 생성됩니다. 하한, 상한 또는 두 가지 모두를 설정해야 합니다.
-
델타 사분위수 범위 임계값 하한
- 델타 사분위수 범위 임계값 하한은 0이상의 모든 배수(ex:
2x
에 대해2.0
사용)가 될 수 있습니다. 이는 성능이 감소함을 나타내는 더 작은 값일 경우 사용됩니다. - 예를 들어, 하한이
2.0
으로 설정된 델타 사분위수 범위 임계값이 있고, 기존의 Metric이 중위수100
, 사분위수 범위10
, 평균 델타 사분위수 범위가0.2
(20%
)라면, 하한 한계값은60
이 될 것이고,60
보다 작은 값은 모두 경고를 발생시킬 것입니다.
- 델타 사분위수 범위 임계값 하한은 0이상의 모든 배수(ex:
-
델타 사분위수 범위 임계값 상한
- 델타 사분위수 범위 임계값 상한은 0이상의 모든 배수(ex:
2x
에 대해2.0
사용)가 될 수 있습니다. 이는 성능이 감소함을 나타내는 더 큰 값일 경우 사용됩니다. - 예를 들어, 상한이
2.0
으로 설정된 델타 사분위수 범위 임계값이 있고, 기존의 Metric이 중위수100
, 사분위수 범위10
, 평균 델타 사분위수 범위가0.2
(20%
)라면, 상한 한계값은140
이 될 것이고,140
보다 큰 값은 모두 경고를 발생시킬 것입니다.
- 델타 사분위수 범위 임계값 상한은 0이상의 모든 배수(ex:
🐰 축하합니다! 이제 임계값 & 알림에 대해 모두 배웠습니다! 🎉