@@ -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
9094export const inferenceEvent = new sst . Linkable ( "InferenceEvent" , {
9195 properties : {
0 commit comments