Server Timing on all Endpoints

created: domingo, may 7, 2023

Puesto que solo podemos mejorar aquello que medimos, comenzamos a implementar la Server Timing API en todos los endpoints HTTP.

La API proporciona medios sencillos para ampliar el encabezado HTTP con algunas mediciones de rendimiento.

Para una introducción general al tema puedes consultar la documentación de Mozilla al respecto (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 servidores axum listos para usar, (https://crates.io/crates/axum-server-timing).

Debido a que nuestra arquitectura abarca múltiples 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

temporización API del contenedor