Skip to content

Commit 928d0d4

Browse files
committed
Record db name on establish for postgresql
1 parent ad743ab commit 928d0d4

File tree

3 files changed

+42
-32
lines changed

3 files changed

+42
-32
lines changed

.github/workflows/rust.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ jobs:
2727
steps:
2828
- uses: actions/checkout@v2
2929
- name: Build
30-
run: cargo build --verbose
30+
run: cargo build --all-features --verbose
3131
- name: Run tests
32-
run: cargo test --verbose
32+
run: cargo test --all-features --verbose
3333
env:
3434
POSTGRESQL_URL: postgres://postgres:postgres@localhost:${{ job.services.postgres.ports[5432] }}/postgres

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Just like diesel this crate relies on some feature flags to specify which
2727
database driver to support. Just as in diesel configure this in your
2828
`Cargo.toml`
2929
30-
```
30+
```toml
3131
[dependencies]
3232
diesel-tracing = { version = "<version>", features = ["<postgres|mysql|sqlite>"] }
3333
```

src/pg.rs

Lines changed: 39 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use diesel::result::{ConnectionError, ConnectionResult, QueryResult};
66
use diesel::sql_types::HasSqlType;
77
use diesel::RunQueryDsl;
88
use diesel::{no_arg_sql_function, select};
9-
use tracing::{debug, instrument};
9+
use tracing::{debug, field, instrument};
1010

1111
// https://www.postgresql.org/docs/12/functions-info.html
1212
// db.name
@@ -34,12 +34,12 @@ pub struct InstrumentedPgConnection {
3434
impl SimpleConnection for InstrumentedPgConnection {
3535
#[instrument(
3636
fields(
37-
db.name=?self.info.current_database,
37+
db.name=%self.info.current_database,
3838
db.system="postgresql",
39-
db.version=?self.info.version,
39+
db.version=%self.info.version,
4040
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,
4343
),
4444
skip(self, query),
4545
err,
@@ -56,8 +56,12 @@ impl Connection for InstrumentedPgConnection {
5656

5757
#[instrument(
5858
fields(
59+
db.name=field::Empty,
5960
db.system="postgresql",
61+
db.version=field::Empty,
6062
otel.kind="client",
63+
net.peer.ip=field::Empty,
64+
net.peer.port=field::Empty,
6165
),
6266
skip(database_url),
6367
err,
@@ -76,18 +80,24 @@ impl Connection for InstrumentedPgConnection {
7680
.get_result(&conn)
7781
.map_err(ConnectionError::CouldntSetupConfiguration)?;
7882

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+
7989
Ok(InstrumentedPgConnection { inner: conn, info })
8090
}
8191

8292
#[doc(hidden)]
8393
#[instrument(
8494
fields(
85-
db.name=?self.info.current_database,
95+
db.name=%self.info.current_database,
8696
db.system="postgresql",
87-
db.version=?self.info.version,
97+
db.version=%self.info.version,
8898
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,
91101
),
92102
skip(self, query),
93103
err,
@@ -100,12 +110,12 @@ impl Connection for InstrumentedPgConnection {
100110
#[doc(hidden)]
101111
#[instrument(
102112
fields(
103-
db.name=?self.info.current_database,
113+
db.name=%self.info.current_database,
104114
db.system="postgresql",
105-
db.version=?self.info.version,
115+
db.version=%self.info.version,
106116
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,
109119
),
110120
skip(self, source),
111121
err,
@@ -124,12 +134,12 @@ impl Connection for InstrumentedPgConnection {
124134
#[doc(hidden)]
125135
#[instrument(
126136
fields(
127-
db.name=?self.info.current_database,
137+
db.name=%self.info.current_database,
128138
db.system="postgresql",
129-
db.version=?self.info.version,
139+
db.version=%self.info.version,
130140
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,
133143
),
134144
skip(self, source),
135145
err,
@@ -146,12 +156,12 @@ impl Connection for InstrumentedPgConnection {
146156
#[doc(hidden)]
147157
#[instrument(
148158
fields(
149-
db.name=?self.info.current_database,
159+
db.name=%self.info.current_database,
150160
db.system="postgresql",
151-
db.version=?self.info.version,
161+
db.version=%self.info.version,
152162
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,
155165
),
156166
skip(self, source),
157167
err,
@@ -167,12 +177,12 @@ impl Connection for InstrumentedPgConnection {
167177
#[doc(hidden)]
168178
#[instrument(
169179
fields(
170-
db.name=?self.info.current_database,
180+
db.name=%self.info.current_database,
171181
db.system="postgresql",
172-
db.version=?self.info.version,
182+
db.version=%self.info.version,
173183
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,
176186
),
177187
skip(self),
178188
)]
@@ -185,12 +195,12 @@ impl Connection for InstrumentedPgConnection {
185195
impl InstrumentedPgConnection {
186196
#[instrument(
187197
fields(
188-
db.name=?self.info.current_database,
198+
db.name=%self.info.current_database,
189199
db.system="postgresql",
190-
db.version=?self.info.version,
200+
db.version=%self.info.version,
191201
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,
194204
),
195205
skip(self),
196206
)]

0 commit comments

Comments
 (0)