LangGraph agent observability로 이벤트 전송 및 확인
제어된 애플리케이션 경계에서 LangGraph agent observability를 사용하고, 이벤트 계약을 작게 유지하고, 집계 뷰를 구축하기 전에 알려진 결과를 확인하세요.
- 1
결과를 선택하세요
상태 저장 에이전트 모니터링
- 2
계약 정의
thread_id, invocation_id, graph_name 및 호출 상태
- 3
결과에서 방출
제어된 래퍼나 콜백에서 노드 이벤트를 기록하세요. 이 예제는 각 그래프 호출만 기록합니다.
- 4
증거를 확인하세요
Exercise a known fixture, then inspect agent_graph_invocation for one correctly typed terminal row.
시작하기 전에
시작하기 전에
- @langchain/langgraph 및 @langchain/core
- 체크포인트 재개 시 유지하는 안정적인 스레드 ID
- 서버측 TELEMETRY_API_KEY
- fetch와 AbortSignal.timeout을 지원하는 서버 런타임
배송 설정
서버 측 설치 및 초기화
이 서버 측 예제는 서버 측 키와 시간 제한이 있는 fetch 요청으로 Log API에 이벤트를 보냅니다. Telemetry SDK를 초기화할 필요가 없습니다. 브라우저 번들, 클라이언트에 표시되는 환경 변수, 소스 제어, 로그 및 예외 메시지에서 수집 자격 증명을 유지하세요.
- 1제한된 네트워크 동작을 갖춘 재사용 가능한 서버 측 전달 클라이언트 하나를 준비합니다.
- 2성공, 실패, 재시도 또는 시간 초과 경계에 결과 이벤트를 추가합니다.
- 3알림을 활성화하기 전에 제어된 고정 장치를 보내고 저장된 행을 검사하십시오.
스니펫
하나의 체계적인 이벤트로 시작하세요
워크플로가 완료, 실패 또는 재시도되는 위치에 이 셰이프를 추가합니다. 그런 다음 실제 필드에서 대시보드를 구축합니다.
LangGraph agent observability 이벤트
async function emitGraphInvocation(data) {
try {
const delivery = await fetch("https://api.telemetry.sh/log", {
method: "POST",
headers: {
Authorization: process.env.TELEMETRY_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ table: "agent_graph_invocation", data }),
signal: AbortSignal.timeout(1000),
});
if (!delivery.ok) throw new Error("telemetry_delivery_unconfirmed");
} catch {
try { console.warn("Telemetry delivery unconfirmed"); } catch {}
}
}
async function observedInvoke(graph, input, { threadId, config = {} }) {
const startedAt = performance.now();
const outcome = {
thread_id: threadId,
invocation_id: crypto.randomUUID(),
graph_name: "support_agent",
status: "failed",
release: process.env.APP_RELEASE,
};
try {
const result = await graph.invoke(input, {
...config,
configurable: { ...config.configurable, thread_id: threadId },
});
outcome.status = "returned";
// Metadata inspection must not replace the graph's result.
try {
const paused = Array.isArray(result?.__interrupt__) &&
result.__interrupt__.length > 0;
if (paused) outcome.status = "paused";
if (Array.isArray(result?.messages)) {
outcome.message_count = result.messages.length;
}
} catch {}
return result;
} finally {
outcome.duration_ms = Math.round(performance.now() - startedAt);
await emitGraphInvocation(outcome);
}
}
const threadId = crypto.randomUUID(); // Keep this ID when resuming this thread.
const result = await observedInvoke(graph, { messages }, { threadId });이벤트 스키마
thread_id, invocation_id, graph_name 및 호출 상태
tool_name, 시도, latency_ms 및 error_type
checkpoint_count, human_handoff, reviewer_outcome 및 릴리스
설정 확인하기
체크포인트 1
제어된 래퍼나 콜백에서 노드 이벤트를 기록하세요. 이 예제는 각 그래프 호출만 기록합니다.
체크포인트 2
체크포인트를 재개할 때 스레드 ID를 유지하고 호출마다 새 ID를 부여하세요. 원래 입력이나 재개용 Command를 전달하고 다른 호출 설정을 보존하세요.
체크포인트 3
그래프 상태, 메시지, 체크포인트 내용 또는 도구 인수를 일괄적으로 보내지 마십시오.
체크포인트 4
호출이 반환되었다고 작업 성공이 입증되는 것은 아닙니다. __interrupt__에 반환된 동적 중단은 일시 정지로, 예외를 던진 호출은 실패로 기록합니다. 정적 중단점, 노드와 도구 이벤트, 검토된 작업 품질은 별도 계측이 필요합니다.
체크포인트 5
Log API 직접 요청은 협력 방식의 1초 제한 시간과 보호된 진단 출력을 사용합니다. 전송 실패가 그래프 결과나 오류를 바꾸지 않지만, 전송을 기다리면 지연이 늘어날 수 있습니다. 이 예제는 영속 큐, 재시도 또는 종료 시 큐 비우기를 구현하지 않습니다.
검증
이벤트가 도착했음을 증명하세요.
알려진 성공 및 실패 사례를 연습한 후 이를 실행하십시오. 최종 이벤트 계약이 스니펫과 다른 경우 대체 테이블 이름을 바꾸세요.
LangGraph agent observability 확인 쿼리
SELECT *
FROM agent_graph_invocation
ORDER BY timestamp_utc DESC
LIMIT 20;구현 참조
새로운 프로덕션 경로를 활성화하기 전에 이벤트 계약, 데이터 안전 지침, 업스트림 기본 문서를 검토하세요.
이벤트를 기록할 위치
결과 이벤트를 작고 복구 가능하게 유지
이 패턴은 다음을 제공합니다.
- 업스트림 워크플로우 옆에 제한된 SQL 지원 결과가 있습니다.
- 대시보드, 알림 및 교차 이벤트 상관 관계를 위한 안정적인 필드입니다.
- 성공, 실패, 재시도 및 시간 초과 동작을 검증하기 위한 고정 장치 기반 경로입니다.
이 패턴은 제공하지 않습니다
- OTLP 내보내기, 자동 수집 파이프라인 또는 자세한 추적 및 진단 로그를 대체합니다.
- 페이로드에 이벤트 ID가 포함되어 있기 때문에 정확히 한 번만 전달됩니다.
- 원시 공급자 페이로드, 사용자 콘텐츠, 자격 증명 또는 규제 데이터를 수집할 수 있는 권한입니다.
이벤트 스키마 예제
이 워크플로의 이벤트 스키마
쿼리 또는 스니펫을 프로덕션에 적용하기 전에 행 그레인, 방출 경계, 필수 유형, 개인 정보 보호 클래스, 예제 페이로드 및 유효성 검사 체크리스트를 검토하세요.
관련 제품 기능
이 워크플로를 다음에서 계속하세요. AI 에이전트 모니터링
검토 가능한 SQL을 사용하여 에이전트 실행, 도구 사용, 모델 비용, 품질 및 제품 결과를 연결하세요.
관련 SQL 레시피
더 많은 SQL 예제
이 워크플로의 구조화된 필드에 대해 쿼리를 실행하고, 예제 결과를 검사하고, 유용한 답변을 대시보드 또는 알림으로 전환하세요.
구현 제품군별로 찾아보기
관련 통합 패턴 비교
이 통합과 페어링할 템플릿
더 많은 통합
클로드 에이전트 SDK Telemetry
프롬프트나 도구 페이로드를 저장하지 않고도 Claude Agent SDK 실행 결과, 기간, 도구 활동, 회전, 비용 및 승인된 제품 신호를 추적할 수 있습니다.
가이드 열기피단틱 AI 에이전트 Telemetry
안전한 구조화된 이벤트를 통해 Pydantic AI 실행 결과, 검증된 출력, 재시도, 도구 활동, 대기 시간, 사용량 및 제품 승인을 측정합니다.
가이드 열기마스트라 에이전트 Telemetry
내장된 추적 및 평가와 함께 Mastra 에이전트 및 워크플로 결과, 도구 활동, 대기 시간, 재시도, 비용 및 제품 승인을 추적합니다.
가이드 열기