Custom Collection Rules¶
This document describes the manual RUM collection capabilities of the C++ SDK.
Action¶
Usage¶
/**
* Start an action
*
* @param actionName Action name
* @param actionType Action type
*/
void startAction(std::string actionName, std::string actionType);
/**
* End an action
*/
void stopAction();
Code Example¶
View¶
Usage¶
/**
* Start a view
*
* @param viewName Current view name
*/
void startView(std::string viewName);
/**
* End a view
*/
void stopView();
Code Example¶
Resource¶
Usage¶
/**
* Start a resource
*
* @param resourceId Resource ID
*/
void startResource(std::string resourceId);
/**
* Stop a resource
*
* @param resourceId Resource ID
*/
void stopResource(std::string resourceId);
/**
* Set network transmission content
*
* @param resourceId Resource ID
* @param params Network transmission parameters
* @param netStatusBean Network status statistics
*/
void addResource(std::string resourceId, ResourceParams params, NetStatus netStatusBean);
| Method Name | Meaning | Required | Description |
|---|---|---|---|
NetStatus.fetchStartTime |
Request start time | No | |
NetStatus.tcpTime |
TCP connection time | No | |
NetStatus.dnsTime |
DNS resolution time | No | |
NetStatus.responseTime |
Response content transmission time | No | |
NetStatus.sslTime |
SSL connection time | No | |
NetStatus.firstByteTime |
Total time from DNS/SSL to receiving the first packet | No | |
NetStatus.ttfb |
Request response time, time from sending request to receiving first packet | No | |
NetStatus.tcpStartTime |
TCP start time | No | |
NetStatus.tcpEndTime |
TCP end time | No | |
NetStatus.dnsStartTime |
DNS start time | No | |
NetStatus.dnsEndTime |
DNS end time | No | |
NetStatus.responseStartTime |
Response start time | No | |
NetStatus.responseEndTime |
Response end time | No | |
NetStatus.sslStartTime |
SSL start time | No | |
NetStatus.sslEndTime |
SSL end time | No | |
ResourceParams.url |
URL address | Yes | |
ResourceParams.requestHeader |
Request header parameters | No | |
ResourceParams.responseHeader |
Response header parameters | No | |
ResourceParams.responseConnection |
Response connection |
No | |
ResourceParams.responseContentType |
Response Content-Type |
No | |
ResourceParams.responseContentEncoding |
Response Content-Encoding |
No | |
ResourceParams.resourceMethod |
Request method | No | GET, POST, etc. |
ResourceParams.responseBody |
Returned body content | No |
Code Example¶
RestClient::init();
RestClient::Connection* conn = new RestClient::Connection(url);
RestClient::HeaderFields headers;
headers["Accept"] = "application/json";
RestClient::Response r = conn->get("/get");
RestClient::Connection::Info info = conn->GetInfo();
ResourceParams params;
params.resourceMethod = "GET";
params.requestHeader = convert(headers);
params.responseHeader = convert(r.headers);
params.responseBody = r.body;
params.responseConnection = "Keep-Alive";
params.responseContentEncoding = "UTF-8";
params.responseContentType = r.headers["Content-Type"];
params.url = url;
params.resourceStatus = r.code;
NetStatus status;
status.dnsTime = info.lastRequest.nameLookupTime * ns_factor;
status.tcpTime = (info.lastRequest.connectTime - info.lastRequest.nameLookupTime) * ns_factor;
status.sslTime = (info.lastRequest.appConnectTime - info.lastRequest.connectTime) * ns_factor;
status.ttfb = (info.lastRequest.startTransferTime - info.lastRequest.preTransferTime) * ns_factor;
status.responseTime = (info.lastRequest.totalTime - info.lastRequest.startTransferTime) * ns_factor;
status.firstByteTime = info.lastRequest.startTransferTime * ns_factor;
RestClient::disable();
Error¶
Usage¶
/**
* Add error information
*
* @param log Log
* @param message Message
* @param errorType Error type
* @param state Program running state
*/
void addError(std::string log, std::string message, RUMErrorType errorType, AppState state);
Code Example¶
sdk->addError("test error 1", "first error", RUMErrorType::native_crash, AppState::UNKNOWN);
sdk->addError("test error 2", "second error", RUMErrorType::network_error, AppState::UNKNOWN);
LongTask¶
Usage¶
/**
* Add a long-running task
*
* @param log Log
* @param duration Duration (ns)
*/
void addLongTask(std::string log, long duration);