GitLab 표준 컨텍스트 필드
GitLab v19.1표준 컨텍스트(Standard context)는 Cloud context라고도 하며, GitLab Standard Context 스키마에서 사용 가능한 모든 필드를 설명합니다. 표준 컨텍스트에 새 필드를 추가하려면: iglu 리포지터리에 머지 리퀘스트를 생성하여 스키마를 업데이트합니다.
표준 컨텍스트(Standard context)는 Cloud context라고도 하며, GitLab Standard Context 스키마에서 사용 가능한 모든 필드를 설명합니다.
필수 필드#
| 필드 | 타입 | 설명 | 예시 |
|---|---|---|---|
| environment | string | 소스 환경의 이름. | "production", "staging" |
선택 필드#
| 필드 | 타입 | 설명 | 예시 |
|---|---|---|---|
| project_id | integer, null | 연결된 프로젝트의 ID. 프로젝트 경로 내에서 추적이 이루어질 때 사용 가능합니다. (예: GitLab 프로젝트) | 12345 |
| namespace_id | integer, null | 연결된 네임스페이스의 ID. 그룹 경로 내에서 추적이 이루어질 때 사용 가능합니다. (예: GitLab-org) | 67890 |
| ultimate_parent_namespace_id | integer, null | 연결된 네임스페이스의 최상위 부모 네임스페이스 ID. 이벤트의 네임스페이스 ID를 알 수 있는 경우 사용 가능합니다. | 67869 |
| user_id | integer, null | 연결된 사용자의 ID. Snowplow 인리처(enricher)에서 가명 처리됩니다. 메트릭 사전을 참고하세요. | longhash |
| global_user_id | string, null | 인스턴스 전반에서 고유한 익명화된 user_id 해시. | longhash |
| is_gitlab_team_member | boolean, null | 해당 액션이 GitLab 팀 구성원에 의해 트리거되었는지 여부를 나타냅니다. | true, false |
| user_type | string, null | 사람과 봇 사용을 구분합니다. | "human", "bot" |
| organization_id | integer, null | 연결된 조직의 ID. 조직 경로 내에서 추적이 이루어질 때 사용 가능합니다. (예: GitLab-org) | 1011 |
인스턴스 정보#
| 필드 | 타입 | 설명 | 예시 |
|---|---|---|---|
| instance_id | string, null | 요청이 발생한 GitLab 인스턴스의 ID. | instance_long_uuid |
| unique_instance_id | string, null | 요청이 발생한 GitLab 인스턴스의 고유 ID. | instance_long_uuid |
| host_name | string, null | GitLab 인스턴스의 호스트명. | "gitlab-host-id" |
| instance_version | string, null | GitLab 인스턴스의 버전. | "15.8.0" |
| realm | string, null | GitLab의 배포 유형. 반드시 "self-managed", "saas", "dedicated" 중 하나여야 합니다. | "saas" |
| deployment_type | string, null | GitLab의 배포 유형. "dedicated" 값을 전송하지 않았던 realm을 대체하기 위해 만들어졌습니다. 반드시 "self-managed", ".com", "dedicated" 중 하나여야 합니다. | ".com" |
클라이언트 정보#
| 필드 | 타입 | 설명 | 예시 |
|---|---|---|---|
| client_name | string, null | 요청을 전송하는 클라이언트의 이름. | "chrome", "jetbrains" |
| client_version | string, null | 클라이언트의 버전. | "108.0.5359.124" |
| client_type | string, null | 클라이언트의 유형. | "browser", "ide" |
| interface | string, null | 요청이 발생한 인터페이스. | "Duo Chat" |
기능 및 플랜 정보#
| 필드 | 타입 | 설명 | 예시 |
|---|---|---|---|
| feature_category | string, null | 특정 기능이 속하는 카테고리. | "duo_chat" |
| feature_enabled_by_namespace_ids | array, null | 사용자가 추적된 기능을 사용할 수 있도록 허용하는 네임스페이스 ID 목록. | [123, 456, 789] |
| feature_enablement_type | string, null | 기능이 활성화된 방식. | "duo_core", "duo_pro", "duo_enterprise", "duo_with_amazon_q" |
| plan | string, null | 구독 플랜의 이름 (최대 길이: 32자). | "free", "ultimate" |
추적 및 컨텍스트#
| 필드 | 타입 | 설명 | 예시 |
|---|---|---|---|
| source | string, null | 소스 애플리케이션의 이름. | "gitlab-rails", "gitlab-javascript" |
| app_id | string, null | 애플리케이션 식별자. | "gitlab_duo_workflow", "gitlab" |
| google_analytics_id | string, null | 마케팅 사이트의 Google Analytics ID. | "UA-XXXXXXXX-X" |
| context_generated_at | string, null | 컨텍스트가 생성된 시점을 나타내는 타임스탬프. | "2023-12-20T10:00:00Z" |
| correlation_id | string, null | 각 요청에 대한 고유 요청 ID. | uuid |
| billing_event_id | string, null | 각 청구 이벤트에 대한 고유 식별자 (RFC9562 UUID). 청구 가능한 사용 이벤트와 연결하는 데 사용됩니다. correlation_id당 여러 개의 billing_event_id가 존재할 수 있습니다. | uuid |
| extra | object, null | 이벤트와 연결된 추가 데이터로, 키-값 쌍 형식입니다. | {"key": "value"} |
표준 컨텍스트에 새 필드 추가#
표준 컨텍스트에 새 필드를 추가하려면:
-
iglu 리포지터리에 머지 리퀘스트를 생성하여 스키마를 업데이트합니다.
-
새 필드를 가명 처리해야 하는 경우,
snowplow-pseudonymization프로젝트의 ATTRIBUTE_TO_PSEUDONYMISE 상수에 추가합니다. -
gitlab-org/iglu의 새 버전에 맞게 tracking/standard_context.rb의GITLAB_STANDARD_SCHEMA_URL을 업데이트합니다. -
표준 컨텍스트에 새 필드가 포함된 이벤트 전송을 시작합니다.
관련 링크#
- Unit Primitives에 대한 설명은 cloud connector에 문서화되어 있습니다.