All skills
github avatar

/phoenix-tracing

@4214189 official
by githubgithub/awesome-copilot40k stars
5,040

OpenInference semantic conventions and instrumentation for Phoenix AI observability. Use when implementing LLM tracing, creating custom spans, or deploying to production.

Use this Skill: https://skilld.dev/gh/github/awesome-copilot/phoenix-tracing

This session only. Nothing lands on disk.

referencessessions-python.md

≈584 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Sessions (Python)

Track multi-turn conversations by grouping traces with session IDs.

Setup

from phoenix.otel import using_session

with using_session(session_id="user_123_conv_456"):
    response = llm.invoke(prompt)

Best Practices

Bad: Only parent span gets session ID

from phoenix.otel import SpanAttributes
from opentelemetry import trace

span = trace.get_current_span()
span.set_attribute(SpanAttributes.SESSION_ID, session_id)
response = client.chat.completions.create(...)

Good: All child spans inherit session ID

with using_session(session_id):
    response = client.chat.completions.create(...)
    result = my_custom_function()

Why: using_session() propagates session ID to all nested spans automatically.

Session ID Patterns

import uuid

session_id = str(uuid.uuid4())
session_id = f"user_{user_id}_conv_{conversation_id}"
session_id = f"debug_{timestamp}"

Good: str(uuid.uuid4()), "user_123_conv_456" Bad: "session_1", "test", empty string

Multi-Turn Chatbot Example

import uuid
from phoenix.otel import using_session

session_id = str(uuid.uuid4())
messages = []

def send_message(user_input: str) -> str:
    messages.append({"role": "user", "content": user_input})

    with using_session(session_id):
        response = client.chat.completions.create(
            model="gpt-4",
            messages=messages
        )

    assistant_message = response.choices[0].message.content
    messages.append({"role": "assistant", "content": assistant_message})
    return assistant_message

Additional Attributes

from phoenix.otel import using_attributes

with using_attributes(
    user_id="user_123",
    session_id="conv_456",
    metadata={"tier": "premium", "region": "us-west"}
):
    response = llm.invoke(prompt)

LangChain Integration

LangChain threads are automatically recognized as sessions:

from langchain.chat_models import ChatOpenAI

response = llm.invoke(
    [HumanMessage(content="Hi!")],
    config={"metadata": {"thread_id": "user_123_thread"}}
)

Phoenix recognizes: thread_id, session_id, conversation_id

See Also

Source: SKILL.md on GitHub

No alerts9d4 checks · Risk SAFE
  • Gen Agent Trust Hub9d

    The phoenix-tracing skill provides comprehensive documentation and implementation guides for instrumenting LLM applications with Phoenix and OpenInference semantic conventions. It covers setup, manual and auto-instrumentation, and production best practices for both Python and TypeScript, with a strong focus on secure data handling and PII masking.

  • Socket9d

    No alerts

  • Snyk9d

    Risk: LOW · No issues

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 4214189. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 2 months ago
Other metadata
compatibility
Requires Phoenix server. Python skills need arize-phoenix-otel; TypeScript skills need @arizeai/phoenix-otel.
metadata
{
  "author": "oss@arize.com",
  "version": "1.0.0",
  "languages": "Python, TypeScript"
}
  • Python
  • TypeScript
  • phoenix
  • tracing
  • openinference
  • llm-observability
  • instrumentation
  • otel
  • arize

README badge

README badge for github/awesome-copilot/phoenix-tracing

Instruments LLM applications with OpenInference tracing in Phoenix, supporting auto-instrumentation of frameworks like OpenAI and LangChain or custom manual spans. Covers setup, span types (LLM calls, retrievers, agents, evaluators), production deployment with PII masking, and feedback annotation in Python and TypeScript.

Generated from the current SKILL.md.

Does this skill work with both Python and TypeScript?
Yes. The skill provides separate setup, instrumentation, and production guides for both Python (arize-phoenix-otel) and TypeScript (@arizeai/phoenix-otel).
What do I need to install to use this skill?
For Python: arize-phoenix-otel package. For TypeScript: @arizeai/phoenix-otel package. Both require a running Phoenix server endpoint.
Can I auto-instrument frameworks like OpenAI or LangChain?
Yes. The skill includes instrumentation-auto-{lang} references that cover auto-instrumentation for supported frameworks in both languages.
How do I track custom spans for my own operations?
Use the instrumentation-manual-{lang} references to create custom spans with decorators (Python) or wrappers (TypeScript), then refer to span-{type} files for the appropriate attribute schema.
Does this skill cover production deployment concerns?
Yes. The production-{lang} references address batch processing, PII masking, and deployment patterns for production environments.

Generated from the current SKILL.md. These answers refresh after source changes.