Arize Phoenix¶
The built-in, wizard-driven source. GigaFlow reads Phoenix's spans table over a
direct Postgres connection.
Prerequisites¶
- A Phoenix Postgres instance reachable from the backend, and its connection
string:
postgresql://user:pass@host:5432/dbname. - The table name (default
spans).
Connect (wizard)¶
export GIGAFLOW_BACKEND_URL=https://api.gigaflow.io/api/v1
export GIGAFLOW_API_KEY=<your key>
gigaflow setup
arize_phoenix.yml transform
→ registers the datasource (source_type=arize_phoenix, source_table=spans) →
runs the first sync.
Connect (API, if you prefer)¶
PID=$(curl -s -X POST "$GIGAFLOW_BACKEND_URL/projects/" -H "Authorization: Bearer $GIGAFLOW_API_KEY" \
-H 'Content-Type: application/json' -d '{"name":"my-phoenix-project"}' | python3 -c 'import sys,json;print(json.load(sys.stdin)["project_id"])')
curl -X PUT "$GIGAFLOW_BACKEND_URL/projects/$PID/transform" -H "Authorization: Bearer $GIGAFLOW_API_KEY" \
-H 'Content-Type: text/plain' --data-binary @gigaflow/transforms/arize_phoenix.yml
curl -X POST "$GIGAFLOW_BACKEND_URL/datasources/" -H "Authorization: Bearer $GIGAFLOW_API_KEY" \
-H 'Content-Type: application/json' -d "{
\"project_id\": \"$PID\",
\"name\": \"my-phoenix\",
\"source_type\": \"arize_phoenix\",
\"connection_url\": \"postgresql://user:pass@host:5432/phoenix\",
\"source_table\": \"spans\"
}"
Transform¶
Bundled: gigaflow/transforms/arize_phoenix.yml (maps OpenInference span_kind +
attributes.*). If your Phoenix uses non-standard attribute paths, copy it, edit,
and pass the path during setup (or PUT .../transform).
Run¶
gigaflow sync
gigaflow compute "SELECT trace_id FROM trace_metrics WHERE run_id IS NULL"
gigaflow inspect <trace_id>