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