사용자 정의 태그 사용¶
C#과 Native C/C++ 모두 사용자 정보, SDK 글로벌 컨텍스트 및 RUM 글로벌 컨텍스트를 지원합니다. Log는 독립적인 글로벌 속성을 추가로 구성할 수 있습니다.
SDK 런타임에 추가¶
익명 사용자 식별자¶
C# 및 Native C/C++는 초기화 시 로그인하지 않은 사용자에 대해 ft.rd_로 시작하는 익명 userid를 생성합니다. 식별자는 RUM 애플리케이션 ID별로 격리되며 SDK 캐시 디렉터리의 identity 하위 디렉터리에 저장됩니다. 동일한 RUM 애플리케이션 ID 및 캐시 디렉터리는 프로세스 재시작 후에도 동일한 식별자를 계속 사용하며, C++ 호스트와 Electron Bridge도 이 의미를 재사용합니다.
사용자 API를 호출하지 않으면 RUM 데이터는 익명 userid를 사용합니다. RUM에 연결된 Log를 활성화하면 해당 식별자도 함께 전달됩니다. SetUser() 또는 guance_sdk_set_user()를 호출한 후에는 이후 데이터에서 명시적 사용자 ID를 사용합니다. 초기화 API를 호출한 후에는 이후 데이터가 원래의 익명 식별자를 다시 사용합니다. 해당 캐시 디렉터리를 삭제하면 식별자가 재설정됩니다.
식별 파일에 쓸 수 없거나 잠금이 실패하면 SDK는 현재 프로세스에 대해 임시 익명 식별자를 사용하고 C# DiagnosticListener 또는 Native 진단 출력을 통해 지속성 실패를 보고합니다. 텔레메트리 수집은 중단되지 않습니다.
사용자 설정¶
사용자 초기화:
사용자 전환은 이후 데이터에만 영향을 미치며 이미 큐에 추가된 데이터는 수정되지 않습니다.
SDK 글로벌 컨텍스트¶
RUM 및 연결된 Log에 적용됩니다:
RUM 글로벌 컨텍스트¶
RUM 데이터에만 추가됩니다:
Log 글로벌 컨텍스트¶
Log 전용 태그는 Log 초기화 시 구성됩니다:
전체 파라미터는 Log 구성을 참조하세요.
이벤트 수준 속성¶
C#의 수동 RUM 및 Log API는 이벤트 수준 딕셔너리를 허용합니다. Native Log는 guance_log_property를 허용합니다. Native RUM v1의 수동 이벤트 API는 임의의 이벤트 수준 속성 구조를 제공하지 않습니다.
GuanceSdk.AddAction(
"Save",
"click",
TimeSpan.FromMilliseconds(25),
new Dictionary<string, object?>
{
["result"] = "success"
});
명명 및 예약 필드¶
- 소문자, 안정적이며 집계 가능한 필드명을 사용하세요(예:
feature.name). - 토큰, 쿠키, 비밀번호 또는 직접 식별 정보를 작성하지 마십시오.
app_id,service,env,version,sdk_name,session_id,view_id,action_id및 플랫폼 필드는 SDK가 관리합니다.- 사용자 정의 컨텍스트는 SDK 예약 필드를 덮어쓸 수 없습니다.
- Native 컨텍스트 API는 문자열을 동기적으로 복사합니다. 빈 Key를 전달하지 마십시오.