The Request ID middleware generates a unique ID for each request and stores it in the Router context, this can be useful to log the request and response information and correlate them.
import { createRequestIDMiddleware } from "remix-utils/middleware/request-id";export const [requestIDMiddleware, getRequestID] = createRequestIDMiddleware(); Copy
import { createRequestIDMiddleware } from "remix-utils/middleware/request-id";export const [requestIDMiddleware, getRequestID] = createRequestIDMiddleware();
To use it, you need to add it to the middleware array in your app/root.tsx file.
middleware
app/root.tsx
import { requestIDMiddleware } from "~/middleware/request-id.server";export const middleware: Route.MiddlewareFunction[] = [requestIDMiddleware]; Copy
import { requestIDMiddleware } from "~/middleware/request-id.server";export const middleware: Route.MiddlewareFunction[] = [requestIDMiddleware];
And you can use the getRequestID function in your loaders, actions, and other middleware to get the request ID.
getRequestID
import { getRequestID } from "~/middleware/request-id.server";export async function loader({ request }: Route.LoaderArgs) { let requestID = getRequestID(); // ...} Copy
import { getRequestID } from "~/middleware/request-id.server";export async function loader({ request }: Route.LoaderArgs) { let requestID = getRequestID(); // ...}
By default the request ID is a UUID, but you can customize it by passing a function to the createRequestIDMiddleware function.
createRequestIDMiddleware
import { createRequestIDMiddleware } from "remix-utils/middleware/request-id";export const [requestIDMiddleware, getRequestID] = createRequestIDMiddleware({ generator() { return Math.random().toString(36).slice(2); }, }); Copy
import { createRequestIDMiddleware } from "remix-utils/middleware/request-id";export const [requestIDMiddleware, getRequestID] = createRequestIDMiddleware({ generator() { return Math.random().toString(36).slice(2); }, });
The middleware also gets the request ID from the X-Request-ID header if it's present, this can be useful to correlate requests between services.
X-Request-ID
If you want to use a different header you can pass the header name to the createRequestIDMiddleware function.
import { createRequestIDMiddleware } from "remix-utils/middleware/request-id";export const [requestIDMiddleware, getRequestID] = createRequestIDMiddleware({ header: "X-Correlation-ID", }); Copy
import { createRequestIDMiddleware } from "remix-utils/middleware/request-id";export const [requestIDMiddleware, getRequestID] = createRequestIDMiddleware({ header: "X-Correlation-ID", });
Sergio XalambrÃ
The Request ID middleware generates a unique ID for each request and stores it in the Router context, this can be useful to log the request and response information and correlate them.
To use it, you need to add it to the
middlewarearray in yourapp/root.tsxfile.And you can use the
getRequestIDfunction in your loaders, actions, and other middleware to get the request ID.By default the request ID is a UUID, but you can customize it by passing a function to the
createRequestIDMiddlewarefunction.The middleware also gets the request ID from the
X-Request-IDheader if it's present, this can be useful to correlate requests between services.If you want to use a different header you can pass the header name to the
createRequestIDMiddlewarefunction.Author
Sergio XalambrÃ