|
| 1 | +--TEST-- |
| 2 | +Distributed tracing span is generated for file_get_contents() |
| 3 | +--SKIPIF-- |
| 4 | +<?php |
| 5 | +if (!getenv('HTTPBIN_HOSTNAME')) { |
| 6 | + die('skip: HTTPBIN_HOSTNAME env var required'); |
| 7 | +} |
| 8 | +?> |
| 9 | +--ENV-- |
| 10 | +DD_TRACE_AUTO_FLUSH_ENABLED=0 |
| 11 | +DD_TRACE_LOG_LEVEL=info,startup=off |
| 12 | +DD_TRACE_GENERATE_ROOT_SPAN=0 |
| 13 | +DD_TRACE_HTTPSTREAM_ENABLED=1 |
| 14 | +--FILE-- |
| 15 | +<?php |
| 16 | + |
| 17 | +$port = getenv('HTTPBIN_PORT') ?: '80'; |
| 18 | +$host = getenv('HTTPBIN_HOSTNAME'); |
| 19 | +$url = 'http://' . $host . ':' . $port . '/headers'; |
| 20 | + |
| 21 | +DDTrace\trace_function('file_get_contents', function (\DDTrace\SpanData $span) { |
| 22 | + $span->name = 'httpstream'; |
| 23 | +}); |
| 24 | + |
| 25 | +$response = file_get_contents($url); |
| 26 | + |
| 27 | +include 'distributed_tracing.inc'; |
| 28 | +$headers = dt_decode_headers_from_httpbin($response); |
| 29 | +dt_dump_headers_from_httpbin($headers, [ |
| 30 | + 'x-datadog-trace-id', |
| 31 | + 'x-datadog-parent-id', |
| 32 | + 'x-datadog-sampling-priority', |
| 33 | + 'x-datadog-tags', |
| 34 | + 'traceparent', |
| 35 | + 'tracestate', |
| 36 | +]); |
| 37 | + |
| 38 | +echo "\n=== Span ===\n"; |
| 39 | +$spans = dd_trace_serialize_closed_spans(); |
| 40 | +$span = $spans[1]; |
| 41 | + |
| 42 | +echo "name: " . $span['name'] . "\n"; |
| 43 | +echo "resource: " . $span['resource'] . "\n"; |
| 44 | +echo "type: " . $span['type'] . "\n"; |
| 45 | +echo "service: " . $span['service'] . "\n"; |
| 46 | +echo "meta:\n"; |
| 47 | +ksort($span['meta']); |
| 48 | +foreach ($span['meta'] as $k => $v) { |
| 49 | + echo " $k: $v\n"; |
| 50 | +} |
| 51 | + |
| 52 | +echo 'Done.' . PHP_EOL; |
| 53 | +?> |
| 54 | +--EXPECTF-- |
| 55 | +[ddtrace] [warning] Error loading deferred integration DDTrace\Integrations\Filesystem\FilesystemIntegration: Class not loaded and not autoloadable |
| 56 | +traceparent: %s |
| 57 | +tracestate: %s |
| 58 | +x-datadog-parent-id: %d |
| 59 | +x-datadog-sampling-priority: 1 |
| 60 | +x-datadog-tags: %s |
| 61 | +x-datadog-trace-id: %d |
| 62 | + |
| 63 | +=== Span === |
| 64 | +name: file_get_contents |
| 65 | +resource: %s |
| 66 | +type: cli |
| 67 | +service: %s |
| 68 | +meta: |
| 69 | + component: php.stream |
| 70 | + http.url: http://%s:%d/headers |
| 71 | + network.destination.name: %s |
| 72 | + span.kind: client |
| 73 | +Done. |
| 74 | +[ddtrace] [info] No finished traces to be sent to the agent |
0 commit comments