コンテンツにスキップ

カスタム収集ルール

この記事では、C++ SDK の手動 RUM 収集機能について説明します。

Action

使用方法

/**
 * action 開始
 *
 * @param actionName action 名
 * @param actionType action タイプ
 */
void startAction(std::string actionName, std::string actionType);

/**
 * action 終了
 */
void stopAction();

コード例

sdk->startAction("just4test", "click");

View

使用方法

/**
 * view 開始
 *
 * @param viewName 現在のページ名
 */
void startView(std::string viewName);

/**
 * view 終了
 */
void stopView();

コード例

sdk->startView("TEST_VIEW_ONE");
sdk->stopView();

Resource

使用方法

/**
 * resource 開始
 *
 * @param resourceId リソース ID
 */
void startResource(std::string resourceId);

/**
 * resource 終了
 *
 * @param resourceId リソース ID
 */
void stopResource(std::string resourceId);

/**
 * ネットワーク転送内容を設定する
 *
 * @param resourceId    リソース ID
 * @param params        ネットワーク転送パラメータ
 * @param netStatusBean ネットワーク状態統計
 */
void addResource(std::string resourceId, ResourceParams params, NetStatus netStatusBean);
メソッド名 意味 必須 説明
NetStatus.fetchStartTime リクエスト開始時間 任意
NetStatus.tcpTime TCP 接続時間 任意
NetStatus.dnsTime DNS 解決時間 任意
NetStatus.responseTime 応答コンテンツ転送時間 任意
NetStatus.sslTime SSL 接続時間 任意
NetStatus.firstByteTime DNS/SSL から最初のパケット受信までの合計時間 任意
NetStatus.ttfb リクエスト応答時間、リクエスト送信から最初のパケット受信までの時間 任意
NetStatus.tcpStartTime TCP 開始時間 任意
NetStatus.tcpEndTime TCP 終了時間 任意
NetStatus.dnsStartTime DNS 開始時間 任意
NetStatus.dnsEndTime DNS 終了時間 任意
NetStatus.responseStartTime 応答開始時間 任意
NetStatus.responseEndTime 応答終了時間 任意
NetStatus.sslStartTime SSL 開始時間 任意
NetStatus.sslEndTime SSL 終了時間 任意
ResourceParams.url URL アドレス 必須
ResourceParams.requestHeader リクエストヘッダーパラメータ 任意
ResourceParams.responseHeader レスポンスヘッダーパラメータ 任意
ResourceParams.responseConnection レスポンス connection 任意
ResourceParams.responseContentType レスポンス Content-Type 任意
ResourceParams.responseContentEncoding レスポンス Content-Encoding 任意
ResourceParams.resourceMethod リクエストメソッド 任意 GETPOST など
ResourceParams.responseBody レスポンスボディ内容 任意

コード例

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

使用方法

/**
 * エラー情報を追加
 *
 * @param log       ログ
 * @param message   メッセージ
 * @param errorType エラータイプ
 * @param state     プログラム実行状態
 */
void addError(std::string log, std::string message, RUMErrorType errorType, AppState state);

コード例

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

使用方法

/**
 * ロングタスクを追加
 *
 * @param log      ログ
 * @param duration 持続時間(ns)
 */
void addLongTask(std::string log, long duration);

コード例

sdk->addLongTask("test long task", 100010);

フィードバック

このページは役に立ちましたか?