feat(stats): query r2 data catalog
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { describe, expect, test } from "bun:test"
|
||||
import { toGeoAggregate, toModelAggregate, toProviderAggregate } from "./inference"
|
||||
import { buildStatsQueries, toGeoAggregate, toModelAggregate, toProviderAggregate } from "./inference"
|
||||
import { modelAuthor, normalizeInferenceModel, statModel, statProvider } from "./model-normalization"
|
||||
|
||||
describe("inference stat normalization", () => {
|
||||
@@ -82,6 +82,27 @@ describe("inference stat normalization", () => {
|
||||
}),
|
||||
).toMatchObject([{ period_key: "2026-W20" }])
|
||||
})
|
||||
|
||||
test("builds bounded R2 SQL queries for each day and week", () => {
|
||||
const queries = buildStatsQueries(new Date("2026-08-10T00:00:00.000Z"), new Date("2026-08-12T12:00:00.000Z"), {
|
||||
namespace: "inference",
|
||||
table: "generation",
|
||||
dataset: "zen",
|
||||
})
|
||||
|
||||
expect(queries).toHaveLength(8)
|
||||
expect(queries[0]).toContain("'week' AS grain")
|
||||
expect(queries[0]).toContain("'2026-W33' AS period_key")
|
||||
expect(queries[2]).toContain("'2026-08-10' AS period_key")
|
||||
expect(queries[6]).toContain("'2026-08-12' AS period_key")
|
||||
expect(queries[0]).toContain('FROM "inference"."generation"')
|
||||
expect(queries[0]).toContain("event_type = 'generation.completed'")
|
||||
expect(queries[0]).toContain("product = 'go'")
|
||||
expect(queries[0]).toContain("LIMIT 10000")
|
||||
expect(queries[0]).toContain("approx_distinct(session) AS sessions")
|
||||
expect(queries[1]).toContain("'geo_model' ELSE 'geo'")
|
||||
expect(queries[1]).toContain("0 AS sessions")
|
||||
})
|
||||
})
|
||||
|
||||
function aggregate(model: string, provider: string) {
|
||||
|
||||
Reference in New Issue
Block a user