Server Timing en todos los endpoints

created: domingo, may. 7, 2023

Como solo podemos mejorar aquello que medimos, empezamos a implementar la API de Server Timing en todos los endpoints HTTP.

La API ofrece medios sencillos para extender la cabecera HTTP con algunas mediciones de rendimiento.

Para una introducción general al tema puedes consultar la documentación de Mozilla sobre ello (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing).

En cuanto a la implementación real, usamos la siguiente implementación en Rust, que nos proporciona datos de rendimiento para el servidor axum listo para usar, (https://crates.io/crates/axum-server-timing).

Debido a que nuestra arquitectura abarca varios centros de datos, no publicamos estas métricas como una única medición. Hemos adoptado un enfoque por capas para nuestra red.

red en capas

Aquí hay algunos encabezados de ejemplo producidos por nuestra API.

server-timing: dtz-red;dur=765, dtz-blue;desc="dtz-blue(warm)";dur=538
content-length: 19276864
last-modified: Sun, 07 May 2023 10:25:33 GMT
date: Sun, 07 May 2023 10:27:52 GMT
content-type: application/octet-stream

tiempos de la API del contenedor