Skip to content

Commit b8fde57

Browse files
authored
Fix OpenTracing test flakiness (#2867)
1 parent 0678d4f commit b8fde57

3 files changed

Lines changed: 28 additions & 29 deletions

File tree

tests/Frameworks/Custom/OpenTelemetry/index.php

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,9 @@
44

55
require __DIR__ . '/vendor/autoload.php';
66

7-
try {
8-
$tracerProvider = new TracerProvider();
9-
$tracer = $tracerProvider->getTracer('foo');
10-
$span = $tracer->spanBuilder('barbar')
11-
->startSpan()
12-
;
13-
$span->end();
14-
} finally {
15-
\dd_trace_internal_fn("finalize_telemetry");
16-
}
7+
$tracerProvider = new TracerProvider();
8+
$tracer = $tracerProvider->getTracer('foo');
9+
$span = $tracer->spanBuilder('barbar')
10+
->startSpan()
11+
;
12+
$span->end();

tests/Frameworks/Custom/OpenTracing/index.php

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,11 @@
22

33
require __DIR__ . '/vendor/autoload.php';
44

5-
try {
6-
$otTracer = new \DDTrace\OpenTracer1\Tracer(\DDTrace\GlobalTracer::get());
7-
$scope = $otTracer->startActiveSpan('web.request');
8-
$span = $scope->getSpan();
9-
$span->setTag('service.name', 'service_name');
10-
$span->setTag('resource.name', 'resource_name');
11-
$span->setTag('span.type', 'web');
12-
$span->setTag('http.method', $_SERVER['REQUEST_METHOD']);
13-
$span->finish();
14-
} finally {
15-
\dd_trace_internal_fn("finalize_telemetry");
16-
}
5+
$otTracer = new \DDTrace\OpenTracer1\Tracer(\DDTrace\GlobalTracer::get());
6+
$scope = $otTracer->startActiveSpan('web.request');
7+
$span = $scope->getSpan();
8+
$span->setTag('service.name', 'service_name');
9+
$span->setTag('resource.name', 'resource_name');
10+
$span->setTag('span.type', 'web');
11+
$span->setTag('http.method', $_SERVER['REQUEST_METHOD']);
12+
$span->finish();

tests/OpenTracing/InternalTelemetryTest.php

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,25 @@ public function testInternalMetricWithOpenTracing()
3737

3838
$this->executeCommand();
3939

40-
$requests = $this->retrieveDumpedData($this->untilTelemetryRequest("spans_created"));
40+
$requests = $this->retrieveDumpedData($this->untilTelemetryRequest("spans_created"), true);
4141

4242
$payloads = $this->readTelemetryPayloads($requests);
4343
$isMetric = function (array $payload) {
4444
return 'generate-metrics' === $payload['request_type'];
4545
};
46-
$metrics = array_values(array_filter($payloads, $isMetric));
46+
$metricRequests = array_values(array_filter($payloads, $isMetric));
4747

48-
$this->assertCount(1, $metrics);
49-
$this->assertEquals("generate-metrics", $metrics[0]["request_type"]);
50-
$this->assertEquals("tracers", $metrics[0]["payload"]["series"][0]["namespace"]);
51-
$this->assertEquals("spans_created", $metrics[0]["payload"]["series"][0]["metric"]);
52-
$this->assertEquals(["integration_name:opentracing"], $metrics[0]["payload"]["series"][0]["tags"]);
48+
$this->assertCount(1, $metricRequests);
49+
$this->assertEquals("generate-metrics", $metricRequests[0]["request_type"]);
50+
51+
$metrics = [];
52+
foreach ($metricRequests[0]['payload']['series'] as $serie) {
53+
$metrics[$serie['metric']][] = $serie;
54+
}
55+
56+
$this->assertCount(1, $metrics['spans_created']);
57+
$this->assertEquals("tracers", $metrics['spans_created'][0]["namespace"]);
58+
$this->assertEquals("spans_created", $metrics['spans_created'][0]["metric"]);
59+
$this->assertEquals(["integration_name:opentracing"], $metrics['spans_created'][0]["tags"]);
5360
}
5461
}

0 commit comments

Comments
 (0)