Skip to content

Commit ed56439

Browse files
committed
wip: stats
1 parent 09a3f85 commit ed56439

1 file changed

Lines changed: 72 additions & 68 deletions

File tree

infra/stats.ts

Lines changed: 72 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -15,77 +15,81 @@ const inferenceNamespace = new aws.s3tables.Namespace("LakeInferenceNamespace",
1515
tableBucketArn: tableBucket.arn,
1616
})
1717

18-
const inferenceEventTable = new aws.s3tables.Table("LakeInferenceEventTable", {
19-
name: "event",
20-
namespace: inferenceNamespace.namespace,
21-
tableBucketArn: inferenceNamespace.tableBucketArn,
22-
format: "ICEBERG",
23-
metadata: {
24-
iceberg: {
25-
schema: {
26-
fields: [
27-
{ name: "event_timestamp", type: "string", required: false },
28-
{ name: "event_date", type: "string", required: false },
29-
{ name: "event_type", type: "string", required: false },
30-
{ name: "dataset", type: "string", required: false },
31-
{ name: "cf_continent", type: "string", required: false },
32-
{ name: "cf_country", type: "string", required: false },
33-
{ name: "cf_city", type: "string", required: false },
34-
{ name: "cf_region", type: "string", required: false },
35-
{ name: "cf_latitude", type: "double", required: false },
36-
{ name: "cf_longitude", type: "double", required: false },
37-
{ name: "cf_timezone", type: "string", required: false },
38-
{ name: "duration", type: "double", required: false },
39-
{ name: "request_length", type: "long", required: false },
40-
{ name: "status", type: "int", required: false },
41-
{ name: "ip", type: "string", required: false },
42-
{ name: "is_stream", type: "boolean", required: false },
43-
{ name: "session", type: "string", required: false },
44-
{ name: "request", type: "string", required: false },
45-
{ name: "client", type: "string", required: false },
46-
{ name: "user_agent", type: "string", required: false },
47-
{ name: "model_variant", type: "string", required: false },
48-
{ name: "source", type: "string", required: false },
49-
{ name: "provider", type: "string", required: false },
50-
{ name: "provider_model", type: "string", required: false },
51-
{ name: "model", type: "string", required: false },
52-
{ name: "llm_error_code", type: "int", required: false },
53-
{ name: "llm_error_message", type: "string", required: false },
54-
{ name: "error_response", type: "string", required: false },
55-
{ name: "error_type", type: "string", required: false },
56-
{ name: "error_message", type: "string", required: false },
57-
{ name: "error_cause", type: "string", required: false },
58-
{ name: "error_cause2", type: "string", required: false },
59-
{ name: "api_key", type: "string", required: false },
60-
{ name: "workspace", type: "string", required: false },
61-
{ name: "is_subscription", type: "boolean", required: false },
62-
{ name: "subscription", type: "string", required: false },
63-
{ name: "response_length", type: "long", required: false },
64-
{ name: "time_to_first_byte", type: "long", required: false },
65-
{ name: "timestamp_first_byte", type: "long", required: false },
66-
{ name: "timestamp_last_byte", type: "long", required: false },
67-
{ name: "tokens_input", type: "long", required: false },
68-
{ name: "tokens_output", type: "long", required: false },
69-
{ name: "tokens_reasoning", type: "long", required: false },
70-
{ name: "tokens_cache_read", type: "long", required: false },
71-
{ name: "tokens_cache_write_5m", type: "long", required: false },
72-
{ name: "tokens_cache_write_1h", type: "long", required: false },
73-
{ name: "cost_input_microcents", type: "long", required: false },
74-
{ name: "cost_output_microcents", type: "long", required: false },
75-
{ name: "cost_cache_read_microcents", type: "long", required: false },
76-
{ name: "cost_cache_write_microcents", type: "long", required: false },
77-
{ name: "cost_total_microcents", type: "long", required: false },
78-
{ name: "cost_input", type: "long", required: false },
79-
{ name: "cost_output", type: "long", required: false },
80-
{ name: "cost_cache_read", type: "long", required: false },
81-
{ name: "cost_cache_write_5m", type: "long", required: false },
82-
{ name: "cost_cache_write_1h", type: "long", required: false },
83-
{ name: "cost_total", type: "long", required: false },
84-
],
18+
const inferenceEventTable = new aws.s3tables.Table(
19+
"LakeInferenceEventTable",
20+
{
21+
name: "event",
22+
namespace: inferenceNamespace.namespace,
23+
tableBucketArn: inferenceNamespace.tableBucketArn,
24+
format: "ICEBERG",
25+
metadata: {
26+
iceberg: {
27+
schema: {
28+
fields: [
29+
{ name: "event_timestamp", type: "string", required: false },
30+
{ name: "event_date", type: "string", required: false },
31+
{ name: "event_type", type: "string", required: false },
32+
{ name: "dataset", type: "string", required: false },
33+
{ name: "cf_continent", type: "string", required: false },
34+
{ name: "cf_country", type: "string", required: false },
35+
{ name: "cf_city", type: "string", required: false },
36+
{ name: "cf_region", type: "string", required: false },
37+
{ name: "cf_latitude", type: "double", required: false },
38+
{ name: "cf_longitude", type: "double", required: false },
39+
{ name: "cf_timezone", type: "string", required: false },
40+
{ name: "duration", type: "double", required: false },
41+
{ name: "request_length", type: "long", required: false },
42+
{ name: "status", type: "int", required: false },
43+
{ name: "ip", type: "string", required: false },
44+
{ name: "is_stream", type: "boolean", required: false },
45+
{ name: "session", type: "string", required: false },
46+
{ name: "request", type: "string", required: false },
47+
{ name: "client", type: "string", required: false },
48+
{ name: "user_agent", type: "string", required: false },
49+
{ name: "model_variant", type: "string", required: false },
50+
{ name: "source", type: "string", required: false },
51+
{ name: "provider", type: "string", required: false },
52+
{ name: "provider_model", type: "string", required: false },
53+
{ name: "model", type: "string", required: false },
54+
{ name: "llm_error_code", type: "int", required: false },
55+
{ name: "llm_error_message", type: "string", required: false },
56+
{ name: "error_response", type: "string", required: false },
57+
{ name: "error_type", type: "string", required: false },
58+
{ name: "error_message", type: "string", required: false },
59+
{ name: "error_cause", type: "string", required: false },
60+
{ name: "error_cause2", type: "string", required: false },
61+
{ name: "api_key", type: "string", required: false },
62+
{ name: "workspace", type: "string", required: false },
63+
{ name: "is_subscription", type: "boolean", required: false },
64+
{ name: "subscription", type: "string", required: false },
65+
{ name: "response_length", type: "long", required: false },
66+
{ name: "time_to_first_byte", type: "long", required: false },
67+
{ name: "timestamp_first_byte", type: "long", required: false },
68+
{ name: "timestamp_last_byte", type: "long", required: false },
69+
{ name: "tokens_input", type: "long", required: false },
70+
{ name: "tokens_output", type: "long", required: false },
71+
{ name: "tokens_reasoning", type: "long", required: false },
72+
{ name: "tokens_cache_read", type: "long", required: false },
73+
{ name: "tokens_cache_write_5m", type: "long", required: false },
74+
{ name: "tokens_cache_write_1h", type: "long", required: false },
75+
{ name: "cost_input_microcents", type: "long", required: false },
76+
{ name: "cost_output_microcents", type: "long", required: false },
77+
{ name: "cost_cache_read_microcents", type: "long", required: false },
78+
{ name: "cost_cache_write_microcents", type: "long", required: false },
79+
{ name: "cost_total_microcents", type: "long", required: false },
80+
{ name: "cost_input", type: "long", required: false },
81+
{ name: "cost_output", type: "long", required: false },
82+
{ name: "cost_cache_read", type: "long", required: false },
83+
{ name: "cost_cache_write_5m", type: "long", required: false },
84+
{ name: "cost_cache_write_1h", type: "long", required: false },
85+
{ name: "cost_total", type: "long", required: false },
86+
],
87+
},
8588
},
8689
},
8790
},
88-
})
91+
{ deleteBeforeReplace: $app.stage !== "production" },
92+
)
8993

9094
export const inferenceEvent = new sst.Linkable("InferenceEvent", {
9195
properties: {

0 commit comments

Comments
 (0)