대시보드

로그로 남기지 않은 것은 디버깅할 수 없습니다. Polylane이 사각지대를 찾아 메웁니다.

대기자 명단 등록
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.

빠진 로그 라인은 인시던트 도중에 발견됩니다. Polylane이 먼저 찾습니다.

  • 라우트를 읽습니다

    어떤 라우트가 로그를 남기고, 어떤 것이 트레이스하고, 어떤 것이 에러를 삼키는지. 빈틈은 증거와 수정이 붙은 발견 사항이 됩니다.

  • 새 스택이 아니라 여러분의 스택

    여러분의 로거, 여러분의 OpenTelemetry 설정, 여러분의 규칙. 새 의존성은 없고, 시크릿을 로그에 남기는 일도 없습니다.

  • 풀 리퀘스트로 오는 수정

    첫 번째는 연결할 때 도착합니다. 이후의 수정은 코드 리뷰와 함께 여러분의 브랜치에 얹혀 옵니다.

  • 멈출 때를 압니다

    이미 견고한가요? 그렇다고 말하고 멈춥니다.

다음 인시던트에는 아직 쓰지 않은 로그가 필요합니다. 필요해지기 전에 빈틈을 메우세요.