mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Signed-off-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Tyler Longwell <tlongwell@block.xyz> Co-authored-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co> Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co> Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
73 lines
3.2 KiB
SQL
73 lines
3.2 KiB
SQL
-- Benchmark schema for harbor-buzz-orchestra runs.
|
|
--
|
|
-- Lives in the shared Postgres instance but is OWNED BY THE HARNESS, never by
|
|
-- Buzz migrations (canonical plan §two-domain rule). Idempotent: safe to apply
|
|
-- on every testbed bring-up.
|
|
--
|
|
-- docker exec -i <postgres> psql -U buzz -d buzz < sql/benchmark_schema.sql
|
|
|
|
CREATE SCHEMA IF NOT EXISTS benchmark;
|
|
|
|
-- One row per provisioned trial; written by BuzzTrialProvisioner.
|
|
CREATE TABLE IF NOT EXISTS benchmark.trial_manifest (
|
|
run_id text NOT NULL,
|
|
trial_id uuid NOT NULL,
|
|
manifest_hash text NOT NULL,
|
|
channel_id uuid NOT NULL,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
handle jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
archived_at timestamptz,
|
|
PRIMARY KEY (run_id, trial_id)
|
|
);
|
|
|
|
-- Immutable LLM receipts, ingested post-run from the accounting path
|
|
-- (Databricks AI Gateway inference tables first; LiteLLM shim fallback).
|
|
-- Authoritative for tokens/cost and orchestrator-vs-worker attribution;
|
|
-- Harbor AgentContext totals are a reconciliation checksum only.
|
|
CREATE TABLE IF NOT EXISTS benchmark.llm_receipts (
|
|
receipt_id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
run_id text NOT NULL,
|
|
trial_id uuid NOT NULL,
|
|
agent_id text NOT NULL,
|
|
role text NOT NULL,
|
|
condition text NOT NULL,
|
|
endpoint text NOT NULL,
|
|
model_revision text NOT NULL,
|
|
request_id text NOT NULL, -- gateway request identity
|
|
requested_at timestamptz NOT NULL,
|
|
latency_ms integer,
|
|
input_tokens bigint NOT NULL DEFAULT 0,
|
|
cached_input_tokens bigint NOT NULL DEFAULT 0,
|
|
output_tokens bigint NOT NULL DEFAULT 0,
|
|
cost_usd numeric(12, 6),
|
|
source text NOT NULL, -- 'ai_gateway' | 'litellm' | 'client'
|
|
raw jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
UNIQUE (source, request_id),
|
|
FOREIGN KEY (run_id, trial_id)
|
|
REFERENCES benchmark.trial_manifest (run_id, trial_id)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS llm_receipts_trial_idx
|
|
ON benchmark.llm_receipts (run_id, trial_id, agent_id);
|
|
|
|
-- Harness-recorded timing spans (monotonic clocks are authoritative for
|
|
-- latency). kind examples: 'trial', 'llm_call', 'terminal_exec',
|
|
-- 'terminal_queue_wait' — queue-wait is recorded separately from execution so
|
|
-- speed can be reported both as-run and queue-adjusted under the M1
|
|
-- serialized-broker policy.
|
|
CREATE TABLE IF NOT EXISTS benchmark.spans (
|
|
span_id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
run_id text NOT NULL,
|
|
trial_id uuid NOT NULL,
|
|
agent_id text, -- NULL for trial-level spans
|
|
kind text NOT NULL,
|
|
started_at timestamptz NOT NULL,
|
|
duration_ms bigint NOT NULL CHECK (duration_ms >= 0),
|
|
detail jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
FOREIGN KEY (run_id, trial_id)
|
|
REFERENCES benchmark.trial_manifest (run_id, trial_id)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS spans_trial_kind_idx
|
|
ON benchmark.spans (run_id, trial_id, kind);
|