feat(observability): Phoenix 대상 추가 — 같은 span 에 OpenInference 속성 동봉, PHOENIX_HOST 로 /v1/traces. -12 는 도커 불가라 pip 로 뜨는 Phoenix 로 감(deploy/phoenix)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
lee-hyeon-cheol
2026-09-22 15:39:08 +09:00
co-authored by Claude Fable 5.1
parent 340e8e4beb
commit e60c5bc273
8 changed files with 162 additions and 26 deletions
+16
View File
@@ -107,3 +107,19 @@ async def test_finalize_sends_user_trace(lf_server, django_user_model, monkeypat
assert spans[1]["startTimeUnixNano"] == "1100000000" and spans[1]["endTimeUnixNano"] == "1300000000"
assert spans[2]["status"] == {"code": 2, "message": "no such file"} and a2["langfuse.observation.level"] == "ERROR"
assert stream_mod is not None
@override_settings(LANGFUSE={"host": "", "public_key": "", "secret_key": "", "gateway": False, "phoenix": "http://px.test", "project": "codeassist"})
async def test_phoenix_target_no_auth_and_openinference_attrs(lf_server):
root = langfuse.trace("t9", "chat", userId="u@x.com", sessionId="s9", input="질문", output="", usage=langfuse.usage_of(7, 3), model="581")
tool = langfuse.tool_span("t9", "read", parent=root, input={"filePath": "a.md"}, output="본문")
assert await langfuse.send([root, tool]) and len(lf_server) == 1
req = lf_server[0]
assert req["url"] == "http://px.test/v1/traces" and req["auth"] is None
res = {a["key"]: a["value"]["stringValue"] for a in req["body"]["resourceSpans"][0]["resource"]["attributes"]}
assert res["openinference.project.name"] == "codeassist"
r, tl = _attrs(req["body"]["resourceSpans"][0]["scopeSpans"][0]["spans"][0]), _attrs(req["body"]["resourceSpans"][0]["scopeSpans"][0]["spans"][1])
assert r["openinference.span.kind"] == "LLM" and r["input.value"] == "질문" and r["output.value"] == ""
assert r["llm.model_name"] == "581" and r["llm.token_count.total"] == "10" and r["session.id"] == "s9" and r["user.id"] == "u@x.com"
assert tl["openinference.span.kind"] == "TOOL" and tl["tool.name"] == "read" and json.loads(tl["input.value"]) == {"filePath": "a.md"}