Datadog
Datadog
Haystack 파이프라인을 Datadog으로 트레이싱하는 방법을 알아봐요. DatadogTracer로 Haystack 실행을 Datadog 대시보드에서 볼 수 있어요.
출처: 문서
본문
- 트레이서 클래스:
DatadogTracer - 활성화 방법:
tracing.enable_tracing(DatadogTracer(ddtrace.tracer))로 트레이서를 활성화하거나,DatadogConnector컴포넌트를 파이프라인에 추가 - 콘텐츠 트레이싱:
HAYSTACK_CONTENT_TRACING_ENABLED를true로 설정해 컴포넌트 입력·출력을 트레이싱 - 패키지:
datadog-haystack - API 참조: datadog
개요 (Overview)
Datadog의 트레이싱 라이브러리 ddtrace를 통해 Haystack 파이프라인을 트레이싱해요. Haystack은 파이프라인 실행에 대한 상세 정보(API 호출, 컨텍스트 데이터, 프롬프트 등)를 수집하므로, Datadog에서 파이프라인 실행의 전체 트레이스를 볼 수 있어요.
설치 (Installation)
datadog-haystack 패키지를 설치하세요:
pip install datadog-haystack
사전 조건 (Prerequisites)
트레이스를 받을 방법(예: 실행 중인 Datadog Agent)이 필요해요. ddtrace 는 기본적으로 localhost:8126 의 Datadog Agent로 트레이스를 보내요.
ddtrace 를 표준 메커니즘으로 구성하세요. 예를 들어 DD_SERVICE, DD_ENV, DD_VERSION 환경 변수를 쓰거나 ddtrace-run 명령으로 애플리케이션을 실행하면 돼요. 자세한 내용은 ddtrace 문서를 참고하세요.
사용법 (Usage)
DatadogTracer 를 직접 활성화하면 컴포넌트를 추가하지 않고도 모든 Haystack 파이프라인을 트레이싱할 수 있어요. Haystack 컴포넌트를 import 하기 전에 HAYSTACK_CONTENT_TRACING_ENABLED 환경 변수를 설정해야 해요.
import os
os.environ["HAYSTACK_CONTENT_TRACING_ENABLED"] = "true"
import ddtrace
from haystack import Pipeline, tracing
from haystack.components.builders import ChatPromptBuilder
from haystack.components.generators.chat import OpenAIChatGenerator
from haystack.dataclasses import ChatMessage
from haystack_integrations.tracing.datadog import DatadogTracer
# Enable the Datadog tracer
tracing.enable_tracing(DatadogTracer(ddtrace.tracer))
pipe = Pipeline()
pipe.add_component("prompt_builder", ChatPromptBuilder())
pipe.add_component("llm", OpenAIChatGenerator())
pipe.connect("prompt_builder.prompt", "llm.messages")
messages = [
ChatMessage.from_system(
"Always respond in German even if some input data is in other languages.",
),
ChatMessage.from_user("Tell me about {{location}}"),
]
response = pipe.run(
data={
"prompt_builder": {
"template_variables": {"location": "Berlin"},
"template": messages,
},
},
)
print(response["llm"]["replies"][0])
각 파이프라인 실행은 프롬프트, 완성(completion), 메타데이터를 포함한 전체 실행 컨텍스트를 담는 트레이스를 만들어요. 이후 Datadog 대시보드에서 트레이스를 볼 수 있어요.
대안: DatadogConnector 컴포넌트
트레이싱을 파이프라인 정의의 일부로 관리하고 싶다면(예: YAML로 직렬화되도록), 대신 DatadogConnector 컴포넌트를 추가할 수 있어요. 초기화되는 즉시 같은 Datadog 트레이싱을 활성화해요.
참고: 전체 사용 예시는
DatadogConnector문서 페이지나 통합 페이지를 참고하세요.
더 알아보기 (Learn more)
- Custom Tracer — 커스텀 트레이서 구현하기
- DatadogConnector — 파이프라인에 트레이싱을 넣는 컴포넌트
- datadog API 참조
- GitHub 저장소