← Vetro Attest · Free Art. 12/14 checker · Free EU AI Act tools

Arize Phoenix to audit evidence

Phoenix collects OpenTelemetry traces, so you are one step from evidence already. What Phoenix stores is a working copy for debugging and evals. An auditor needs a copy that proves it is unedited.

1. Where your spans go today

Phoenix receives OTLP on port 6006 (HTTP, /v1/traces) and 4317 (gRPC). Put an otelcol-contrib Collector in front of it and aim your app's exporter at the Collector:

receivers:
  otlp:
    protocols:
      http: { endpoint: 0.0.0.0:4318 }
      grpc: { endpoint: 0.0.0.0:4317 }
exporters:
  otlphttp/phoenix:
    endpoint: http://phoenix:6006          # /v1/traces is appended
  file/evidence:
    path: /var/otel/traces.json
    format: json
service:
  pipelines:
    traces:
      receivers: [otlp]
      exporters: [otlphttp/phoenix, file/evidence]

2. One thing to know about OpenInference

Phoenix's own instrumentors emit OpenInference attributes (llm.model_name, llm.token_count.prompt, openinference.span.kind), not the OpenTelemetry GenAI conventions. The verifier reads the GenAI conventions (gen_ai.request.model, gen_ai.usage.*, gen_ai.operation.name). OpenInference spans are still attested: each one enters the signed ledger as a timestamped span with its name and outcome. They are not counted as model calls in the report, though. If you want the report to itemise model and tool calls, add an instrumentation that emits gen_ai.* (OpenLLMetry and OpenLIT both do, and so does the Vercel AI SDK). Phoenix displays both.

3. Merge and paste

jq -cs '{resourceSpans: map(.resourceSpans[])}' /var/otel/traces.json > run.otlp.json

Drop run.otlp.json into the verifier. Every traceId becomes a hash-chained run. The report covers EU AI Act record-keeping (Article 12) and human oversight (Article 14) and comes with a third-party countersignature and an RFC 3161 timestamp. The sample report shows the output before you paste anything.

Limits

It attests from the day you start keeping the file, and only what your spans contain. For call-site capture of prompts, responses and inline policy decisions, see Start in 1 minute and Vetro vs Arize Phoenix.

See a sample ledger verified in one click, check your own logs free or get the countersigned EU AI Act report.

Pricing