|
4 | 4 | from google.cloud.storage.retry import DEFAULT_RETRY
|
5 | 5 | from io import BytesIO, StringIO
|
6 | 6 | from logging import getLogger
|
| 7 | +from opentelemetry.trace.propagation import tracecontext |
7 | 8 | from operator import itemgetter
|
8 | 9 | from sqlalchemy import Boolean, TIMESTAMP, Unicode, UnicodeText
|
9 | 10 | from sqlalchemy import Column, ForeignKey, select
|
|
18 | 19 | from zeit.connector.resource import CachedResource
|
19 | 20 | import collections
|
20 | 21 | import opentelemetry.instrumentation.sqlalchemy
|
| 22 | +import opentelemetry.instrumentation.utils |
21 | 23 | import os
|
22 | 24 | import os.path
|
23 | 25 | import sqlalchemy
|
@@ -66,8 +68,7 @@ def __init__(self, dsn, storage_project, storage_bucket,
|
66 | 68 | self.session = sqlalchemy.orm.scoped_session(
|
67 | 69 | sqlalchemy.orm.sessionmaker(bind=self.engine, future=True))
|
68 | 70 | zope.sqlalchemy.register(self.session)
|
69 |
| - EngineTracer(zeit.cms.tracing.default_tracer(), |
70 |
| - self.engine, enable_commenter=True) |
| 71 | + EngineTracer(zeit.cms.tracing.default_tracer(), self.engine) |
71 | 72 | self.gcs_client = storage.Client(project=storage_project)
|
72 | 73 | self.bucket = self.gcs_client.bucket(storage_bucket)
|
73 | 74 |
|
@@ -448,4 +449,15 @@ def _before_cur_exec(
|
448 | 449 | for k, v in params.items():
|
449 | 450 | p.write('%s=%r\n' % (k, str(v)[:100]))
|
450 | 451 | context._otel_span.set_attribute('db.parameters', p.getvalue())
|
| 452 | + # XXX We bypass enable_commenter in superclass, until |
| 453 | + # opentelemetry-python-contrib#1200 is released. |
| 454 | + statement += self._generate_comment() |
451 | 455 | return statement, params
|
| 456 | + |
| 457 | + propagator = tracecontext.TraceContextTextMapPropagator() |
| 458 | + |
| 459 | + def _generate_comment(self): |
| 460 | + meta = {} |
| 461 | + self.propagator.inject(meta) |
| 462 | + return opentelemetry.instrumentation.utils._generate_sql_comment( |
| 463 | + **meta) |
0 commit comments