77use mysqli ;
88use mysqli_stmt ;
99use OpenTelemetry \API \Behavior \LogsMessagesTrait ;
10- use OpenTelemetry \API \Globals ;
1110use OpenTelemetry \API \Instrumentation \CachedInstrumentation ;
1211use OpenTelemetry \API \Trace \Span ;
1312use OpenTelemetry \API \Trace \SpanInterface ;
1413use OpenTelemetry \API \Trace \SpanKind ;
1514use OpenTelemetry \API \Trace \StatusCode ;
1615
1716use OpenTelemetry \Context \Context ;
18- use OpenTelemetry \Context \Propagation \TextMapPropagatorInterface ;
1917use function OpenTelemetry \Instrumentation \hook ;
2018use OpenTelemetry \SemConv \TraceAttributes ;
2119use OpenTelemetry \SemConv \Version ;
@@ -45,10 +43,6 @@ public static function register(): void
4543 );
4644
4745 $ tracker = new MySqliTracker ();
48- $ contextPropagator = null ;
49- if (class_exists ('OpenTelemetry\Contrib\SqlCommenter\ContextPropagatorFactory ' )) {
50- $ contextPropagator = (new \OpenTelemetry \Contrib \SqlCommenter \ContextPropagatorFactory ())->create ();
51- }
5246
5347 hook (
5448 null ,
@@ -105,8 +99,8 @@ public static function register(): void
10599 hook (
106100 null ,
107101 'mysqli_query ' ,
108- pre: static function (...$ args ) use ($ contextPropagator , $ instrumentation , $ tracker ) {
109- return self ::queryPreHook ('mysqli_query ' , $ contextPropagator , $ instrumentation , $ tracker , ...$ args );
102+ pre: static function (...$ args ) use ($ instrumentation , $ tracker ) {
103+ return self ::queryPreHook ('mysqli_query ' , $ instrumentation , $ tracker , ...$ args );
110104 },
111105 post: static function (...$ args ) use ($ instrumentation , $ tracker ) {
112106 self ::queryPostHook ($ instrumentation , $ tracker , ...$ args );
@@ -115,8 +109,8 @@ public static function register(): void
115109 hook (
116110 mysqli::class,
117111 'query ' ,
118- pre: static function (...$ args ) use ($ contextPropagator , $ instrumentation , $ tracker ) {
119- return self ::queryPreHook ('mysqli::query ' , $ contextPropagator , $ instrumentation , $ tracker , ...$ args );
112+ pre: static function (...$ args ) use ($ instrumentation , $ tracker ) {
113+ return self ::queryPreHook ('mysqli::query ' , $ instrumentation , $ tracker , ...$ args );
120114 },
121115 post: static function (...$ args ) use ($ instrumentation , $ tracker ) {
122116 self ::queryPostHook ($ instrumentation , $ tracker , ...$ args );
@@ -126,8 +120,8 @@ public static function register(): void
126120 hook (
127121 null ,
128122 'mysqli_real_query ' ,
129- pre: static function (...$ args ) use ($ contextPropagator , $ instrumentation , $ tracker ) {
130- return self ::queryPreHook ('mysqli_real_query ' , $ contextPropagator , $ instrumentation , $ tracker , ...$ args );
123+ pre: static function (...$ args ) use ($ instrumentation , $ tracker ) {
124+ return self ::queryPreHook ('mysqli_real_query ' , $ instrumentation , $ tracker , ...$ args );
131125 },
132126 post: static function (...$ args ) use ($ instrumentation , $ tracker ) {
133127 self ::queryPostHook ($ instrumentation , $ tracker , ...$ args );
@@ -136,8 +130,8 @@ public static function register(): void
136130 hook (
137131 mysqli::class,
138132 'real_query ' ,
139- pre: static function (...$ args ) use ($ contextPropagator , $ instrumentation , $ tracker ) {
140- return self ::queryPreHook ('mysqli::real_query ' , $ contextPropagator , $ instrumentation , $ tracker , ...$ args );
133+ pre: static function (...$ args ) use ($ instrumentation , $ tracker ) {
134+ return self ::queryPreHook ('mysqli::real_query ' , $ instrumentation , $ tracker , ...$ args );
141135 },
142136 post: static function (...$ args ) use ($ instrumentation , $ tracker ) {
143137 self ::queryPostHook ($ instrumentation , $ tracker , ...$ args );
@@ -147,8 +141,8 @@ public static function register(): void
147141 hook (
148142 null ,
149143 'mysqli_execute_query ' ,
150- pre: static function (...$ args ) use ($ contextPropagator , $ instrumentation , $ tracker ) {
151- self ::queryPreHook ('mysqli_execute_query ' , $ contextPropagator , $ instrumentation , $ tracker , ...$ args );
144+ pre: static function (...$ args ) use ($ instrumentation , $ tracker ) {
145+ self ::queryPreHook ('mysqli_execute_query ' , $ instrumentation , $ tracker , ...$ args );
152146 },
153147 post: static function (...$ args ) use ($ instrumentation , $ tracker ) {
154148 self ::queryPostHook ($ instrumentation , $ tracker , ...$ args );
@@ -157,8 +151,8 @@ public static function register(): void
157151 hook (
158152 mysqli::class,
159153 'execute_query ' ,
160- pre: static function (...$ args ) use ($ contextPropagator , $ instrumentation , $ tracker ) {
161- self ::queryPreHook ('mysqli::execute_query ' , $ contextPropagator , $ instrumentation , $ tracker , ...$ args );
154+ pre: static function (...$ args ) use ($ instrumentation , $ tracker ) {
155+ self ::queryPreHook ('mysqli::execute_query ' , $ instrumentation , $ tracker , ...$ args );
162156 },
163157 post: static function (...$ args ) use ($ instrumentation , $ tracker ) {
164158 self ::queryPostHook ($ instrumentation , $ tracker , ...$ args );
@@ -448,7 +442,7 @@ private static function constructPostHook(int $paramsOffset, CachedInstrumentati
448442 }
449443
450444 /** @param non-empty-string $spanName */
451- private static function queryPreHook (string $ spanName , ? TextMapPropagatorInterface $ contextPropagator , CachedInstrumentation $ instrumentation , MySqliTracker $ tracker , $ obj , array $ params , ?string $ class , string $ function , ?string $ filename , ?int $ lineno ): array
445+ private static function queryPreHook (string $ spanName , CachedInstrumentation $ instrumentation , MySqliTracker $ tracker , $ obj , array $ params , ?string $ class , string $ function , ?string $ filename , ?int $ lineno ): array
452446 {
453447 $ span = self ::startSpan ($ spanName , $ instrumentation , $ class , $ function , $ filename , $ lineno , []);
454448 $ mysqli = $ obj ? $ obj : $ params [0 ];
@@ -465,21 +459,17 @@ private static function queryPreHook(string $spanName, ?TextMapPropagatorInterfa
465459 self ::addTransactionLink ($ tracker , $ span , $ mysqli );
466460
467461 if (class_exists ('OpenTelemetry\Contrib\SqlCommenter\SqlCommenter ' ) && $ query !== self ::UNDEFINED ) {
468- $ comments = [];
469- if ($ contextPropagator !== null ) {
470- $ contextPropagator ->inject ($ comments );
471- } else {
472- Globals::propagator ()->inject ($ comments );
473- }
474- if (class_exists ('OpenTelemetry\Contrib\SqlCommenter\SqlCommenter ' )) {
475- $ query = \OpenTelemetry \Contrib \SqlCommenter \SqlCommenter::inject ($ query , $ comments );
476- }
477- if (class_exists ('OpenTelemetry\Contrib\SqlCommenter\ContextPropagation ' ) && \OpenTelemetry \Contrib \SqlCommenter \ContextPropagation::isAttributeEnabled ()) {
462+ /**
463+ * @phan-suppress-next-line PhanUndeclaredClassMethod
464+ * @psalm-suppress UndefinedClass
465+ */
466+ $ commenter = \OpenTelemetry \Contrib \SqlCommenter \SqlCommenter::getInstance ();
467+ $ query = $ commenter ->inject ($ query );
468+ if ($ commenter ->isAttributeEnabled ()) {
478469 $ span ->setAttributes ([
479470 TraceAttributes::DB_QUERY_TEXT => (string ) $ query ,
480471 ]);
481472 }
482-
483473 if ($ obj ) {
484474 return [
485475 0 => $ query ,
0 commit comments