Skip to main content

Arthur Observability SDK — telemetry, prompt management, and framework instrumentation

Project description

Arthur Observability SDK

Python SDK for sending traces and managing prompts with the Arthur GenAI Engine.


Installation

pip install arthur-observability-sdk

To instrument a specific framework, install its extra:

pip install "arthur-observability-sdk[openai]"
pip install "arthur-observability-sdk[langchain]"
pip install "arthur-observability-sdk[anthropic]"

How-to guides

Full guides are in docs/:

  • Getting started — initialisation, session/user context, framework instrumentation, shutdown
  • Prompt management — fetching and rendering versioned prompts, PROMPT span attributes

Quick start

from arthur_observability_sdk import Arthur

arthur = Arthur(
    api_key="your-api-key",       # or set ARTHUR_API_KEY env var
    task_id="<your-task-uuid>",
    service_name="my-app",
)
arthur.instrument_openai()

# Tag all spans in this block with session and user
with arthur.attributes(session_id="sess-1", user_id="user-42"):
    response = openai_client.chat.completions.create(...)

arthur.shutdown()

Prompt management

# Fetch a saved prompt by name (defaults to "latest" version)
prompt = arthur.get_prompt("system-instructions")

# Render with variable substitution
rendered = arthur.render_prompt(
    "rag-answer",
    variables={"context": "...", "question": "..."},
)
messages = rendered["messages"]

Supported instrumentors

Pass --extras to install any of these alongside the SDK.

Extra Framework Method
agent-framework Agent Framework instrument_agent_framework()
agentspec AgentSpec instrument_agentspec()
agno Agno instrument_agno()
anthropic Anthropic instrument_anthropic()
autogen AutoGen instrument_autogen()
autogen-agentchat AutoGen AgentChat instrument_autogen_agentchat()
bedrock AWS Bedrock instrument_bedrock()
beeai BeeAI instrument_beeai()
crewai CrewAI instrument_crewai()
dspy DSPy instrument_dspy()
google-adk Google ADK instrument_google_adk()
google-genai Google GenAI instrument_google_genai()
groq Groq instrument_groq()
guardrails Guardrails AI instrument_guardrails()
haystack Haystack instrument_haystack()
instructor Instructor instrument_instructor()
langchain LangChain instrument_langchain()
litellm LiteLLM instrument_litellm()
llama-index LlamaIndex instrument_llama_index()
mcp MCP instrument_mcp()
mistralai Mistral AI instrument_mistralai()
monkai-agent Monkai Agent instrument_monkai_agent()
openai OpenAI instrument_openai()
openai-agents OpenAI Agents instrument_openai_agents()
openlit OpenLIT instrument_openlit()
openllmetry OpenLLMetry instrument_openllmetry()
pipecat Pipecat instrument_pipecat()
portkey Portkey instrument_portkey()
pydantic-ai Pydantic AI instrument_pydantic_ai()
smolagents SmolAgents instrument_smolagents()
strands-agents Strands Agents instrument_strands_agents()
vertexai Vertex AI instrument_vertexai()
claude-agent-sdk Claude Agent SDK instrument_claude_agent_sdk()

Install all at once: pip install "arthur-observability-sdk[all]"


Developer guide

Setup

cd arthur-observability-sdk

# 1. Generate the API client (requires Node.js and Java)
./scripts/generate_openapi_client.sh generate python

# 2. Install dependencies (also registers the generated client in the venv)
./scripts/generate_openapi_client.sh install python

Note: python/src/arthur_genai_client/ is auto-generated and gitignored. You must run ./scripts/generate_openapi_client.sh generate python after cloning, and again whenever the GenAI Engine API changes. See Regenerating the API client.

Running tests

# Run from arthur-observability-sdk/python/
cd python

# Unit tests only (fast, no network)
uv run pytest tests -m "unit_tests" -v

# Integration/smoke tests (builds wheel, installs into a fresh venv)
uv run pytest tests -m "integration_tests" -v

# All tests
uv run pytest tests -v

Linting

# Run from arthur-observability-sdk/
./scripts/lint.sh

Or individually (from arthur-observability-sdk/python/):

cd python
uv run black src tests
uv run isort src tests --profile black
uv run autoflake --remove-all-unused-imports --in-place --recursive src tests
uv run mypy src/arthur_observability_sdk

Regenerating the API client

python/src/arthur_genai_client/ is auto-generated from the GenAI Engine OpenAPI spec and is not committed to the repository. Regenerate it after cloning or whenever the API changes:

./scripts/generate_openapi_client.sh generate python

Requires Node.js (any recent LTS) and Java 11+.

Building the wheel

uv build --wheel

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arthur_observability_sdk-0.0.7.post0-py3-none-any.whl (793.1 kB view details)

Uploaded Python 3

File details

Details for the file arthur_observability_sdk-0.0.7.post0-py3-none-any.whl.

File metadata

File hashes

Hashes for arthur_observability_sdk-0.0.7.post0-py3-none-any.whl
Algorithm Hash digest
SHA256 4c93fc9e27fc50b6ea20b09071a574211c8ff89272c7922edb3dc2211b6f33b7
MD5 98a8c1fd9f08cf663b8d5b4c628fa8c3
BLAKE2b-256 b9f5ea45362814a64c8a99ed89489f6cbe158b3e5fabdb9804a58f9c8ec08e1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for arthur_observability_sdk-0.0.7.post0-py3-none-any.whl:

Publisher: arthur-observability-sdk-release.yml on arthur-ai/arthur-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page