Verified Commit 571aeb51 authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3377657 by catch, mondrake: Add database query spans to otel traces

(cherry picked from commit 09077755)
parent f0fda9de
Loading
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -339,6 +339,20 @@ private function openTelemetryTracing(array $messages, string $service_name): vo
        ->setAttribute('http.url', $url)
        ->startSpan();
      $first_byte_span->end($response_wall_time);

      $collection = \Drupal::keyValue('performance_test');
      $performance_test_data = $collection->get('performance_test_data');
      $query_events = $performance_test_data['database_events'] ?? [];
      foreach ($query_events as $key => $event) {
        // Use the first part of the database query for the span name.
        $query_span = $tracer->spanBuilder(substr($event->queryString, 0, 64))
          ->setStartTimestamp((int) ($event->startTime * $nanoseconds_per_second))
          ->setAttribute('query.string', $event->queryString)
          ->setAttribute('query.args', var_export($event->args, TRUE))
          ->setAttribute('query.caller', var_export($event->caller, TRUE))
          ->startSpan();
        $query_span->end((int) ($event->time * $nanoseconds_per_second));
      }
      $lcp_timestamp = NULL;
      $fcp_timestamp = NULL;
      $lcp_size = 0;