Temporización del Servidor en todos los Endpoints

created: domingo, may. 7, 2023

Ya que solo podemos mejorar lo que medimos, comenzamos a implementar la API de Temporización del Servidor en todos los endpoints HTTP.

La API proporciona 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 al respecto (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing).

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

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

red en capas

Aquí algunos ejemplos de cabeceras producidas 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 de la API del contenedor