Aller au contenu

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 ​

npm
ts
import { Hono } from 'hono'
import {
  timing,
  setMetric,
  startTime,
  endTime,
  wrapTime,
} from 'hono/timing'
import type { TimingVariables } from 'hono/timing'

Utilisation ​

js
// 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 ​

ts
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.

Publié sous licence MIT.