From b8fde5771c3a690f90b662f3d15e44ea452b1f32 Mon Sep 17 00:00:00 2001 From: Luc Vieillescazes Date: Tue, 1 Oct 2024 13:29:14 +0200 Subject: [PATCH] Fix OpenTracing test flakiness (#2867) --- .../Frameworks/Custom/OpenTelemetry/index.php | 16 ++++++-------- tests/Frameworks/Custom/OpenTracing/index.php | 20 +++++++----------- tests/OpenTracing/InternalTelemetryTest.php | 21 ++++++++++++------- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/tests/Frameworks/Custom/OpenTelemetry/index.php b/tests/Frameworks/Custom/OpenTelemetry/index.php index 10d3a610c3..b061f02ae1 100644 --- a/tests/Frameworks/Custom/OpenTelemetry/index.php +++ b/tests/Frameworks/Custom/OpenTelemetry/index.php @@ -4,13 +4,9 @@ require __DIR__ . '/vendor/autoload.php'; -try { - $tracerProvider = new TracerProvider(); - $tracer = $tracerProvider->getTracer('foo'); - $span = $tracer->spanBuilder('barbar') - ->startSpan() - ; - $span->end(); -} finally { - \dd_trace_internal_fn("finalize_telemetry"); -} +$tracerProvider = new TracerProvider(); +$tracer = $tracerProvider->getTracer('foo'); +$span = $tracer->spanBuilder('barbar') + ->startSpan() +; +$span->end(); diff --git a/tests/Frameworks/Custom/OpenTracing/index.php b/tests/Frameworks/Custom/OpenTracing/index.php index 9b2228f38b..4e98e06918 100644 --- a/tests/Frameworks/Custom/OpenTracing/index.php +++ b/tests/Frameworks/Custom/OpenTracing/index.php @@ -2,15 +2,11 @@ require __DIR__ . '/vendor/autoload.php'; -try { - $otTracer = new \DDTrace\OpenTracer1\Tracer(\DDTrace\GlobalTracer::get()); - $scope = $otTracer->startActiveSpan('web.request'); - $span = $scope->getSpan(); - $span->setTag('service.name', 'service_name'); - $span->setTag('resource.name', 'resource_name'); - $span->setTag('span.type', 'web'); - $span->setTag('http.method', $_SERVER['REQUEST_METHOD']); - $span->finish(); -} finally { - \dd_trace_internal_fn("finalize_telemetry"); -} +$otTracer = new \DDTrace\OpenTracer1\Tracer(\DDTrace\GlobalTracer::get()); +$scope = $otTracer->startActiveSpan('web.request'); +$span = $scope->getSpan(); +$span->setTag('service.name', 'service_name'); +$span->setTag('resource.name', 'resource_name'); +$span->setTag('span.type', 'web'); +$span->setTag('http.method', $_SERVER['REQUEST_METHOD']); +$span->finish(); diff --git a/tests/OpenTracing/InternalTelemetryTest.php b/tests/OpenTracing/InternalTelemetryTest.php index 197c7fc320..436ea93ffe 100644 --- a/tests/OpenTracing/InternalTelemetryTest.php +++ b/tests/OpenTracing/InternalTelemetryTest.php @@ -37,18 +37,25 @@ public function testInternalMetricWithOpenTracing() $this->executeCommand(); - $requests = $this->retrieveDumpedData($this->untilTelemetryRequest("spans_created")); + $requests = $this->retrieveDumpedData($this->untilTelemetryRequest("spans_created"), true); $payloads = $this->readTelemetryPayloads($requests); $isMetric = function (array $payload) { return 'generate-metrics' === $payload['request_type']; }; - $metrics = array_values(array_filter($payloads, $isMetric)); + $metricRequests = array_values(array_filter($payloads, $isMetric)); - $this->assertCount(1, $metrics); - $this->assertEquals("generate-metrics", $metrics[0]["request_type"]); - $this->assertEquals("tracers", $metrics[0]["payload"]["series"][0]["namespace"]); - $this->assertEquals("spans_created", $metrics[0]["payload"]["series"][0]["metric"]); - $this->assertEquals(["integration_name:opentracing"], $metrics[0]["payload"]["series"][0]["tags"]); + $this->assertCount(1, $metricRequests); + $this->assertEquals("generate-metrics", $metricRequests[0]["request_type"]); + + $metrics = []; + foreach ($metricRequests[0]['payload']['series'] as $serie) { + $metrics[$serie['metric']][] = $serie; + } + + $this->assertCount(1, $metrics['spans_created']); + $this->assertEquals("tracers", $metrics['spans_created'][0]["namespace"]); + $this->assertEquals("spans_created", $metrics['spans_created'][0]["metric"]); + $this->assertEquals(["integration_name:opentracing"], $metrics['spans_created'][0]["tags"]); } }