跳转至

Trace 配置

本文用于承载 C++ SDK 的 Trace 初始化配置与链路追踪说明。

初始化 Trace

FTTraceConfig tc;
tc.setTraceType(TraceType::DDTRACE)
  .setEnableLinkRUMData(true);
sdk->initTraceWithConfig(tc);
字段 类型 必须 说明
setSamplingRate float 采样率范围 [0,1]0 表示不采集,1 表示全采集,默认值为 1
setTraceType enum 默认为 DDTrace,支持 ZipkinJaegerDDTraceSkywalking(8.0+)、TraceParent(W3C)。如果接入 OpenTelemetry 选择对应链路类型时,请注意查阅支持类型及 agent 相关配置
setEnableLinkRUMData bool 是否与 RUM 数据关联,默认为 false

生成 Trace Header

链路追踪通过生成 Trace Header,并将 Header 写入 HTTP 请求头来实现。

/**
 * 按配置生成 Trace Header
 *
 * @param resourceId 资源 ID
 * @param url 网络地址
 * @return trace 数据
 */
PropagationHeader generateTraceHeader(const std::string resourceId, const std::string url);

示例:

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

文档评价

文档内容是否对您有帮助? ×