From 626a488fb89208cd148aa97aae546d4b08b37f55 Mon Sep 17 00:00:00 2001 From: Victor Navarro Date: Thu, 7 May 2026 19:38:04 +0200 Subject: [PATCH] chore: track model variant in honeycomb (#26188) --- packages/console/app/src/routes/zen/go/v1/chat/completions.ts | 1 + packages/console/app/src/routes/zen/go/v1/messages.ts | 1 + packages/console/app/src/routes/zen/util/handler.ts | 3 +++ packages/console/app/src/routes/zen/v1/chat/completions.ts | 1 + packages/console/app/src/routes/zen/v1/messages.ts | 1 + packages/console/app/src/routes/zen/v1/models/[model].ts | 1 + packages/console/app/src/routes/zen/v1/responses.ts | 1 + packages/console/function/src/log-processor.ts | 2 +- 8 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/console/app/src/routes/zen/go/v1/chat/completions.ts b/packages/console/app/src/routes/zen/go/v1/chat/completions.ts index 9a57e893fb..a5cf41f8f0 100644 --- a/packages/console/app/src/routes/zen/go/v1/chat/completions.ts +++ b/packages/console/app/src/routes/zen/go/v1/chat/completions.ts @@ -7,6 +7,7 @@ export function POST(input: APIEvent) { modelList: "lite", parseApiKey: (headers: Headers) => headers.get("authorization")?.split(" ")[1], parseModel: (url: string, body: any) => body.model, + parseVariant: (url: string, body: any) => body.reasoningEffort ?? body.reasoning_effort, parseIsStream: (url: string, body: any) => !!body.stream, }) } diff --git a/packages/console/app/src/routes/zen/go/v1/messages.ts b/packages/console/app/src/routes/zen/go/v1/messages.ts index ee401e6aa2..e66f3658c6 100644 --- a/packages/console/app/src/routes/zen/go/v1/messages.ts +++ b/packages/console/app/src/routes/zen/go/v1/messages.ts @@ -7,6 +7,7 @@ export function POST(input: APIEvent) { modelList: "lite", parseApiKey: (headers: Headers) => headers.get("x-api-key") ?? undefined, parseModel: (url: string, body: any) => body.model, + parseVariant: (url: string, body: any) => body.effort, parseIsStream: (url: string, body: any) => !!body.stream, }) } diff --git a/packages/console/app/src/routes/zen/util/handler.ts b/packages/console/app/src/routes/zen/util/handler.ts index c12129ff1d..eb56ed829c 100644 --- a/packages/console/app/src/routes/zen/util/handler.ts +++ b/packages/console/app/src/routes/zen/util/handler.ts @@ -71,6 +71,7 @@ export async function handler( modelList: "lite" | "full" parseApiKey: (headers: Headers) => string | undefined parseModel: (url: string, body: any) => string + parseVariant: (url: string, body: any) => string | undefined parseIsStream: (url: string, body: any) => boolean }, ) { @@ -93,6 +94,7 @@ export async function handler( const url = input.request.url const body = await input.request.json() const model = opts.parseModel(url, body) + const variant = opts.parseVariant(url, body) const isStream = opts.parseIsStream(url, body) const rawIp = input.request.headers.get("x-real-ip") ?? "" const ip = rawIp.includes(":") ? rawIp.split(":").slice(0, 4).join(":") : rawIp @@ -109,6 +111,7 @@ export async function handler( request: requestId, client: ocClient, user_agent: userAgent, + "model.variant": variant, }) const zenData = ZenData.list(opts.modelList) const modelInfo = validateModel(zenData, model) diff --git a/packages/console/app/src/routes/zen/v1/chat/completions.ts b/packages/console/app/src/routes/zen/v1/chat/completions.ts index e9e05197e2..a55d743565 100644 --- a/packages/console/app/src/routes/zen/v1/chat/completions.ts +++ b/packages/console/app/src/routes/zen/v1/chat/completions.ts @@ -7,6 +7,7 @@ export function POST(input: APIEvent) { modelList: "full", parseApiKey: (headers: Headers) => headers.get("authorization")?.split(" ")[1], parseModel: (url: string, body: any) => body.model, + parseVariant: (url: string, body: any) => body.reasoningEffort ?? body.reasoning_effort, parseIsStream: (url: string, body: any) => !!body.stream, }) } diff --git a/packages/console/app/src/routes/zen/v1/messages.ts b/packages/console/app/src/routes/zen/v1/messages.ts index 9c09315a6e..f023d4f9ac 100644 --- a/packages/console/app/src/routes/zen/v1/messages.ts +++ b/packages/console/app/src/routes/zen/v1/messages.ts @@ -7,6 +7,7 @@ export function POST(input: APIEvent) { modelList: "full", parseApiKey: (headers: Headers) => headers.get("x-api-key") ?? undefined, parseModel: (url: string, body: any) => body.model, + parseVariant: (url: string, body: any) => body.effort, parseIsStream: (url: string, body: any) => !!body.stream, }) } diff --git a/packages/console/app/src/routes/zen/v1/models/[model].ts b/packages/console/app/src/routes/zen/v1/models/[model].ts index bc1168eb0c..bfe6e86540 100644 --- a/packages/console/app/src/routes/zen/v1/models/[model].ts +++ b/packages/console/app/src/routes/zen/v1/models/[model].ts @@ -7,6 +7,7 @@ export function POST(input: APIEvent) { modelList: "full", parseApiKey: (headers: Headers) => headers.get("x-goog-api-key") ?? undefined, parseModel: (url: string, _body: any) => url.split("/").pop()?.split(":")?.[0] ?? "", + parseVariant: (url: string, body: any) => body.thinkingLevel, parseIsStream: (url: string, _body: any) => // ie. url: https://opencode.ai/zen/v1/models/gemini-3-pro:streamGenerateContent?alt=sse' url.split("/").pop()?.split(":")?.[1]?.startsWith("streamGenerateContent") ?? false, diff --git a/packages/console/app/src/routes/zen/v1/responses.ts b/packages/console/app/src/routes/zen/v1/responses.ts index cae625cf6f..539b2fdad0 100644 --- a/packages/console/app/src/routes/zen/v1/responses.ts +++ b/packages/console/app/src/routes/zen/v1/responses.ts @@ -7,6 +7,7 @@ export function POST(input: APIEvent) { modelList: "full", parseApiKey: (headers: Headers) => headers.get("authorization")?.split(" ")[1], parseModel: (url: string, body: any) => body.model, + parseVariant: (url: string, body: any) => body.reasoning?.effort, parseIsStream: (url: string, body: any) => !!body.stream, }) } diff --git a/packages/console/function/src/log-processor.ts b/packages/console/function/src/log-processor.ts index f8b2cf5270..2bb741b7aa 100644 --- a/packages/console/function/src/log-processor.ts +++ b/packages/console/function/src/log-processor.ts @@ -19,7 +19,7 @@ export default { url.pathname !== "/zen/go/v1/responses" && !url.pathname.startsWith("/zen/go/v1/models/") ) - return + continue let data = { "cf.continent": event.event.request.cf?.continent,