mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 01:40:21 +08:00
224 lines
7.9 KiB
MySQL
224 lines
7.9 KiB
MySQL
|
|
-- Generated by aether-data-schema from schema/logical/*.toml.
|
||
|
|
-- Do not edit generated files directly; edit logical schema or explicit overrides instead.
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_hourly (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
hour_utc INTEGER NOT NULL,
|
||
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
success_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
error_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
actual_total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
avg_response_time_ms REAL NOT NULL DEFAULT 0,
|
||
|
|
is_complete INTEGER NOT NULL DEFAULT 0,
|
||
|
|
aggregated_at INTEGER,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
UNIQUE (hour_utc)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_summary (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
cutoff_date INTEGER NOT NULL,
|
||
|
|
all_time_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
all_time_success_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
all_time_error_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
all_time_input_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
all_time_output_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
all_time_cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
all_time_cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
all_time_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
all_time_actual_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
total_users INTEGER NOT NULL DEFAULT 0,
|
||
|
|
active_users INTEGER NOT NULL DEFAULT 0,
|
||
|
|
total_api_keys INTEGER NOT NULL DEFAULT 0,
|
||
|
|
active_api_keys INTEGER NOT NULL DEFAULT 0,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_hourly_user (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
hour_utc INTEGER NOT NULL,
|
||
|
|
user_id TEXT NOT NULL,
|
||
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
success_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
error_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
UNIQUE (hour_utc, user_id)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_hourly_user_model (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
hour_utc INTEGER NOT NULL,
|
||
|
|
user_id TEXT NOT NULL,
|
||
|
|
model TEXT NOT NULL,
|
||
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
UNIQUE (hour_utc, user_id, model)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS user_model_usage_counts (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
user_id TEXT NOT NULL,
|
||
|
|
model TEXT NOT NULL,
|
||
|
|
usage_count INTEGER NOT NULL DEFAULT 0,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
UNIQUE (user_id, model)
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_user_model_usage_user ON user_model_usage_counts (user_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_user_model_usage_model ON user_model_usage_counts (model);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_hourly_model (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
hour_utc INTEGER NOT NULL,
|
||
|
|
model TEXT NOT NULL,
|
||
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
avg_response_time_ms REAL NOT NULL DEFAULT 0,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
UNIQUE (hour_utc, model)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_hourly_provider (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
hour_utc INTEGER NOT NULL,
|
||
|
|
provider_name TEXT NOT NULL,
|
||
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
UNIQUE (hour_utc, provider_name)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_daily (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
date INTEGER NOT NULL,
|
||
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
success_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
error_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
actual_total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
input_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
output_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
cache_creation_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
cache_read_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
avg_response_time_ms REAL NOT NULL DEFAULT 0,
|
||
|
|
fallback_count INTEGER NOT NULL DEFAULT 0,
|
||
|
|
unique_models INTEGER NOT NULL DEFAULT 0,
|
||
|
|
unique_providers INTEGER NOT NULL DEFAULT 0,
|
||
|
|
is_complete INTEGER NOT NULL DEFAULT 0,
|
||
|
|
aggregated_at INTEGER,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
p50_response_time_ms INTEGER,
|
||
|
|
p90_response_time_ms INTEGER,
|
||
|
|
p99_response_time_ms INTEGER,
|
||
|
|
p50_first_byte_time_ms INTEGER,
|
||
|
|
p90_first_byte_time_ms INTEGER,
|
||
|
|
p99_first_byte_time_ms INTEGER,
|
||
|
|
UNIQUE (date)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_daily_model (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
date INTEGER NOT NULL,
|
||
|
|
model TEXT NOT NULL,
|
||
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
avg_response_time_ms REAL NOT NULL DEFAULT 0,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
UNIQUE (date, model)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_daily_provider (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
date INTEGER NOT NULL,
|
||
|
|
provider_name TEXT NOT NULL,
|
||
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
UNIQUE (date, provider_name)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_daily_api_key (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
api_key_id TEXT NOT NULL,
|
||
|
|
date INTEGER NOT NULL,
|
||
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
success_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
error_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
api_key_name TEXT,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
UNIQUE (date, api_key_id)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_daily_error (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
date INTEGER NOT NULL,
|
||
|
|
error_category TEXT NOT NULL,
|
||
|
|
provider_name TEXT,
|
||
|
|
model TEXT,
|
||
|
|
count INTEGER NOT NULL DEFAULT 0,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
UNIQUE (date, error_category, provider_name, model)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS stats_user_daily (
|
||
|
|
id TEXT PRIMARY KEY NOT NULL,
|
||
|
|
user_id TEXT NOT NULL,
|
||
|
|
date INTEGER NOT NULL,
|
||
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
success_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
error_requests INTEGER NOT NULL DEFAULT 0,
|
||
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
||
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
||
|
|
username TEXT,
|
||
|
|
created_at INTEGER NOT NULL,
|
||
|
|
updated_at INTEGER NOT NULL,
|
||
|
|
UNIQUE (date, user_id)
|
||
|
|
);
|
||
|
|
|