ํต์ฌ๋ก
newrelic_is_sampled()
ํ์ฌ ํธ๋์ญ์ ์ด ์ํ๋ง๋ ๊ฒ์ผ๋ก ํ์๋๋์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ๊ฐ์ ๋ฐํํฉ๋๋ค.
์๊ตฌ ์ฌํญ
PHP ์์ด์ ํธ ๋ฒ์ 9.3 ์ด์์ด ํ์ํฉ๋๋ค.
ํธ๋์ญ์ ๋ด์์ ํธ์ถ๋์ด์ผ ํฉ๋๋ค.
์ค๋ช
ํ์ฌ ํธ๋์ญ์ ์ด ์ํ๋ง๋ ๊ฒ์ผ๋ก ํ์๋๋์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ๊ฐ์ ๋ฐํํฉ๋๋ค.
๋ฐํ ๊ฐ
๋ถ์ฐ ์ถ์ ์ด ํ์ฑํ๋๊ณ ํ์ฌ ํธ๋์ญ์
์ด ์ํ๋ง๋ ๊ฒ์ผ๋ก ํ์๋ ๊ฒฝ์ฐ true
์ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด false
์ ๋ฐํํฉ๋๋ค.
์
Zipkin๊ณผ ํจ๊ป ์ฌ์ฉํ B3 ํค๋ ์ฑ์ฐ๊ธฐ
Zipkin ์๋น์์๊ฒ ์ ์ก๋๋ HTTP ํค๋์ ํ์ํ ๋ถ์ฐ ์ถ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
function make_http_request($url) { $metadata = newrelic_get_trace_metadata(); $sampled = newrelic_is_sampled();
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'X-B3-TraceId: ' . $metadata['trace_id'], 'X-B3-SpanId: ' . substr(uniqid() . uniqid(), 0, 16), 'X-B3-ParentSpanId: ' . $metadata['span_id'], 'X-B3-Sampled: ' . $sampled));
return curl_exec($ch);}
$status = make_http_request("zipkin-consumer.example");