Cómo usar Bencher para realizar seguimiento a los Puntos de Referencia
La forma más sencilla de rastrear tus puntos de referencia es el subcomando CLI bencher run
.
Consulta el resumen del establecimiento de puntos de referencia para una explicación más detallada.
Este es un ejemplo de un subcomando CLI bencher run
para rastrear puntos de referencia en una rama de funciones llamada de manera apropiada feature-branch
:
bencher run \
--project save-walter-white \
--token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjbGllbnQiLCJleHAiOjE2NzQwNjA3NTAsImlhdCI6MTY3MTQ2ODc1MCwiaXNzIjoiYmVuY2hlci5kZXYiLCJzdWIiOiJzYXVsQGJldHRlcmNhbGxzYXVsLmNvbSIsIm9yZyI6bnVsbH0.CABcvWlPobAHs7wsdR6wX5p0R2jaCd7RmpsnMp5pwEc \
--adapter json \
--if-branch feature-branch \
--else-if-branch main \
--else-branch \
--testbed phoenix \
--err \
"bencher mock"`
- El Proyecto ya debe existir. Establezca la bandera
--project
o la variable de entornoBENCHER_PROJECT
al slug o UUID del Proyecto. (ex:--project save-walter-white
) - La ficha de API ya debe existir. Establezca la bandera
--token
o la variable de entornoBENCHER_API_TOKEN
a la ficha de API. (ex:--token ...
) - Opcional: Establezca la bandera
--adapter
o la variable de entornoBENCHER_ADAPTER
al nombre del adaptador deseado. Si no se establece esto, entonces el Adaptadormagic
será utilizado. Consultelos adaptadores del arnés de referencia para una visión general completa. (ex:--adapter json
) - Existen varias opciones para establecer la rama del proyecto. Consulte la selección de la rama para una visión general completa.
- Utilice la rama actual si ya existe. (ex:
--if-branch feature-branch
) - Cree una copia de los datos de la rama objetivo si ya existe. (ex:
--else-if-branch main
) - De lo contrario, cree una nueva rama con el nombre proporcionado a
--if-branch
, que seríafeature-branch
. (ex:--else-branch
)
- Utilice la rama actual si ya existe. (ex:
- Opcional: Establezca la bandera
--testbed
o la variable de entornoBENCHER_TESTBED
al slug o UUID del Testbed. El Testbed ya debe existir. Si no se establece esto, entonces el Testbedlocalhost
predeterminado será utilizado. (ex:--testbed phoenix
) - Establezca el comando para fallar si se genera una Alerta. Para que se genere una Alerta, ya debe existir un Umbral. (ex:
--err
) - Ejecute sus puntos de referencia y genere un Informe a partir de los resultados. (ex:
"bencher mock"
)
Benchmarking Relativo
El benchmarking relativo realiza una comparación lado a lado de dos commits.
Esto puede ser útil cuando se trata con entornos ruidosos de CI/CD,
donde el recurso disponible puede variar mucho entre las ejecuciones.
Este es un ejemplo de un subcomando CLI bencher run
para realizar benchmarking relativo en una rama de features apropiadamente llamada feature-branch
:
git checkout feature-branch
export FEATURE_BRANCH=feature-branch-$(git rev-parse --short HEAD)
git checkout main
bencher run \
--if-branch "$FEATURE_BRANCH" \
--else-branch \
--iter 3 \
"bencher mock"
git checkout feature-branch
bencher threshold create \
--metric-kind latency \
--branch "$FEATURE_BRANCH" \
--testbed localhost \
--test t \
--right-side 0.95
bencher run \
--if-branch "$FEATURE_BRANCH" \
--iter 3 \
--fold min \
--err \
"bencher mock"
- Haga checkout de la rama de features. (ex:
feature-branch
) - Crea una variable de entorno que es el nombre de la rama de features concatenado con el ID corto del commit de git. ¡Esto es importante! Garantiza que por cada ejecución se crea una nueva rama.
- Checkout de la rama objetivo. (ex:
main
) - Ejecute
bencher run
para la rama objetivo:- La rama dada todavía no existirá. (ex:
--if-branch "$FEATURE_BRANCH"
) - Por lo tanto, se creará. (ex:
--else-branch
) - Ejecute los benchmarks tres veces. (ex:
--iter 3
)
- La rama dada todavía no existirá. (ex:
- Haga checkout de la rama de features. (ex:
feature-branch
) - Cree un Umbral para la rama de features:
- El Típo de Métrica para los benchmarks es Latencia. (ex:
--metric-kind latency
) - La Rama es la rama de features con el ID de commit de git adjunto. (ex:
--branch "$FEATURE_BRANCH"
) - El Testbed se está ejecutando localmente. (ex:
--testbed localhost
) - Hay menos de 30 métricas, use una Prueba de la t de Student. (ex:
--test t
) - Establezca un límite en el lado derecho del 95.0%, debido a que una Latencia mayor indica una regresión de rendimiento. (ex:
--right-side 0.95
)
- El Típo de Métrica para los benchmarks es Latencia. (ex:
- Ejecute
bencher run
para la rama de features:- La Rama existirá ya que fue recién creada. (ex:
--if-branch "$FEATURE_BRANCH"
) - Ejecute las pruebas tres veces. (ex:
--iter 3
) - Dobla todas las tres Métricas en el valor mínimo. (ex:
--fold min
) - Establezca el comando para fallar si se genera una Alerta por el Umbral. (ex:
--err
)
- La Rama existirá ya que fue recién creada. (ex:
🐰 ¡Felicidades! ¡Has aprendido cómo usar Bencher para realizar seguimiento a los puntos de referencia! 🎉