Dashboard

Du kan ikke fejlfinde det, du ikke loggede. Polylane finder dine blinde vinkler og lukker dem.

Skriv dig på ventelisten
Observability improvements for #218 polylane +22 −2
Requests do not produce one context-rich event 3 affected routes · found after the last sync
server/api/checkout.post.ts mirrors your existing OpenTelemetry setup; no new dependencies
export default defineEventHandler(async (event) => {
const body = await readBody(event);
- const order = await createOrder(body);
- return { orderId: order.id };
+ return tracer.startActiveSpan("checkout", async (span) => {
+ const canonical: Record<string, unknown> = {
+ route: "checkout",
+ requestId: event.context.requestId,
+ cartId: body.cartId,
+ traceId: span.spanContext().traceId,
+ };
+ try {
+ const order = await createOrder(body);
+ span.setAttributes({ "order.id": order.id, "order.amount_cents": order.amountCents });
+ Object.assign(canonical, { orderId: order.id, amountCents: order.amountCents, outcome: "ok" });
+ return { orderId: order.id };
+ } catch (err) {
+ span.recordException(err);
+ span.setStatus({ code: SpanStatusCode.ERROR });
+ canonical.outcome = "error";
+ throw err;
+ } finally {
+ span.end();
+ emitCanonicalLogLine(canonical);
+ }
+ });
});
Opened against the pull request's own branch, so it can merge before the branch does.

Du opdager den manglende loglinje midt i en hændelse. Polylane finder den først.

  • Den læser dine routes

    Hvilke logger, hvilke tracer, hvilke sluger fejl. Hullerne bliver fund, hvert med beviser og en rettelse.

  • Din stak, ikke en ny

    Din logger, din OpenTelemetry-opsætning, dine konventioner. Ingen nye afhængigheder, aldrig en logget secret.

  • Rettelser som pull requests

    Den første kommer, når du forbinder. De senere følger med kodegennemgange, mod din branch.

  • Den ved, hvornår den skal stoppe

    Allerede solidt? Så siger den det og stopper.

Din næste hændelse har brug for logs, du ikke skriver endnu. Luk hullerne, før du får brug for dem.