트레이스 버리기

트레이스 버리기 (Dropping Traces)

런타임 조건에 따라 특정 요청의 트레이싱을 아예 건너뛰는 기능을 설명하는 페이지예요. 샘플링이 확률적으로 일정 비율을 버리는 것과 달리, 트레이스를 버리는 기능은 어떤 요청을 추적할지를 코드로 완전히 제어할 수 있게 해줘요. 헬스 체크나 내부 테스트 요청 같은 노이즈를 Observatory에서 제외할 때 유용하답니다.

출처: 문서

본문

개요 (Overview)

트레이스 버리기(Dropping)는 런타임 조건에 따라 어떤 요청에 대해 트레이싱을 아예 건너뛰게 해줘요. 샘플링이 일정 비율의 트레이스를 무작위로 버리는 것과 달리, 이 기능은 어떤 요청을 추적할지 완전한 프로그램 제어를 제공해요.

이 기능은 조건에 따라 트레이스를 제외하고 싶을 때 유용해요 — 예를 들어 헬스 체크, 내부 테스트 요청, 합성 모니터링(synthetic monitoring), 스테이징 테넌트의 트래픽 등을 건너뛰어서 Observatory에 노이즈가 쌓이지 않거나 사용량으로 집계되지 않게 하기 좋죠.

트레이스 버리기 (Drop a Trace)

트레이스를 버리려면 작업이 시작되기 전에 요청을 억제 스코프(suppression scope)로 감싸면 돼요. 스코프 안의 어떤 것도 기록되거나 내보내지지 않아요 — 직접 만든 스팬도, 자동 계측된 프로바이더 호출도 마찬가지예요.

이 기능은 자동 계측된 통합에서도 동작해요. 억제 스코프는 래퍼 스팬을 만들지 않으면서 그 안에서 시작된 모든 트레이스를 버려요.

Python

from langchain_openai import ChatOpenAI
from confident_trace import init, suppress_tracing

init()
model = ChatOpenAI(model="gpt-4o")

def handle_request(query: str, is_internal: bool):
    if is_internal:
        with suppress_tracing():
            return model.invoke(query)  # this trace is dropped
    return model.invoke(query)          # this trace is sent

TypeScript

import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { init, withTracingSuppressed } from "confident-trace";

init();

const llmApp = (query: string) =>
  generateText({ model: openai("gpt-4o"), prompt: query });

const handleRequest = (query: string, isInternal: boolean) =>
  isInternal
    ? withTracingSuppressed(() => llmApp(query)) // this trace is dropped
    : llmApp(query);                             // this trace is sent

Vercel AI SDK 호출이 계측되도록 Node preload로 진입점을 실행하는 걸 잊지 마세요.

억제는 동기·비동기 코드 모두에서 동작해요. 스코프는 동시 요청 사이에 격리되어 있어서, 한 요청을 억제해도 동시에 실행 중인 다른 요청에는 영향을 주지 않아요.

버려진 트레이스는 완전히 폐기돼요 — Observatory에 나타나지 않고 사용량으로도 집계되지 않아요.

다음 단계 (Next Steps)

버리기는 절대 보고 싶지 않은 트래픽을 처리해요. 그 외의 모든 것에 대해서는 샘플링으로 볼륨을 조절할 수 있어요.

Sample Traces

트래픽이 많은 앱에서 볼륨과 비용을 관리하려고 일정 비율의 트레이스만 Confident AI로 보내요.

Mask Sensitive Data

트레이스가 프로세스를 떠나기 전에 PII를 마스킹하고 페이로드 크기를 제한해요.

더 알아보기