Skip to content

Trace Configuration

This document describes the Trace initialization configuration and tracing instructions for the C++ SDK.

Initialize Trace

FTTraceConfig tc;
tc.setTraceType(TraceType::DDTRACE)
  .setEnableLinkRUMData(true);
sdk->initTraceWithConfig(tc);
Field Type Required Description
setSamplingRate float No Sampling rate range [0,1]. 0 means no collection, 1 means full collection. Default value is 1.
setTraceType enum No Default is DDTrace. Supports Zipkin, Jaeger, DDTrace, Skywalking (8.0+), TraceParent (W3C). When integrating OpenTelemetry and selecting the corresponding trace type, please refer to the supported types and agent-related configurations.
setEnableLinkRUMData bool No Whether to correlate with RUM data. Default is false.

Generate Trace Header

Trace propagation is achieved by generating a Trace Header and writing the Header into the HTTP request headers.

/**
 * Generate Trace Header according to the configuration.
 *
 * @param resourceId Resource ID
 * @param url Network address
 * @return trace data
 */
PropagationHeader generateTraceHeader(const std::string resourceId, const std::string url);

Example:

RestClient::init();
RestClient::Connection* conn = new RestClient::Connection(url);
std::string resId = "resource-id";

RestClient::HeaderFields headers;
headers["Accept"] = "application/json";

auto headerWithRes = sdk->generateTraceHeader(resId, url);
for (auto& hd : headerWithRes) {
    headers[hd.first] = hd.second;
}
conn->SetHeaders(headers);

RestClient::Response r = conn->get("/get");
RestClient::disable();