트레이스 이름 커스터마이즈

트레이스 이름 커스터마이즈 (Customize Trace Names)

트레이스에 이름을 붙여 Confident AI에서 더 잘 보이게 하는 방법을 다루는 페이지예요. 트레이스와 스팬 모두 이름을 가지며 UI 표시를 위해 마음대로 커스터마이즈할 수 있어요. "Support Request" 같은 좋은 이름은 관측소 목록에서 트레이스를 즉시 알아볼 수 있게 해준답니다.

출처: 문서

본문

개요 (Overview)

트레이스와 스팬 모두 이름을 가지며, 더 나은 UI 표시를 위해 마음대로 커스터마이즈할 수 있어요. 좋은 이름은 관측소 목록에서 트레이스를 즉시 알아볼 수 있게 해줘요 — "Support Request"는 어떤 함수가 가장 바깥쪽이었는지의 이름보다 훨씬 많은 정보를 알려주죠.

이 패턴은 자동 계측된 통합에서도 동작해요. 트레이스 컨텍스트는 래퍼 스팬을 만들지 않으면서 통합이 만든 트레이스에 이름을 붙여요.

트레이스에 이름 설정 (Set Name on Trace)

작업 주위에 트레이스 컨텍스트를 열고, 결과 트레이스가 사용할 이름을 제공해요:

Python

from langchain_openai import ChatOpenAI
from confident_trace import init, trace_context

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

def llm_app(query: str):
    with trace_context(name="Call LLM"):
        return model.invoke(query)

TypeScript

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

init();

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

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

기본적으로 트레이스에는 이름이 설정되지 않아요. 트레이스 컨텍스트는 그 안에서 시작된 트레이스에 이름을 공급하고, 트레이스에 이미 설정된 이름은 덮어쓰지 않아요. 트레이스 이름은 스팬 이름과 독립적이에요 — 하나를 설정해도 다른 하나가 바뀌지 않아요. 전체 동작은 Update Trace Properties에서 볼 수 있어요.

스팬에 이름 설정 (Set Name on Span)

스팬 이름은 스팬을 만들 때 설정해요. 함수 래퍼는 기본적으로 함수 이름을 사용하고, 더 읽기 쉬운 이름을 원할 때마다 name을 명시적으로 전달해요:

Python

from langchain_openai import ChatOpenAI
from confident_trace import init, span

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

@span(type="tool", name="Web Search")
def web_search(query: str):
    return search(query)

@span(type="agent", name="Call LLM")
def llm_app(query: str):
    context = web_search(query)
    return model.invoke(f"{context}\n\n{query}")

TypeScript

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

init();

const webSearch = span({ name: "Web Search", type: "tool" }, async (query: string) => {
    return search(query);
});

const llmApp = span(
    { name: "Call LLM", type: "agent" },
    async (query: string) => {
        const context = await webSearch(query);
        return generateText({
            model: openai("gpt-4o"),
            prompt: `${context}\n\n${query}`,
        });
    });

자동 계측이 만든 스팬은 통합이 이름을 붙이고 직접 이름을 바꿀 수 없어요. 그런 호출 주위에 커스텀 이름을 원한다면 자신의 span으로 그 호출을 감싸세요.

다음 단계 (Next Steps)

Span Types

스팬을 LLM·리트리버·툴·에이전트로 분류해서 올바른 아이콘과 타입별 필드로 렌더링되게 해요.

Tags

읽을 수 있는 이름 위에 필터 가능한 라벨을 트레이스에 추가해요.

더 알아보기