Umbrales & Alertas


Los umbrales son la manera en que detectas las regresiones de rendimiento en Bencher. Un umbral se asigna a una combinación única de: Rama, Banco de pruebas y Medida. Un umbral debe tener un límite inferior, un límite superior, o ambos. Cada límite se utiliza para calcular un límite de contorno. Luego, cada nueva métrica se verifica en comparación a cada límite de contorno.

  • Límite inferior
    • Un límite inferior se usa cuando un valor más pequeño indicaría una regresión de rendimiento, como con la medida de rendimiento.
  • Límite superior
    • Un límite superior se utiliza cuando un valor más grande indicaría una regresión del rendimiento, como con la Medida de Retardo.

Existen varios tipos de umbrales:

Alertas

Las alertas se generan cuando una nueva métrica está por debajo del límite inferior de un umbral o por encima del límite superior de un umbral. Para hacer fallar una construcción de CI en el evento de una alerta, coloca la bandera --err al usar el subcomando CLI de bencher run.

Supresión de Alertas

A veces puede ser útil suprimir Alertas para un Benchmark específico. La mejor manera de hacer esto es agregando uno de estos sufijos especiales al nombre de ese Benchmark:

  • _bencher_ignore
  • BencherIgnore
  • -bencher-ignore

Por ejemplo, si tu Benchmark se llamaba my_flaky_benchmark, entonces renombrándolo a my_flaky_benchmark_bencher_ignore ignoraría solamente ese Benchmark específico en adelante. Los Benchmarks ignorados no se verifican con el Umbral, incluso si existe uno. Sin embargo, las métricas para los Benchmarks ignorados aún se almacenan. Continuando con nuestro ejemplo, los resultados de my_flaky_benchmark_bencher_ignore aún se almacenarían en la base de datos bajo my_flaky_benchmark. Si eliminas el sufijo y vuelves al nombre original del Benchmark, entonces las cosas continuarán justo donde lo dejaste.

Umbrales Estáticos

Un Umbral Estático es el umbral más sencillo. Si una nueva Métrica está por debajo de un Límite Inferior establecido o por encima de un Límite Superior establecido, se genera una Alerta. Es decir, el Límite Inferior/Superior es un Límite explícito Inferior/Superior. Debe establecerse un Límite Inferior, un Límite Superior, o ambos. Los Umbrales Estáticos funcionan mejor cuando el valor de la Métrica debe permanecer dentro de un rango constante, como conteos de instrucciones.

  • Límite Inferior de Umbral Estático

    • Un Límite Inferior de Umbral Estático puede ser cualquier número de punto flotante. Se utiliza cuando un valor más pequeño indicaría una regresión de rendimiento. El Límite Inferior debe ser menor o igual al Límite Superior, si ambos se especifican.
    • Por ejemplo, si tuvieras un Umbral Estático con un Límite Inferior establecido en 100 el Límite del Umbral Inferior también sería 100 y cualquier valor menor que 100 generaría una Alerta.
  • Límite Superior de Umbral Estático

    • Un Límite Superior de Umbral Estático puede ser cualquier número de punto flotante. Se utiliza cuando un valor más grande indicaría una regresión de rendimiento. El Límite Superior debe ser mayor o igual que el Límite Inferior, si ambos se especifican.
    • Por ejemplo, si tuvieras un Umbral Estático con un Límite Superior establecido en 100 el Límite del Umbral Superior también sería 100 y cualquier valor mayor que 100 generaría una Alerta.

Umbrales Estadísticos

Todos los demás umbrales son Umbrales Estadísticos. Cada Umbral Estadístico utiliza métricas históricas y una prueba de significación estadística única para determinar si se genera una Alerta. Por lo tanto, el Límite Inferior/Superior significará cosas diferentes para diferentes Umbrales Estadísticos. Además de establecer un Límite Inferior y/o Superior, hay controles para qué Métricas históricas se utilizan (es decir, muestreadas).

  • Tamaño de Muestra Mínimo

    • Se puede establecer un Tamaño de Muestra Mínimo para un Umbral Estadístico. El Umbral Estadístico solo ejecutará su prueba de significación estadística si el número de Métricas históricas es mayor o igual al Tamaño de Muestra Mínimo. El Tamaño de Muestra Mínimo debe ser menor o igual al Tamaño de Muestra Máximo, si ambos se especifican.
  • Tamaño de Muestra Máximo

    • Se puede establecer un Tamaño de Muestra Máximo para un Umbral Estadístico. El Umbral Estadístico se limitará a sólo las Métricas históricas más recientes limitadas al Tamaño de Muestra Máximo para su prueba de significación estadística. El Tamaño de Muestra Máximo debe ser mayor o igual al Tamaño de Muestra Mínimo, si ambos se especifican.
  • Tamaño de la Ventana

    • Se puede establecer un Tamaño de Ventana en segundos para un Umbral Estadístico. El Umbral Estadístico se limitará a sólo las Métricas históricas más recientes limitadas por la ventana de tiempo dada para su prueba de significación estadística.

