Middleware Server-Timing
Le middleware Server-Timing fournit des mesures de performance dans les en-têtes de réponse.
Information
Remarque : Sur Cloudflare Workers, les mesures temporelles peuvent être imprécises, car les horloges n’indiquent que l’heure de la dernière opération d’entrée/sortie.
Importation
import { Hono } from 'hono'
import {
timing,
setMetric,
startTime,
endTime,
wrapTime,
} from 'hono/timing'
import type { TimingVariables } from 'hono/timing'Utilisation
// Specify the variable types to infer the `c.get('metric')`:
type Variables = TimingVariables
const app = new Hono<{ Variables: Variables }>()
// add the middleware to your router
app.use(timing());
app.get('/', async (c) => {
// add custom metrics
setMetric(c, 'region', 'europe-west3')
// add custom metrics with timing, must be in milliseconds
setMetric(c, 'custom', 23.8, 'My custom Metric')
// start a new timer
startTime(c, 'db');
const data = await db.findMany(...);
// end the timer
endTime(c, 'db');
// ...or you can also just wrap a Promise using this function:
const data = await wrapTime(c, 'db', db.findMany(...));
return c.json({ response: data });
});Activation conditionnelle
const app = new Hono()
app.use(
'*',
timing({
// c: Context of the request
enabled: (c) => c.req.method === 'POST',
})
)Résultat

Options
facultatif total: boolean
Afficher la durée totale de réponse. La valeur par défaut est true.
facultatif enabled: boolean | (c: Context) => boolean
Indique si les mesures temporelles doivent être ajoutées aux en-têtes. La valeur par défaut est true.
facultatif totalDescription: string
Description de la durée totale de réponse. La valeur par défaut est Total Response Time.
facultatif autoEnd: boolean
Indique si startTime() doit se terminer automatiquement à la fin de la requête. Si cette option est désactivée, les chronomètres qui n’ont pas été arrêtés manuellement ne sont pas affichés.
facultatif crossOrigin: boolean | string | (c: Context) => boolean | string
L’origine depuis laquelle cet en-tête de mesures temporelles peut être lu.
- Si false, uniquement depuis l’origine actuelle.
- Si true, depuis toutes les origines.
- Si une chaîne, depuis ces domaines. Plusieurs domaines doivent être séparés par une virgule.
La valeur par défaut est false. Consultez la documentation pour en savoir plus.