트레이싱 시작하기
트레이싱 시작하기 (Get Started with Tracing)
이 가이드는 Langfuse에 첫 트레이스를 수집(ingest)하는 과정을 안내해요. 트레이싱이 무엇이고 왜 중요한지 이해하고 싶다면 먼저 Observability 개요를 확인해 보세요. Langfuse에서 트레이스가 어떻게 구조화되고 백그라운드에서 어떻게 작동하는지 자세히 알아보려면 핵심 개념 (Core Concepts)을 참고하세요.
출처: 문서
본문
Langfuse는 오픈소스예요. Langfuse Cloud를 사용하거나(Langfuse가 호스팅, 무료 티어, 인프라 불필요) 셀프 호스트할 수 있어요. 계측(instrumentation) 코드는 두 경우 모두 동일해요.
에이전트 설치 (Agentic installation)
Langfuse Agent Skill을 설치하면 코딩 에이전트가 모든 Langfuse 기능에 접근할 수 있어요. 에이전트가 MCP를 지원한다면 Langfuse Docs MCP server(https://langfuse.com/api/mcp, 인증 불필요)도 추가해서 작업 중 최신 문서를 찾아볼 수 있게 하세요.
코딩 에이전트에게 요청Cursor 플러그인수동 설치
코딩 에이전트에게 GitHub 저장소를 가리키며 스킬을 설치하고 트레이싱을 시작하라고 지시하세요.
Agent instruction
Install the Langfuse Agent Skill from github.com/langfuse/skills
and use it to add tracing to this application with Langfuse
following best practices.
Langfuse는 스킬을 자동으로 포함하는 Cursor Plugin을 제공해요.
그런 다음 에이전트에게 요청하세요:
Agent instruction
Add tracing to this application with Langfuse following best practices.
npm을 통한 설치(skills CLI):
npx skills add langfuse/skills --skill "langfuse"
특정 에이전트를 직접 지정하려면:
npx skills add langfuse/skills --skill "langfuse" --agent "<agent-id>"
수동으로 스킬 복제하기
- 안정적인 위치에 저장소를 클론하세요
git clone https://github.com/langfuse/skills.git /path/to/langfuse-skills
- 에이전트의 skills 디렉토리가 존재하는지 확인하세요
mkdir -p /path/to/<agent-skill-root>/skills
- 스킬 폴더를 심링크하세요
ln -s /path/to/langfuse-skills/skills/langfuse /path/to/<agent-skill-root>/skills/langfuse
그런 다음 에이전트에게 요청하세요:
Agent instruction
Add tracing to this application with Langfuse following best practices.
수동 설치 (Manual installation)
이 가이드는 Langfuse 트레이싱을 수동으로 시작하는 데 도움을 줘요.
API 키 얻기
- Langfuse 계정 만들기 또는 Langfuse 셀프 호스트.
- 프로젝트 설정에서 새 API 자격 증명을 만들어요.
첫 트레이스 수집하기
프레임워크, SDK, 또는 OpenTelemetry 설정 중 하나를 골라 시작해요. 애플리케이션이 이미 OTEL span을 내보내고 있다면 OpenTelemetry 가이드부터 시작하세요. (Langfuse는 span을 observations라고 불러요. span은 observation의 특정 유형이기도 해요.)
OpenAI SDK (Python)OpenAI SDK (JS/TS)Vercel AI SDKLangChain (Python)LangChain (JS/TS)Python SDKJS/TS SDKOpenTelemetry (API)더 많은 통합
OpenAI SDK (Python)
Langfuse의 OpenAI SDK는 OpenAI 클라이언트를 대체하는 드롭인(drop-in) 대체품이에요. 코드 작성 방식을 바꾸지 않고도 모델 호출을 자동으로 기록해요. 이미 OpenAI 파이썬 SDK를 사용 중이라면 코드를 최소한만 바꿔 Langfuse를 쓰기 시작할 수 있어요.
먼저 Langfuse OpenAI SDK를 설치해요. 래핑된 OpenAI 클라이언트를 포함하며 백그라운드에서 트레이스를 보내요.
pip install langfuse
SDK가 어떤 프로젝트에 쓸지 알도록 Langfuse 자격 증명을 환경 변수로 설정해요.
.env
LANGFUSE_SECRET_KEY = "sk-lf-..."
LANGFUSE_PUBLIC_KEY = "pk-lf-..."
LANGFUSE_BASE_URL = "https://cloud.langfuse.com" # 🇪🇺 EU region
# Other Langfuse data regions include 🇺🇸 US: https://us.cloud.langfuse.com, 🇯🇵 Japan: https://jp.cloud.langfuse.com and ⚕️ HIPAA: https://hipaa.cloud.langfuse.com
일반 OpenAI import를 Langfuse의 OpenAI 드롭인으로 바꿔요. 일반 OpenAI 클라이언트처럼 동작하면서 각 호출을 기록해요.
from langfuse.openai import openai
OpenAI SDK를 평소처럼 사용해요. 래퍼가 프롬프트, 모델, 출력을 캡처해 Langfuse로 전달해요.
completion = openai.chat.completions.create(
name="test-chat",
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a very accurate calculator. You output only the result of the calculation."},
{"role": "user", "content": "1 + 1 = "}],
metadata={"someMetadataKey": "someValue"},
)
OpenAI SDK (JS/TS)
Langfuse의 JS/TS OpenAI SDK는 공식 클라이언트를 래핑해서 모델 호출이 자동으로 트레이스되어 Langfuse로 전송되게 해요. 이미 OpenAI JavaScript SDK를 사용 중이라면 코드를 최소한만 바꾸면 돼요.
먼저 Langfuse OpenAI 래퍼를 설치해요. 공식 클라이언트를 확장해 백그라운드에서 트레이스를 보내요.
패키지 설치
npm install @langfuse/openai
자격 증명 추가
SDK가 어떤 프로젝트에 쓸지 알도록 Langfuse 자격 증명을 환경 변수에 추가해요.
.env
LANGFUSE_SECRET_KEY = "sk-lf-..."
LANGFUSE_PUBLIC_KEY = "pk-lf-..."
LANGFUSE_BASE_URL = "https://cloud.langfuse.com" # 🇪🇺 EU region
# Other Langfuse data regions include 🇺🇸 US: https://us.cloud.langfuse.com, 🇯🇵 Japan: https://jp.cloud.langfuse.com and ⚕️ HIPAA: https://hipaa.cloud.langfuse.com
OpenTelemetry 초기화
Langfuse 통합이 내부적으로 각 OpenAI 호출의 데이터를 캡처하는 데 사용하는 OpenTelemetry SDK를 설치해요.
npm install @opentelemetry/sdk-node
다음으로 Node SDK를 초기화해요. 전용 instrumentation 파일에서 하거나 메인 파일 맨 위에서 직접 할 수 있어요.
Inline 설정instrumentation 파일
인라인 설정이 시작하기 가장 간단한 방법이에요. 메인 파일이 먼저 실행되고 import 순서가 단순한 프로젝트에 잘 맞아요.
이제 LangfuseSpanProcessor를 초기화하고 SDK를 시작해요. LangfuseSpanProcessor는 수집된 데이터를 가져와 Langfuse 프로젝트로 보내는 부분이에요.
중요: 데이터 손실을 피하려면 트레이스해야 할 로직을 초기화하기 전에 SDK를 시작하세요.
import { NodeSDK } from "@opentelemetry/sdk-node";
import { LangfuseSpanProcessor } from "@langfuse/otel";
const sdk = new NodeSDK({
spanProcessors: [new LangfuseSpanProcessor()],
});
sdk.start();
instrumentation 파일은 시작 순서가 복잡한 프레임워크(Next.js, serverless, bundler)를 쓰거나, 트레이싱이 항상 먼저 초기화되는 깔끔하고 예측 가능한 위치를 원할 때 선호돼요.
각 OpenAI 호출에 대한 데이터를 모으는 collector를 설정하는 instrumentation.ts 파일을 만들어요. LangfuseSpanProcessor는 수집된 데이터를 가져와 Langfuse 프로젝트로 보내는 부분이에요.
instrumentation.ts
import { NodeSDK } from "@opentelemetry/sdk-node";
import { LangfuseSpanProcessor } from "@langfuse/otel";
const sdk = new NodeSDK({
spanProcessors: [new LangfuseSpanProcessor()],
});
sdk.start();
이후의 모든 import가 트레이싱이 활성화된 상태로 실행되도록 instrumentation.ts 파일을 먼저 import해요.
index.ts
import "./instrumentation"; // Must be the first import
일반 OpenAI 클라이언트를 래핑해요. 이제부터 각 OpenAI 요청이 자동으로 수집되어 Langfuse로 전달돼요.
OpenAI 클라이언트 래핑
import OpenAI from "openai";
import { observeOpenAI } from "@langfuse/openai";
const openai = observeOpenAI(new OpenAI());
const res = await openai.chat.completions.create({
messages: [{ role: "system", content: "Tell me a story about a dog." }],
model: "gpt-4o",
max_tokens: 300,
});
Vercel AI SDK
Langfuse의 Vercel AI SDK 통합은 OpenTelemetry를 사용해 AI 호출을 자동으로 트레이스해요. 이미 Vercel AI SDK를 사용 중이라면 코드를 최소한만 바꿔 시작할 수 있어요.
패키지 설치
AI SDK 7, OpenTelemetry, Langfuse 통합 패키지를 설치해요.
npm install ai @ai-sdk/openai @langfuse/vercel-ai-sdk @langfuse/tracing @langfuse/otel @opentelemetry/sdk-node
자격 증명 추가
SDK가 어떤 프로젝트에 쓸지 알도록 Langfuse 자격 증명을 환경 변수로 설정해요.
.env
LANGFUSE_SECRET_KEY = "sk-lf-..."
LANGFUSE_PUBLIC_KEY = "pk-lf-..."
LANGFUSE_BASE_URL = "https://cloud.langfuse.com" # 🇪🇺 EU region
# Other Langfuse data regions include 🇺🇸 US: https://us.cloud.langfuse.com, 🇯🇵 Japan: https://jp.cloud.langfuse.com and ⚕️ HIPAA: https://hipaa.cloud.langfuse.com
Langfuse와 함께 OpenTelemetry 초기화
애플리케이션 시작 시 한 번, Langfuse span processor로 OpenTelemetry SDK를 설정하고 Langfuse Vercel AI SDK 텔레메트리 통합을 등록해요.
import { registerTelemetry } from "ai";
import { NodeSDK } from "@opentelemetry/sdk-node";
import { LangfuseSpanProcessor } from "@langfuse/otel";
import { LangfuseVercelAiSdkIntegration } from "@langfuse/vercel-ai-sdk";
const sdk = new NodeSDK({
spanProcessors: [new LangfuseSpanProcessor()],
});
sdk.start();
registerTelemetry(new LangfuseVercelAiSdkIntegration());
AI SDK 호출 실행
텔레메트리가 등록된 후 AI SDK 7은 기본적으로 텔레메트리를 내보내요. 텔레메트리를 사용해 함수 이름을 설정하거나, 선택한 런타임 컨텍스트 키를 포함하거나, 특정 호출의 텔레메트리를 끌 수 있어요.
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
const { text } = await generateText({
model: openai("gpt-5.1"),
prompt: "What is the weather like today?",
telemetry: {
functionId: "weather-chat",
},
});
LangChain (Python)
Langfuse의 LangChain 통합은 콜백 핸들러를 사용해 트레이스를 기록하고 Langfuse로 보내요. 이미 LangChain을 사용 중이라면 코드를 최소한만 바꿔 시작할 수 있어요.
먼저 Langfuse SDK와 LangChain SDK를 설치해요.
pip install langfuse langchain-openai
콜백 핸들러가 어떤 프로젝트에 쓸지 알도록 Langfuse 자격 증명을 환경 변수로 추가해요.
.env
LANGFUSE_SECRET_KEY = "sk-lf-..."
LANGFUSE_PUBLIC_KEY = "pk-lf-..."
LANGFUSE_BASE_URL = "https://cloud.langfuse.com" # 🇪🇺 EU region
# Other Langfuse data regions include 🇺🇸 US: https://us.cloud.langfuse.com, 🇯🇵 Japan: https://jp.cloud.langfuse.com and ⚕️ HIPAA: https://hipaa.cloud.langfuse.com
Langfuse 콜백 핸들러를 초기화해요. LangChain은 자체 콜백 시스템이 있고, Langfuse는 그 콜백을 들으며 chain과 LLM이 무엇을 하는지 기록해요.
from langfuse.langchain import CallbackHandler
langfuse_handler = CallbackHandler()
chain에 Langfuse 콜백 핸들러를 추가해요. Langfuse 콜백 핸들러는 LangChain의 이벤트 시스템에 연결돼요. chain이 실행되거나 LLM이 호출될 때마다 LangChain이 이벤트를 내보내고, 핸들러가 그 이벤트를 Langfuse의 트레이스와 observation으로 바꿔요.
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
llm = ChatOpenAI(model_name="gpt-4o")
prompt = ChatPromptTemplate.from_template("Tell me a joke about {topic}")
chain = prompt | llm
response = chain.invoke(
{"topic": "cats"},
config={"callbacks": [langfuse_handler]})
LangChain (JS/TS)
Langfuse의 LangChain 통합은 콜백 핸들러를 사용해 트레이스를 기록하고 Langfuse로 보내요. 이미 LangChain을 사용 중이라면 코드를 최소한만 바꿔 시작할 수 있어요.
먼저 Langfuse 코어 SDK와 LangChain 통합을 설치해요.
npm install @langfuse/core @langfuse/langchain
통합이 트레이스를 보낼 프로젝트를 알도록 Langfuse 자격 증명을 환경 변수로 추가해요.
.env
LANGFUSE_SECRET_KEY = "sk-lf-..."
LANGFUSE_PUBLIC_KEY = "pk-lf-..."
LANGFUSE_BASE_URL = "https://cloud.langfuse.com" # 🇪🇺 EU region
# Other Langfuse data regions include 🇺🇸 US: https://us.cloud.langfuse.com, 🇯🇵 Japan: https://jp.cloud.langfuse.com and ⚕️ HIPAA: https://hipaa.cloud.langfuse.com
OpenTelemetry 초기화
Langfuse 통합이 내부적으로 각 OpenAI 호출의 데이터를 캡처하는 데 사용하는 OpenTelemetry SDK를 설치해요.
npm install @opentelemetry/sdk-node
다음으로 Node SDK를 초기화해요. 전용 instrumentation 파일에서 하거나 메인 파일 맨 위에서 직접 할 수 있어요.
Inline 설정instrumentation 파일
인라인 설정이 시작하기 가장 간단한 방법이에요. 메인 파일이 먼저 실행되고 import 순서가 단순한 프로젝트에 잘 맞아요.
이제 LangfuseSpanProcessor를 초기화하고 SDK를 시작해요. LangfuseSpanProcessor는 수집된 데이터를 가져와 Langfuse 프로젝트로 보내는 부분이에요.
중요: 데이터 손실을 피하려면 트레이스해야 할 로직을 초기화하기 전에 SDK를 시작하세요.
import { NodeSDK } from "@opentelemetry/sdk-node";
import { LangfuseSpanProcessor } from "@langfuse/otel";
const sdk = new NodeSDK({
spanProcessors: [new LangfuseSpanProcessor()],
});
sdk.start();
instrumentation 파일은 시작 순서가 복잡한 프레임워크(Next.js, serverless, bundler)를 쓰거나, 트레이싱이 항상 먼저 초기화되는 깔끔하고 예측 가능한 위치를 원할 때 선호돼요.
각 OpenAI 호출에 대한 데이터를 모으는 collector를 설정하는 instrumentation.ts 파일을 만들어요. LangfuseSpanProcessor는 수집된 데이터를 가져와 Langfuse 프로젝트로 보내는 부분이에요.
instrumentation.ts
import { NodeSDK } from "@opentelemetry/sdk-node";
import { LangfuseSpanProcessor } from "@langfuse/otel";
const sdk = new NodeSDK({
spanProcessors: [new LangfuseSpanProcessor()],
});
sdk.start();
이후의 모든 import가 트레이싱이 활성화된 상태로 실행되도록 instrumentation.ts 파일을 먼저 import해요.
index.ts
import "./instrumentation"; // Must be the first import
마지막으로 Langfuse CallbackHandler를 초기화하고 chain에 추가해요. CallbackHandler는 LangChain 에이전트의 액션을 듣고 그 정보를 Langfuse로 보낼 준비를 해요.
import { CallbackHandler } from "@langfuse/langchain";
// Initialize the Langfuse CallbackHandler
const langfuseHandler = new CallbackHandler();
{ callbacks: [langfuseHandler] } 줄이 CallbackHandler를 에이전트에 연결해요.
import { createAgent, tool } from "@langchain/core/agents";
import * as z from "zod";
const getWeather = tool(
(input) => `It's always sunny in ${input.city}!`,
{
name: "get_weather",
description: "Get the weather for a given city",
schema: z.object({
city: z.string().describe("The city to get the weather for"),
}),
}
);
const agent = createAgent({
model: "openai:gpt-5-mini",
tools: [getWeather],
});
console.log(
await agent.invoke(
{ messages: [{ role: "user", content: "What's the weather in San Francisco?" }] },
{ callbacks: [langfuseHandler] }
)
);
Python SDK
Langfuse Python SDK는 애플리케이션을 계측하는 방법을 완전히 제어할 수 있고 어떤 프레임워크와도 함께 쓸 수 있어요.
1. 패키지 설치:
pip install langfuse
2. 자격 증명 추가:
.env
LANGFUSE_SECRET_KEY = "sk-lf-..."
LANGFUSE_PUBLIC_KEY = "pk-lf-..."
LANGFUSE_BASE_URL = "https://cloud.langfuse.com" # 🇪🇺 EU region
# Other Langfuse data regions include 🇺🇸 US: https://us.cloud.langfuse.com, 🇯🇵 Japan: https://jp.cloud.langfuse.com and ⚕️ HIPAA: https://hipaa.cloud.langfuse.com
3. 애플리케이션 계측:
계측(instrumentation)은 애플리케이션에서 일어나는 일을 기록해 Langfuse로 보낼 수 있게 하는 코드를 추가하는 것을 의미해요. Python SDK로 코드를 계측하는 방법은 크게 세 가지가 있어요.
이 예시에서는 컨텍스트 매니저를 사용할 거예요. 데코레이터나 수동 observation을 사용할 수도 있어요.
from langfuse import get_client
langfuse = get_client()
# Create a span using a context manager
with langfuse.start_as_current_observation(as_type="span", name="process-request") as span:
# Your processing logic here
span.update(output="Processing complete")
# Create a nested generation for an LLM call
with langfuse.start_as_current_observation(as_type="generation", name="llm-response", model="gpt-3.5-turbo") as generation:
# Your LLM call logic here
generation.update(output="Generated response")
# All spans are automatically closed when exiting their context blocks
# Flush events in short-lived applications
langfuse.flush()
langfuse.flush() — 언제 호출해야 하나요?
4. 애플리케이션을 실행하고 Langfuse에서 트레이스를 확인:
JS/TS SDK
Langfuse JS/TS SDK로 어떤 LLM이나 에이전트든 래핑할 수 있어요.
패키지 설치
Langfuse 트레이싱 SDK, Langfuse OpenTelemetry 통합, OpenTelemetry Node SDK를 설치해요.
npm install @langfuse/tracing @langfuse/otel @opentelemetry/sdk-node
자격 증명 추가
트레이싱 SDK가 기록된 데이터를 보낼 Langfuse 프로젝트를 알도록 Langfuse 자격 증명을 환경 변수에 추가해요.
.env
LANGFUSE_SECRET_KEY = "sk-lf-..."
LANGFUSE_PUBLIC_KEY = "pk-lf-..."
LANGFUSE_BASE_URL = "https://cloud.langfuse.com" # 🇪🇺 EU region
# Other Langfuse data regions include 🇺🇸 US: https://us.cloud.langfuse.com, 🇯🇵 Japan: https://jp.cloud.langfuse.com and ⚕️ HIPAA: https://hipaa.cloud.langfuse.com
OpenTelemetry 초기화
Langfuse 통합이 내부적으로 각 OpenAI 호출의 데이터를 캡처하는 데 사용하는 OpenTelemetry SDK를 설치해요.
npm install @opentelemetry/sdk-node
다음으로 Node SDK를 초기화해요. 전용 instrumentation 파일에서 하거나 메인 파일 맨 위에서 직접 할 수 있어요.
Inline 설정instrumentation 파일
인라인 설정이 시작하기 가장 간단한 방법이에요. 메인 파일이 먼저 실행되고 import 순서가 단순한 프로젝트에 잘 맞아요.
이제 LangfuseSpanProcessor를 초기화하고 SDK를 시작해요. LangfuseSpanProcessor는 수집된 데이터를 가져와 Langfuse 프로젝트로 보내는 부분이에요.
중요: 데이터 손실을 피하려면 트레이스해야 할 로직을 초기화하기 전에 SDK를 시작하세요.
import { NodeSDK } from "@opentelemetry/sdk-node";
import { LangfuseSpanProcessor } from "@langfuse/otel";
const sdk = new NodeSDK({
spanProcessors: [new LangfuseSpanProcessor()],
});
sdk.start();
instrumentation 파일은 시작 순서가 복잡한 프레임워크(Next.js, serverless, bundler)를 쓰거나, 트레이싱이 항상 먼저 초기화되는 깔끔하고 예측 가능한 위치를 원할 때 선호돼요.
각 OpenAI 호출에 대한 데이터를 모으는 collector를 설정하는 instrumentation.ts 파일을 만들어요. LangfuseSpanProcessor는 수집된 데이터를 가져와 Langfuse 프로젝트로 보내는 부분이에요.
instrumentation.ts
import { NodeSDK } from "@opentelemetry/sdk-node";
import { LangfuseSpanProcessor } from "@langfuse/otel";
const sdk = new NodeSDK({
spanProcessors: [new LangfuseSpanProcessor()],
});
sdk.start();
이후의 모든 import가 트레이싱이 활성화된 상태로 실행되도록 instrumentation.ts 파일을 먼저 import해요.
index.ts
import "./instrumentation"; // Must be the first import
애플리케이션 계측
계측은 애플리케이션에서 일어나는 일을 기록해 Langfuse로 보낼 수 있게 하는 코드를 추가하는 것을 의미해요. 여기서 OpenTelemetry가 그 기록을 수집하는 시스템 역할을 해요.
server.ts
import { startActiveObservation, startObservation } from "@langfuse/tracing";
// startActiveObservation creates a trace for this block of work.
// Everything inside automatically becomes part of that trace.
await startActiveObservation("user-request", async (span) => {
span.update({
input: { query: "What is the capital of France?" },
});
// This generation will automatically be a child of "user-request" because of the startObservation function.
const generation = startObservation(
"llm-call",
{
model: "gpt-4",
input: [{ role: "user", content: "What is the capital of France?" }],
},
{ asType: "generation" },
);
// ... your real LLM call would happen here ...
generation
.update({
output: { content: "The capital of France is Paris." }, // update the output of the generation
})
.end(); // mark this nested observation as complete
// Add final information about the overall request
span.update({ output: "Successfully answered." });
});
전체 JS/TS SDK 문서 노트북 OpenTelemetry (OTEL) 가이드
OpenTelemetry (API)
OTEL SDK, collector, 또는 일반 curl에서 OTLP span을 Langfuse API로 직접 보내요:
export LANGFUSE_PUBLIC_KEY="pk-lf-..."
export LANGFUSE_SECRET_KEY="sk-lf-..."
export LANGFUSE_HOST="https://cloud.langfuse.com" # EU region
TRACE_ID=$(openssl rand -hex 16)
SPAN_ID=$(openssl rand -hex 8)
START=$(($(date +%s) * 1000000000))
curl -X POST "$LANGFUSE_HOST/api/public/otel/v1/traces" \
-u "$LANGFUSE_PUBLIC_KEY:$LANGFUSE_SECRET_KEY" \
-H "Content-Type: application/json" \
-H "x-langfuse-ingestion-version: 4" \
--data-binary @- <<JSON
{"resourceSpans": [{"scopeSpans": [{"spans": [{
"traceId": "$TRACE_ID",
"spanId": "$SPAN_ID",
"name": "hello-langfuse",
"startTimeUnixNano": "$START",
"endTimeUnixNano": "$((START + 1000000))",
"attributes": [
{
"key": "langfuse.observation.input",
"value": {"stringValue": "Hello, Langfuse!"}
},
{
"key": "langfuse.observation.output",
"value": {"stringValue": "Hello from curl!"}
}
]
}]}]}]}
JSON
LANGFUSE_HOST를 데이터 리전 또는 셀프 호스트 배포로 지정하세요. 모델, 사용, 사용자, 세션 및 기타 Langfuse 속성을 추가하려면 OpenTelemetry 속성 매핑을 참고하세요.
더 많은 통합
Langfuse가 지원하는 모든 통합과 프레임워크를 살펴보세요.
OpenTelemetry (OTEL) · Vercel AI SDK · Llamaindex · CrewAI · Ollama · LiteLLM · AutoGen · Google ADK · 모든 통합
Langfuse에서 트레이스 확인하기
애플리케이션을 실행한 후 Langfuse 인터페이스를 방문해 방금 만든 트레이스를 확인하세요. (Langfuse의 예시 LangGraph 트레이스)
예상과 다른 결과가 나왔나요?
- Langfuse를 설정했는데 대시보드에 트레이스가 보이지 않아요. 어떻게 해결하나요?
- 트레이스 input과 output이 비어 있는 이유는 무엇인가요?
- Langfuse 트레이스에 HTTP 요청이나 데이터베이스 쿼리가 보이는 이유는 무엇인가요?
- 다른 것도 궁금하다면 물어보세요
트레이스가 지나치게 복잡하거나 압도적으로 보인다면 트레이싱 설정 자체를 다시 살펴볼 필요가 있을 수 있어요. 모범 사례 가이드와 비교해 보세요.
다음 단계
이제 첫 트레이스가 Langfuse에 있으니, Langfuse Academy의 Monitoring 챕터를 읽고 트레이스를 이해하는 법을 배워 보세요.
정확히 원하는 것이 있다면 가장 흔한 기능들을 소개할게요:
- 멀티턴 애플리케이션을 위해 트레이스를 세션으로 그룹화
- 트레이스를 개별 사용자에게 귀속시키기
- 나중에 필터링할 수 있도록 트레이스에 속성 추가하기
- 모델 사용량과 비용 추적
- 점수로 애플리케이션 품질 모니터링
- 지표가 임계값을 넘으면 알림 받기
- 커스텀 대시보드에서 비용, 지연, 볼륨, 품질 분석
사이드바의 Features 아래를 살펴보면 특정 주제에 대한 가이드를 찾을 수 있어요.