Umbrales Porcentuales

Un Umbral Porcentual es el Umbral Estadístico más simple. Si una nueva Métrica está por debajo de un cierto porcentaje de la media (Límite Inferior) o por encima de un cierto porcentaje de la media (Límite Superior) de tus Métricas históricas, se genera una Alerta. Debe establecerse un Límite Inferior, un Límite Superior, o ambos. Los Umbrales Porcentuales son más eficaces cuando el valor de la Métrica debería permanecer dentro de un rango conocido y adecuado.

  • Límite Inferior del Umbral Porcentual

    • Un Límite Inferior del Umbral Porcentual puede ser cualquier porcentaje mayor o igual a cero en forma decimal (por ejemplo: se utiliza 0.10 para 10%). Se usa cuando un valor más pequeño indicaría una regresión de rendimiento.
    • Por ejemplo, si tuvieras un Umbral Porcentual con un Límite Inferior establecido en 0.10 y tus Métricas históricas tenían una media de 100, el Límite de Frontera Inferior sería 90 y cualquier valor menor a 90 generaría una Alerta.
  • Límite Superior del Umbral Porcentual

    • Un Límite Superior del Umbral Porcentual puede ser cualquier porcentaje mayor o igual a cero en forma decimal (por ejemplo: se utiliza 0.10 para 10%). Se usa cuando un valor mayor indicaría una regresión en el rendimiento.
    • Por ejemplo, si tuvieras un Umbral Porcentual con un Límite Superior establecido en 0.10 y tus Métricas históricas tenían una media de 100, el Límite de Frontera Superior sería 110 y cualquier valor mayor a 110 generaría una Alerta.
The Normal Distribution https://commons.wikimedia.org/wiki/File:The_Normal_Distribution.svg

Umbrales de z-score

Un umbral de z-score mide la cantidad de desviaciones estándar (σ) que una nueva métrica dista de la media de sus métricas históricas utilizando una puntuación z.

Los umbrales de z-score funcionan mejor cuando:

  • No hay diferencias extremas entre las ejecuciones de referencia
  • Las ejecuciones de referencia son totalmente independientes entre sí
  • El número de iteraciones para una única ejecución de referencia es menos del 10% de las métricas históricas
  • Hay al menos 30 métricas históricas (Tamaño de muestra mínimo >= 30)

Para los umbrales de z-score, las desviaciones estándar se expresan como un porcentaje acumulativo decimal. Si una nueva métrica se encuentra por debajo de un cierto porcentaje acumulativo del lado izquierdo (Límite Inferior) o por encima de un cierto porcentaje acumulativo del lado derecho (Límite Superior) de tus métricas históricas, se genera una alerta. Se debe establecer un Límite Inferior, un Límite Superior, o ambos.

  • Límite inferior del umbral de z-score

    • Un Límite Inferior del umbral de z-score puede ser cualquier decimal positivo entre 0.5 y 1.0. Donde 0.5 representa la media y 1.0 representa todos los posibles valores del lado izquierdo (-∞). Se utiliza cuando un valor menor indicaría una regresión de rendimiento.
    • Por ejemplo, si utilizaste un umbral de z-score con un Límite Inferior de 0.977 y tus métricas históricas tuvieron una media de 100 y una desviación estándar de 10, el Límite Inferior sería 80.05 y cualquier valor menor a 80.05 generaría una alerta.
  • Límite superior del umbral de z-score

    • Un Límite Superior del umbral de z-score puede ser cualquier decimal positivo entre 0.5 y 1.0. Donde 0.5 representa la media y 1.0 representa todos los posibles valores del lado derecho (∞). Se utiliza cuando un valor mayor indicaría una regresión de rendimiento.
    • Por ejemplo, si utilizaste un umbral de z-score con un Límite Superior de 0.977 y tus métricas históricas tuvieron una media de 100 y una desviación estándar de 10, el Límite Superior sería 119.95 y cualquier valor mayor a 119.95 generaría una alerta.

