Skip to content

Commit 0d31853

Browse files
committed
save stuff on conn
1 parent d96ec3c commit 0d31853

File tree

2 files changed

+19
-18
lines changed

2 files changed

+19
-18
lines changed

sentry_sdk/integrations/clickhouse_driver.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import json
2-
31
import sentry_sdk
42
from sentry_sdk.consts import OP, SPANDATA
53
from sentry_sdk.integrations import Integration, DidNotEnable
@@ -100,7 +98,8 @@ def _inner(*args: P.args, **kwargs: P.kwargs) -> T:
10098
span.set_attribute("db.query_id", query_id)
10199

102100
if params and should_send_default_pii():
103-
span.set_attribute("db.params", json.dumps(params))
101+
connection._sentry_db_params = params
102+
span.set_attribute("db.params", str(params))
104103

105104
# run the original code
106105
ret = f(*args, **kwargs)
@@ -157,9 +156,11 @@ def _inner_send_data(*args: P.args, **kwargs: P.kwargs) -> T:
157156
_set_db_data(span, instance.connection)
158157

159158
if should_send_default_pii():
160-
db_params = json.loads(span.get_attribute("db.params") or "[]")
159+
db_params = (
160+
getattr(instance.connection, "_sentry_db_params", None) or []
161+
)
161162
db_params.extend(data)
162-
span.set_attribute("db.params", json.dumps(db_params))
163+
span.set_attribute("db.params", str(db_params))
163164

164165
return f(*args, **kwargs)
165166

tests/integrations/clickhouse_driver/test_clickhouse_driver.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
```
66
"""
77

8-
import json
9-
108
import clickhouse_driver
119
from clickhouse_driver import Client, connect
1210

@@ -18,6 +16,8 @@
1816
if clickhouse_driver.VERSION < (0, 2, 6):
1917
EXPECT_PARAMS_IN_SELECT = False
2018

19+
PARAMS_SERIALIZER = str
20+
2121

2222
def test_clickhouse_client_breadcrumbs(sentry_init, capture_events) -> None:
2323
sentry_init(
@@ -170,7 +170,7 @@ def test_clickhouse_client_breadcrumbs_with_pii(sentry_init, capture_events) ->
170170
"db.user": "default",
171171
"server.address": "localhost",
172172
"server.port": 9000,
173-
"db.params": json.dumps([{"x": 100}]),
173+
"db.params": PARAMS_SERIALIZER([{"x": 100}]),
174174
},
175175
"message": "INSERT INTO test (x) VALUES",
176176
"type": "default",
@@ -183,7 +183,7 @@ def test_clickhouse_client_breadcrumbs_with_pii(sentry_init, capture_events) ->
183183
"db.user": "default",
184184
"server.address": "localhost",
185185
"server.port": 9000,
186-
"db.params": json.dumps([[170], [200]]),
186+
"db.params": PARAMS_SERIALIZER([[170], [200]]),
187187
},
188188
"message": "INSERT INTO test (x) VALUES",
189189
"type": "default",
@@ -197,7 +197,7 @@ def test_clickhouse_client_breadcrumbs_with_pii(sentry_init, capture_events) ->
197197
"server.address": "localhost",
198198
"server.port": 9000,
199199
"db.result": str([[370]]),
200-
"db.params": json.dumps({"minv": 150}),
200+
"db.params": PARAMS_SERIALIZER({"minv": 150}),
201201
},
202202
"message": "SELECT sum(x) FROM test WHERE x > 150",
203203
"type": "default",
@@ -432,7 +432,7 @@ def test_clickhouse_client_spans_with_pii(
432432
"db.name": "",
433433
"db.user": "default",
434434
"db.query.text": "INSERT INTO test (x) VALUES",
435-
"db.params": json.dumps([{"x": 100}]),
435+
"db.params": PARAMS_SERIALIZER([{"x": 100}]),
436436
"server.address": "localhost",
437437
"server.port": 9000,
438438
},
@@ -468,7 +468,7 @@ def test_clickhouse_client_spans_with_pii(
468468
"db.system": "clickhouse",
469469
"db.name": "",
470470
"db.user": "default",
471-
"db.params": json.dumps({"minv": 150}),
471+
"db.params": PARAMS_SERIALIZER({"minv": 150}),
472472
"db.query.text": "SELECT sum(x) FROM test WHERE x > 150",
473473
"db.result": str([(370,)]),
474474
"server.address": "localhost",
@@ -648,7 +648,7 @@ def test_clickhouse_dbapi_breadcrumbs_with_pii(sentry_init, capture_events) -> N
648648
"db.user": "default",
649649
"server.address": "localhost",
650650
"server.port": 9000,
651-
"db.params": json.dumps([{"x": 100}]),
651+
"db.params": PARAMS_SERIALIZER([{"x": 100}]),
652652
},
653653
"message": "INSERT INTO test (x) VALUES",
654654
"type": "default",
@@ -661,7 +661,7 @@ def test_clickhouse_dbapi_breadcrumbs_with_pii(sentry_init, capture_events) -> N
661661
"db.user": "default",
662662
"server.address": "localhost",
663663
"server.port": 9000,
664-
"db.params": json.dumps([[170], [200]]),
664+
"db.params": PARAMS_SERIALIZER([[170], [200]]),
665665
},
666666
"message": "INSERT INTO test (x) VALUES",
667667
"type": "default",
@@ -674,7 +674,7 @@ def test_clickhouse_dbapi_breadcrumbs_with_pii(sentry_init, capture_events) -> N
674674
"db.user": "default",
675675
"server.address": "localhost",
676676
"server.port": 9000,
677-
"db.params": json.dumps({"minv": 150}),
677+
"db.params": PARAMS_SERIALIZER({"minv": 150}),
678678
"db.result": str([[["370"]], [["'sum(x)'", "'Int64'"]]]),
679679
},
680680
"message": "SELECT sum(x) FROM test WHERE x > 150",
@@ -907,7 +907,7 @@ def test_clickhouse_dbapi_spans_with_pii(
907907
"db.name": "",
908908
"db.user": "default",
909909
"db.query.text": "INSERT INTO test (x) VALUES",
910-
"db.params": json.dumps([{"x": 100}]),
910+
"db.params": PARAMS_SERIALIZER([{"x": 100}]),
911911
"server.address": "localhost",
912912
"server.port": 9000,
913913
},
@@ -926,7 +926,7 @@ def test_clickhouse_dbapi_spans_with_pii(
926926
"db.name": "",
927927
"db.user": "default",
928928
"db.query.text": "INSERT INTO test (x) VALUES",
929-
"db.params": json.dumps([[170], [200]]),
929+
"db.params": PARAMS_SERIALIZER([[170], [200]]),
930930
"server.address": "localhost",
931931
"server.port": 9000,
932932
},
@@ -945,7 +945,7 @@ def test_clickhouse_dbapi_spans_with_pii(
945945
"db.name": "",
946946
"db.user": "default",
947947
"db.query.text": "SELECT sum(x) FROM test WHERE x > 150",
948-
"db.params": json.dumps({"minv": 150}),
948+
"db.params": PARAMS_SERIALIZER({"minv": 150}),
949949
"db.result": str(([(370,)], [("sum(x)", "Int64")])),
950950
"server.address": "localhost",
951951
"server.port": 9000,

0 commit comments

Comments
 (0)