@@ -6,7 +6,7 @@ use diesel::result::{ConnectionError, ConnectionResult, QueryResult};
6
6
use diesel:: sql_types:: HasSqlType ;
7
7
use diesel:: RunQueryDsl ;
8
8
use diesel:: { no_arg_sql_function, select} ;
9
- use tracing:: { debug, instrument} ;
9
+ use tracing:: { debug, field , instrument} ;
10
10
11
11
// https://www.postgresql.org/docs/12/functions-info.html
12
12
// db.name
@@ -34,12 +34,12 @@ pub struct InstrumentedPgConnection {
34
34
impl SimpleConnection for InstrumentedPgConnection {
35
35
#[ instrument(
36
36
fields(
37
- db. name=? self . info. current_database,
37
+ db. name=% self . info. current_database,
38
38
db. system="postgresql" ,
39
- db. version=? self . info. version,
39
+ db. version=% self . info. version,
40
40
otel. kind="client" ,
41
- net. peer. ip=? self . info. inet_server_addr,
42
- net. peer. port=? self . info. inet_server_port,
41
+ net. peer. ip=% self . info. inet_server_addr,
42
+ net. peer. port=% self . info. inet_server_port,
43
43
) ,
44
44
skip( self , query) ,
45
45
err,
@@ -56,8 +56,12 @@ impl Connection for InstrumentedPgConnection {
56
56
57
57
#[ instrument(
58
58
fields(
59
+ db. name=field:: Empty ,
59
60
db. system="postgresql" ,
61
+ db. version=field:: Empty ,
60
62
otel. kind="client" ,
63
+ net. peer. ip=field:: Empty ,
64
+ net. peer. port=field:: Empty ,
61
65
) ,
62
66
skip( database_url) ,
63
67
err,
@@ -76,18 +80,24 @@ impl Connection for InstrumentedPgConnection {
76
80
. get_result ( & conn)
77
81
. map_err ( ConnectionError :: CouldntSetupConfiguration ) ?;
78
82
83
+ let span = tracing:: Span :: current ( ) ;
84
+ span. record ( "db.name" , & info. current_database . as_str ( ) ) ;
85
+ span. record ( "db.version" , & info. version . as_str ( ) ) ;
86
+ span. record ( "db.peer.ip" , & format ! ( "{}" , info. inet_server_addr) . as_str ( ) ) ;
87
+ span. record ( "db.peer.port" , & info. inet_server_port ) ;
88
+
79
89
Ok ( InstrumentedPgConnection { inner : conn, info } )
80
90
}
81
91
82
92
#[ doc( hidden) ]
83
93
#[ instrument(
84
94
fields(
85
- db. name=? self . info. current_database,
95
+ db. name=% self . info. current_database,
86
96
db. system="postgresql" ,
87
- db. version=? self . info. version,
97
+ db. version=% self . info. version,
88
98
otel. kind="client" ,
89
- net. peer. ip=? self . info. inet_server_addr,
90
- net. peer. port=? self . info. inet_server_port,
99
+ net. peer. ip=% self . info. inet_server_addr,
100
+ net. peer. port=% self . info. inet_server_port,
91
101
) ,
92
102
skip( self , query) ,
93
103
err,
@@ -100,12 +110,12 @@ impl Connection for InstrumentedPgConnection {
100
110
#[ doc( hidden) ]
101
111
#[ instrument(
102
112
fields(
103
- db. name=? self . info. current_database,
113
+ db. name=% self . info. current_database,
104
114
db. system="postgresql" ,
105
- db. version=? self . info. version,
115
+ db. version=% self . info. version,
106
116
otel. kind="client" ,
107
- net. peer. ip=? self . info. inet_server_addr,
108
- net. peer. port=? self . info. inet_server_port,
117
+ net. peer. ip=% self . info. inet_server_addr,
118
+ net. peer. port=% self . info. inet_server_port,
109
119
) ,
110
120
skip( self , source) ,
111
121
err,
@@ -124,12 +134,12 @@ impl Connection for InstrumentedPgConnection {
124
134
#[ doc( hidden) ]
125
135
#[ instrument(
126
136
fields(
127
- db. name=? self . info. current_database,
137
+ db. name=% self . info. current_database,
128
138
db. system="postgresql" ,
129
- db. version=? self . info. version,
139
+ db. version=% self . info. version,
130
140
otel. kind="client" ,
131
- net. peer. ip=? self . info. inet_server_addr,
132
- net. peer. port=? self . info. inet_server_port,
141
+ net. peer. ip=% self . info. inet_server_addr,
142
+ net. peer. port=% self . info. inet_server_port,
133
143
) ,
134
144
skip( self , source) ,
135
145
err,
@@ -146,12 +156,12 @@ impl Connection for InstrumentedPgConnection {
146
156
#[ doc( hidden) ]
147
157
#[ instrument(
148
158
fields(
149
- db. name=? self . info. current_database,
159
+ db. name=% self . info. current_database,
150
160
db. system="postgresql" ,
151
- db. version=? self . info. version,
161
+ db. version=% self . info. version,
152
162
otel. kind="client" ,
153
- net. peer. ip=? self . info. inet_server_addr,
154
- net. peer. port=? self . info. inet_server_port,
163
+ net. peer. ip=% self . info. inet_server_addr,
164
+ net. peer. port=% self . info. inet_server_port,
155
165
) ,
156
166
skip( self , source) ,
157
167
err,
@@ -167,12 +177,12 @@ impl Connection for InstrumentedPgConnection {
167
177
#[ doc( hidden) ]
168
178
#[ instrument(
169
179
fields(
170
- db. name=? self . info. current_database,
180
+ db. name=% self . info. current_database,
171
181
db. system="postgresql" ,
172
- db. version=? self . info. version,
182
+ db. version=% self . info. version,
173
183
otel. kind="client" ,
174
- net. peer. ip=? self . info. inet_server_addr,
175
- net. peer. port=? self . info. inet_server_port,
184
+ net. peer. ip=% self . info. inet_server_addr,
185
+ net. peer. port=% self . info. inet_server_port,
176
186
) ,
177
187
skip( self ) ,
178
188
) ]
@@ -185,12 +195,12 @@ impl Connection for InstrumentedPgConnection {
185
195
impl InstrumentedPgConnection {
186
196
#[ instrument(
187
197
fields(
188
- db. name=? self . info. current_database,
198
+ db. name=% self . info. current_database,
189
199
db. system="postgresql" ,
190
- db. version=? self . info. version,
200
+ db. version=% self . info. version,
191
201
otel. kind="client" ,
192
- net. peer. ip=? self . info. inet_server_addr,
193
- net. peer. port=? self . info. inet_server_port,
202
+ net. peer. ip=% self . info. inet_server_addr,
203
+ net. peer. port=% self . info. inet_server_port,
194
204
) ,
195
205
skip( self ) ,
196
206
) ]
0 commit comments