Umbrales de prueba t

Un umbral de prueba t mide el intervalo de confianza (IC) de cuán probable es que una nueva Métrica esté por encima o por debajo de la media de tus Métricas históricas utilizando una prueba t de Student.

Los umbrales de prueba t funcionan mejor cuando:

  • No hay diferencias extremas entre las ejecuciones de referencia
  • Las ejecuciones de referencia son totalmente independientes entre sí
  • El número de iteraciones para una única ejecución de referencia es menos del 10% de las Métricas históricas

Para los umbrales de prueba t, los intervalos de confianza se expresan como un porcentaje de confianza decimal. Si una nueva Métrica está por debajo de un cierto porcentaje de confianza del lado izquierdo (Margen inferior) o por encima de un cierto porcentaje de confianza del lado derecho (Margen superior) para tus Métricas históricas, se generará una Alerta. Debe establecerse un Margen inferior, un Margen superior, o ambos.

  • Margen inferior de umbral de prueba t

    • Un Margen inferior de umbral de prueba t puede ser cualquier número decimal positivo entre 0.5 y 1.0. Donde 0.5 representa la media y 1.0 representa todos los valores posibles del lado izquierdo (-∞). Se utiliza cuando un valor menor indicaría una regresión de rendimiento.
    • Por ejemplo, si usaste un umbral de prueba t con un Margen inferior de 0.977 y tenías 25 Métricas históricas con una media de 100 y una desviación estándar de 10, el Límite del Margen inferior sería 78.96 y cualquier valor menor a 78.96 generaría una Alerta.
  • Margen superior de umbral de prueba t

    • Un Margen superior de umbral de prueba t puede ser cualquier número decimal positivo entre 0.5 y 1.0. Donde 0.5 representa la media y 1.0 representa todos los valores posibles del lado derecho (∞). Se utiliza cuando un valor mayor indicaría una regresión de rendimiento.
    • Por ejemplo, si usaste un umbral de prueba t con un Margen superior de 0.977 y tenías 25 Métricas históricas con una media de 100 y una desviación estándar de 10, el Límite del Margen superior sería 121.04 y cualquier valor mayor a 121.04 generaría una Alerta.
The Log Normal Distribution https://mathworld.wolfram.com/images/eps-svg/LogNormalDistribution_800.svg

Umbrales Log Normales

Un Umbral Log Normal mide cuán probable es que una nueva Métrica esté por encima o por debajo del centro de ubicación de tus Métricas históricas utilizando una Distribución Log Normal.

Los Umbrales Log Normales funcionan mejor cuando:

  • Las ejecuciones de referencia son totalmente independientes una de otra
  • El número de iteraciones para una única ejecución de referencia es menos del 10% de las Métricas históricas
  • Todos los datos son positivos (el logaritmo natural de un número negativo es indefinido)

Para los Umbrales Log Normales, la probabilidad se expresa como un porcentaje decimal. Si una nueva Métrica está por debajo de un cierto porcentaje del lado izquierdo (Límite Inferior) o por encima de un cierto porcentaje del lado derecho (Límite Superior) de tus Métricas históricas se genera una Alerta. Se debe establecer un Límite Inferior, un Límite Superior, o ambos.

  • Límite Inferior del Umbral Log Normal

    • Un Límite Inferior del Umbral Log Normal puede ser cualquier decimal positivo entre 0.5 y 1.0. Donde 0.5 representa la ubicación central y 1.0 representa todos los posibles valores del lado izquierdo (-∞). Se utiliza cuando un valor menor indicaría una regresión en el rendimiento.
    • Por ejemplo, si utilizaste un Umbral Log Normal con un Límite Inferior de 0.977 y tuviste 25 Métricas históricas centradas alrededor de 100 y un valor atípico anterior en 200, el Límite del Límite Inferior sería 71.20 y cualquier valor menor que 71.20 generaría una Alerta.
  • Límite Superior del Umbral Log Normal

    • Un Límite Superior del Umbral Log Normal puede ser cualquier decimal positivo entre 0.5 y 1.0. Donde 0.5 representa la ubicación central y 1.0 representa todos los posibles valores del lado derecho (∞). Se utiliza cuando un valor mayor indicaría una regresión en el rendimiento.
    • Por ejemplo, si utilizaste un Umbral Log Normal con un Límite Superior de 0.977 y tuviste 25 Métricas históricas centradas alrededor de 100 y un valor atípico anterior en 200, el Límite del Límite Superior sería 134.18 y cualquier valor mayor que 134.18 generaría una Alerta.
