CREATE TABLE protokoll (
id bigint(20) NOT NULL AUTO_INCREMENT,
timestamp datetime(6) DEFAULT current_timestamp(6),
request_ip varchar(45) NOT NULL,
client_name varchar(255) NOT NULL,
request text NOT NULL,
request_timestamp datetime(6) NOT NULL,
response text DEFAULT NULL,
response_timestamp datetime(6) DEFAULT NULL,
duration_ms int(10) unsigned DEFAULT NULL,
tokens_input int(10) unsigned DEFAULT NULL,
tokens_output int(10) unsigned DEFAULT NULL,
tokens_total int(10) unsigned DEFAULT NULL,
model_name varchar(255) DEFAULT NULL,
status enum('pending','completed','error') DEFAULT 'pending',
error_message text DEFAULT NULL,
PRIMARY KEY (id),
KEY idx_timestamp (timestamp),
KEY idx_client_name (client_name),
KEY idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Abfragen
# Letzte 10 Einträge
mariadb ki_protokoll -e "SELECT id, timestamp, client_name, status FROM protokoll ORDER BY id DESC LIMIT 10"
# Requests pro Tag
mariadb ki_protokoll -e "SELECT DATE(timestamp) as tag, COUNT(*) as anzahl FROM protokoll GROUP BY DATE(timestamp) ORDER BY tag DESC"
# Durchschnittliche Duration
mariadb ki_protokoll -e "SELECT AVG(duration_ms) as avg_ms FROM protokoll WHERE status = 'completed'"