feat(spend-logs): add lifecycle timestamps

This commit is contained in:
Tianhe Zhang 2026-08-18 14:16:08 -07:00
parent d03ef8be03
commit 607e4a4e30
5 changed files with 28 additions and 0 deletions

View file

@ -0,0 +1,3 @@
ALTER TABLE "LiteLLM_SpendLogs"
ADD COLUMN IF NOT EXISTS "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN IF NOT EXISTS "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;

View file

@ -641,6 +641,8 @@ model LiteLLM_SpendLogs {
mcp_namespaced_tool_name String?
agent_id String?
proxy_server_request Json? @default("{}")
created_at DateTime @default(now()) @map("created_at")
updated_at DateTime @default(now()) @updatedAt @map("updated_at")
@@index([startTime])
@@index([startTime, request_id])
@@index([end_user])

View file

@ -33,6 +33,8 @@ class LiteLLM_SpendLogs(LiteLLMPydanticObjectBase):
requester_ip_address: str | None = None
messages: str | list | dict | None
response: str | list | dict | None
created_at: datetime | None = None
updated_at: datetime | None = None
class LiteLLM_ErrorLogs(LiteLLMPydanticObjectBase):

View file

@ -641,6 +641,8 @@ model LiteLLM_SpendLogs {
mcp_namespaced_tool_name String?
agent_id String?
proxy_server_request Json? @default("{}")
created_at DateTime @default(now()) @map("created_at")
updated_at DateTime @default(now()) @updatedAt @map("updated_at")
@@index([startTime])
@@index([startTime, request_id])
@@index([end_user])

View file

@ -498,6 +498,25 @@ class TestSpendLogs:
assert log.request_id == "r1"
assert log.spend == 0.0
assert log.cache_hit == "False"
assert log.created_at is None
assert log.updated_at is None
def test_spend_logs_parse_database_timestamps(self):
created_at = datetime(2026, 8, 18, 12, 0, 0)
updated_at = datetime(2026, 8, 18, 12, 5, 0)
log = LiteLLM_SpendLogs(
request_id="r1",
api_key="sk-1",
call_type="completion",
startTime=None,
endTime=None,
messages=None,
response=None,
created_at=created_at,
updated_at=updated_at,
)
assert log.created_at == created_at
assert log.updated_at == updated_at
def test_error_logs_creation(self):
log = LiteLLM_ErrorLogs(