Interquartile Range https://access.openupresources.org/curricula/our6-8math/embeds/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbTRmIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--941ca9b24415706ee262cc85b237c99ba4ca015b/6.8.19.Images.student.summary.03_en.svg

Umbrales del Rango Intercuartil

Un umbral del Rango Intercuartil mide cuántos múltiplos del rango intercuartil (IQR) una nueva Métrica está por encima o por debajo de la mediana de tus Métricas históricas. Si una nueva Métrica se encuentra por debajo de un cierto múltiplo del IQR desde la mediana (Límite Inferior) o por encima de un cierto múltiplo del IQR desde la mediana (Límite Superior) de tus Métricas históricas, se genera una Alerta. Debe establecerse un Límite Inferior, un Límite Superior, o ambos.

  • Límite Inferior del umbral del Rango Intercuartil

    • Un Límite Inferior del umbral del Rango Intercuartil puede ser cualquier multiplicador mayor o igual a cero (ej: use 2.0 para 2x). Se utiliza cuando un valor menor indicaría una regresión del rendimiento.
    • Por ejemplo, si tuvieras un umbral de Rango Intercuartil con un Límite Inferior establecido en 2.0 y tus Métricas históricas tenían una mediana de 100 y un rango intercuartil de 10 el Límite Inferior sería 80 y cualquier valor menos que 80 generaría una Alerta.
  • Límite Superior del umbral del Rango Intercuartil

    • Un Límite Superior del umbral del Rango Intercuartil puede ser cualquier multiplicador mayor o igual a cero (ej: use 2.0 para 2x). Se utiliza cuando un valor mayor indicaría una regresión del rendimiento.
    • Por ejemplo, si tuvieras un umbral de Rango Intercuartil con un Límite Superior establecido en 2.0 y tus Métricas históricas tenían una mediana de 100 y un rango intercuartil de 10 el Límite Superior sería 120 y cualquier valor mayor que 120 generaría una Alerta.

Umbrales de Rango Interquartílico Delta

Un umbral de Rango Interquartílico Delta mide cuántas veces el cambio porcentual promedio (Δ) rango interquartílico (IQR) una nueva Métrica está por encima o por debajo de la mediana de tus Métricas históricas. Si una nueva Métrica está por debajo de un cierto múltiplo del ΔIQR desde la mediana (Límite Inferior) o por encima de un cierto múltiplo del ΔIQR desde la mediana (Límite Superior) de tus Métricas históricas, se genera una Alerta. Debe establecerse un Límite Inferior, un Límite Superior, o ambos.

  • Límite Inferior del umbral de Rango Interquartílico Delta

    • Un Límite Inferior del umbral de Rango Interquartílico Delta puede ser cualquier multiplicador mayor o igual a cero (por ejemplo, usar 2.0 para 2x). Se usa cuando un valor más pequeño indicaría una regresión de rendimiento.
    • Por ejemplo, si tuvieras un umbral de Rango Interquartílico Delta con un Límite Inferior establecido en 2.0 y tus Métricas históricas tuvieran una mediana de 100, un rango interquartílico de 10, y un rango interquartílico delta promedio de 0.2 (20%) el Límite del Límite Inferior sería 60 y cualquier valor menor que 60 generaría una Alerta.
  • Límite Superior del umbral de Rango Interquartílico Delta

    • Un Límite Superior del umbral de Rango Interquartílico Delta puede ser cualquier multiplicador mayor o igual a cero (por ejemplo, usar 2.0 para 2x). Se usa cuando un valor mayor indicaría una regresión de rendimiento.
    • Por ejemplo, si tuvieras un umbral de Rango Interquartílico Delta con un Límite Superior establecido en 2.0 y tus Métricas históricas tuvieran una mediana de 100, un rango interquartílico de 10, y un rango interquartílico delta promedio de 0.2 (20%) el Límite del Límite Superior sería 140 y cualquier valor mayor que 140 generaría una Alerta.


🐰 ¡Felicidades! ¡Has aprendido todo sobre Umbrales & Alertas! 🎉


Sigue Adelante: Benchmarking Continuo ➡

🤖 Este documento fue generado automáticamente por OpenAI GPT-4. Puede que no sea exacto y contenga errores. Si encuentra algún error, abra un problema en GitHub.


Published: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Wed, March 27, 2024 at 7:50:00 AM UTC