newrelic_is_sampled

newrelic_is_sampled()
Returns a value indicating whether or not the current transaction is marked as sampled.

Requirements

Requires PHP agent version 9.3 or higher.

Must be called inside a transaction.

Description

Returns a value indicating whether or not the current transaction is marked as sampled.

Return value(s)

Returns true if distributed tracing is enabled, and the current transaction is marked as sampled, otherwise false.

Example(s)

Populate B3 Headers for use with Zipkin

Adds necessary distributed tracing metadata to the HTTP headers being sent to a Zipkin consumer:

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");

For more help

Recommendations for learning more: