@@ -7,6 +7,8 @@ use spin_factors::wasmtime::component::Resource;
77use spin_factors:: { anyhow, SelfInstanceBuilder } ;
88use spin_world:: v1:: sqlite as v1;
99use spin_world:: v2:: sqlite as v2;
10+ use tracing:: field:: Empty ;
11+ use tracing:: { instrument, Level } ;
1012
1113use crate :: { Connection , ConnectionCreator } ;
1214
@@ -62,6 +64,7 @@ impl v2::Host for InstanceState {
6264
6365#[ async_trait]
6466impl v2:: HostConnection for InstanceState {
67+ #[ instrument( name = "spin_sqlite.open" , skip( self ) , err( level = Level :: INFO ) , fields( otel. kind = "client" , db. system = "sqlite" , sqlite. backend = Empty ) ) ]
6568 async fn open ( & mut self , database : String ) -> Result < Resource < v2:: Connection > , v2:: Error > {
6669 if !self . allowed_databases . contains ( & database) {
6770 return Err ( v2:: Error :: AccessDenied ) ;
@@ -70,12 +73,17 @@ impl v2::HostConnection for InstanceState {
7073 . ok_or ( v2:: Error :: NoSuchDatabase ) ?
7174 . create_connection ( & database)
7275 . await ?;
76+ tracing:: Span :: current ( ) . record (
77+ "sqlite.backend" ,
78+ conn. summary ( ) . as_deref ( ) . unwrap_or ( "unknown" ) ,
79+ ) ;
7380 self . connections
7481 . push ( conn)
7582 . map_err ( |( ) | v2:: Error :: Io ( "too many connections opened" . to_string ( ) ) )
7683 . map ( Resource :: new_own)
7784 }
7885
86+ #[ instrument( name = "spin_sqlite.execute" , skip( self , connection) , err( level = Level :: INFO ) , fields( otel. kind = "client" , db. system = "sqlite" , otel. name = query, sqlite. backend = Empty ) ) ]
7987 async fn execute (
8088 & mut self ,
8189 connection : Resource < v2:: Connection > ,
@@ -86,6 +94,10 @@ impl v2::HostConnection for InstanceState {
8694 Ok ( c) => c,
8795 Err ( err) => return Err ( err) ,
8896 } ;
97+ tracing:: Span :: current ( ) . record (
98+ "sqlite.backend" ,
99+ conn. summary ( ) . as_deref ( ) . unwrap_or ( "unknown" ) ,
100+ ) ;
89101 conn. query ( & query, parameters) . await
90102 }
91103
0 commit comments