Typesikre API'er fra frontend til backend med tRPC · Lektion

Middleware til logging og måling af ydeevne

Byg observability ind i Deres tRPC-API med middleware, der logger hvert kald og måler dets udførelsestid.

Lektion 4 af 413 trin

Middleware til logging og måling af ydeevne er en gratis Typesikre API'er fra frontend til backend med tRPC-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Typesikre API'er fra frontend til backend med tRPC, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Typesikre API'er fra frontend til backend med tRPC-kurset indeholder 4 lektioner i alt.

Hvorfor observere hvert kald?

Du bruger allerede middleware til godkendelse. Middleware er også perfekt til tværgående hensyn som logging og tidsmåling, der skal gælde for mange procedurer.

Opsummering af middleware

En tRPC-middleware pakker en procedure ind: Den kører kode, kalder next() og kan derefter køre kode, når resultatet foreligger.

const mw = t.middleware(async (opts) => {
  // before
  const result = await opts.next();
  // after
  return result;
});

En simpel logger

Log proceduretypen og stien ved hvert kald.

const logger = t.middleware(async ({ path, type, next }) => {
  console.log("-> " + type + " " + path);
  return next();
});

Måling af varighed

Registrer tiden før og efter next() for at beregne, hvor lang tid kaldet tog.

const timing = t.middleware(async ({ path, next }) => {
  const start = Date.now();
  const result = await next();
  const ms = Date.now() - start;
  console.log(path + " took " + ms + "ms");
  return result;
});

Undersøgelse af resultatet

Resultatet fortæller, om kaldet lykkedes, hvilket er nyttigt til logging af fejlrater.

const result = await next();
console.log(result.ok ? "ok" : "error");
return result;

Tilknytning til en procedure

Brug .use() til at anvende middleware, når du definerer en basisprocedure.

const loggedProcedure = t.procedure.use(logger).use(timing);

Genbrug på tværs af routere

Eksportér den udvidede procedure, og byg alle routere ud fra den, så logging automatisk gælder overalt.

export const appRouter = router({
  ping: loggedProcedure.query(() => "pong"),
});

Tilføjelse af anmodnings-id'er

Generér et entydigt id for hvert kald, så du kan sammenkæde logs på tværs af tjenester.

const withId = t.middleware(async ({ next, ctx }) => {
  const reqId = crypto.randomUUID();
  return next({ ctx: { ...ctx, reqId } });
});

Struktureret logging

Udsend JSON i stedet for almindelig tekst, så logs kan søges i værktøjer som Datadog eller ELK.

console.log(JSON.stringify({ path, type, ms, level: "info" }));

Middleware-rækkefølge

Middleware kører i den rækkefølge, den tilføjes. Placér tidsmålingen yderst, så den omfatter arbejdet i den indre middleware.

Sampling af logs

I API'er med stor trafik er det dyrt at logge hvert kald. Sample en procentdel af anmodningerne, så du bevarer overblikket uden at overbelaste din log-pipeline.

if (Math.random() < 0.1) console.log(path);

Hurtigt tjek

Test din viden om middleware.

Opsummering

Du har tilføjet observerbarhed med middleware:

  • Middleware kører kode før og efter next()
  • Brug den til logging, tidsmåling og anmodnings-id'er
  • Byg en delt basisprocedure, så den gælder overalt

God observerbarhed gør et tRPC-API langt nemmere at fejlfinde i produktion.

Gratis at komme i gang

Lær Typesikre API'er fra frontend til backend med tRPC med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
10
Lektioner
40

Ofte stillede spørgsmål

Er lektionen “Middleware til logging og måling af ydeevne” gratis?

Ja — alle 3 lektioner i læringssporet Typesikre API'er fra frontend til backend med tRPC, inklusive “Middleware til logging og måling af ydeevne”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Typesikre API'er fra frontend til backend med tRPC-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Middleware til logging og måling af ydeevne”?

Byg observability ind i Deres tRPC-API med middleware, der logger hvert kald og måler dets udførelsestid. Du øver dig i Typesikre API'er fra frontend til backend med tRPC med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Typesikre API'er fra frontend til backend med tRPC?

Der kræves ingen tidligere erfaring. Typesikre API'er fra frontend til backend med tRPC på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Middleware til logging og måling af ydeevne”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Typesikre API'er fra frontend til backend med tRPC-lektion?

Ja. Alle Typesikre API'er fra frontend til backend med tRPC-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Oprettelse af tRPC-context
  2. Godkendelses-middleware
  3. Tilpassede middleware-kæder
  4. Middleware til logging og måling af ydeevne
← Tilbage til Typesikre API'er fra frontend til backend med tRPC