콘텐츠로 이동

사용자 지정 수집 규칙

이 문서는 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 요청 메서드 아니요 GET, POST
ResourceParams.responseBody 응답 body 콘텐츠 아니요

코드 예제

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

문서 평가

이 페이지가 도움이 되었나요?