Server Timing su tutti gli endpoint

created: domenica, mag 7, 2023

Poiché possiamo migliorare solo ciò che misuriamo, abbiamo iniziato a implementare la Server Timing API su tutti gli endpoint HTTP.

L’API fornisce un modo semplice per estendere l’header HTTP con alcune misurazioni delle prestazioni.

Per una introduzione generale all’argomento puoi consultare la documentazione di Mozilla a riguardo (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing).

Per quanto riguarda l’implementazione effettiva, utilizziamo l’implementazione Rust seguente, che ci fornisce dati sulle prestazioni per il server axum out of the box, (https://crates.io/crates/axum-server-timing).

Poiché la nostra architettura si estende su più datacenter, non pubblichiamo queste metriche come una singola misurazione. Abbiamo adottato un approccio a livelli per la nostra rete.

rete a livelli

Ecco alcuni header di esempio prodotti dalla nostra 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

timing API del container