이벤트 데이터
GitLab v19.5Offering: GitLab Self-Managed, GitLab Dedicated
요약
중요: GitLab 18.0부터 GitLab Self-Managed 및 Dedicated 인스턴스는 이벤트 수준 데이터를 수집하여 제품 사용 현황을 더 자세히 파악할 수 있게 합니다. 제품 사용 데이터 수집 변경 사항에 대한 자세한 내용은 블로그 글 More granular product usage insights for GitLab Self-Managed and Dedicated를 참고합니다.
이벤트 수준의 제품 사용 데이터 추적#
중요: GitLab 18.0부터 GitLab Self-Managed 및 Dedicated 인스턴스는 이벤트 수준 데이터를 수집하여 제품 사용 현황을 더 자세히 파악할 수 있게 합니다. 이전에는 GitLab Self-Managed 인스턴스에서 집계된 메트릭만 수집했습니다.
제품 사용 데이터 수집 변경 사항에 대한 자세한 내용은 블로그 글 More granular product usage insights for GitLab Self-Managed and Dedicated를 참고합니다.
이벤트 데이터#
이벤트 데이터는 GitLab 플랫폼 내의 상호작용(또는 동작)을 추적합니다. 이러한 상호작용이나 동작은 CI/CD 파이프라인 실행, 머지 리퀘스트 병합, 웹훅 트리거, 이슈 생성처럼 사용자가 시작한 것일 수 있습니다. 예약된 파이프라인의 성공처럼 백그라운드 시스템 처리에서 발생하는 동작도 있습니다. 이벤트 데이터 수집은 사용자의 동작과 그 동작에 연관된 메타데이터에 초점을 둡니다.
사용자 ID는 개인 정보 보호를 위해 가명 처리되며, GitLab은 메트릭을 개별 사용자와 다시 연결하거나 식별하는 어떠한 처리도 수행하지 않습니다. 이벤트 데이터에는 소스 코드나 GitLab에 저장된 그 밖의 고객 생성 콘텐츠가 포함되지 않습니다.
자세한 내용은 다음도 함께 참고합니다.
- 이벤트 및 메트릭 목록은 메트릭 딕셔너리
- 고객 제품 사용 정보
이벤트 데이터의 이점#
이벤트 수준 데이터는 사용자를 식별하지 않으면서 더 세분화된 인사이트를 제공해 Service Ping의 여러 이점을 강화합니다.
- 선제적 지원: 세분화된 데이터를 통해 Customer Success Manager(CSM)와 지원팀이 더 자세한 정보에 접근할 수 있고, 일반적인 집계 메트릭에 의존하는 대신 조직의 고유한 요구에 맞춘 사용자 정의 메트릭을 만들어 깊이 있게 분석할 수 있습니다.
- 맞춤형 안내: 이벤트 수준 데이터는 기능이 어떻게 사용되는지 더 깊이 이해하게 해 주며, 최적화와 개선의 기회를 찾는 데 도움이 됩니다. 데이터의 깊이 덕분에 GitLab의 가치를 최대한 활용하고 워크플로를 개선하도록 더 정확하고 실행 가능한 권고를 제공할 수 있습니다.
- 익명화된 벤치마킹 보고서: 세분화된 이벤트 데이터는 상위 수준의 집계 데이터가 아니라 상세한 사용 패턴에 초점을 맞추므로, 유사한 조직과의 성능 비교를 더 정확하고 적절하게 수행할 수 있습니다.
이벤트 수준 데이터 수집 활성화 또는 비활성화#
Snowplow 추적이 활성화되어 있다면 제품 사용 추적을 활성화할 때 자동으로 비활성화됩니다. 한 번에 하나의 데이터 수집 방식만 활성화할 수 있습니다.
이벤트 수준 데이터 수집을 활성화하거나 비활성화하려면 다음 단계를 따릅니다.
- 관리자 액세스 권한이 있는 사용자로 로그인합니다.
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Settings > Metrics and Profiling을 선택합니다.
- Event tracking을 확장합니다.
- 설정을 활성화하려면 Enable event tracking 체크박스를 선택합니다. 비활성화하려면 체크박스를 해제합니다.
- Save changes를 선택합니다.
이벤트 수준 데이터 수집의 프로그래밍 방식 구성#
다음 두 가지 방법으로 이벤트 수준 데이터 수집을 프로그래밍 방식으로 구성할 수 있습니다.
- 초기 기본값: 최초 설치 시에만 적용됩니다
- 환경 변수 재정의: 런타임에 적용되며 데이터베이스 설정보다 우선합니다
초기 기본값(설치 시에만 적용)#
이 설정은 GitLab 최초 설치 시에만 적용됩니다. 설치 이후에 이 설정을 변경해도 효과가 없습니다.
/etc/gitlab/gitlab.rb에서 gitlab_rails['initial_gitlab_product_usage_data']를 false로 설정합니다.
gitlab_rails['initial_gitlab_product_usage_data'] = false
그런 다음 GitLab을 재구성합니다.
sudo gitlab-ctl reconfigure
values 파일에서 global.appConfig.initialDefaults.gitlabProductUsageData를 false로 설정합니다.
global:
appConfig:
initialDefaults:
gitlabProductUsageData: false
또는 명령줄에서 설정합니다.
helm install gitlab gitlab/gitlab \
--set global.appConfig.initialDefaults.gitlabProductUsageData=false
환경 변수 재정의(런타임)#
GitLab 18.9에서 도입되었습니다.
GITLAB_PRODUCT_USAGE_DATA_ENABLED 환경 변수로 런타임에 이벤트 수준 데이터 수집을 제어할 수 있습니다. 이 환경 변수를 설정하면 다음과 같이 동작합니다.
- 데이터베이스 설정보다 우선합니다
- Admin UI에서 변경할 수 없습니다(토글이 비활성화됩니다)
- 데이터베이스 마이그레이션 없이 즉시 적용됩니다
다음과 같은 경우에 유용합니다.
- 자동화된 구성이 필요한 폐쇄망 환경
- 업그레이드 전반에 걸쳐 일관된 설정이 필요한 배포
- UI 접근이 현실적이지 않은 자동 배포 워크플로
유효한 값은 true 또는 false 입니다.
/etc/gitlab/gitlab.rb에서 환경 변수를 설정합니다.
gitlab_rails['env']['GITLAB_PRODUCT_USAGE_DATA_ENABLED'] = 'false'
그런 다음 GitLab을 재구성합니다.
sudo gitlab-ctl reconfigure
values 파일에서 extraEnv로 환경 변수를 설정합니다.
gitlab:
sidekiq:
extraEnv:
GITLAB_PRODUCT_USAGE_DATA_ENABLED: 'false'
webservice:
extraEnv:
GITLAB_PRODUCT_USAGE_DATA_ENABLED: 'false'
또는 명령줄에서 설정합니다.
helm upgrade gitlab gitlab/gitlab \
--set gitlab.sidekiq.extraEnv.GITLAB_PRODUCT_USAGE_DATA_ENABLED='false' \
--set gitlab.webservice.extraEnv.GITLAB_PRODUCT_USAGE_DATA_ENABLED='false'
컨테이너를 시작할 때 환경 변수를 전달합니다.
docker run --env GITLAB_PRODUCT_USAGE_DATA_ENABLED=false gitlab/gitlab-ee:latest
또는 Docker Compose 파일에서 설정합니다.
services:
gitlab:
image: gitlab/gitlab-ee:latest
environment:
GITLAB_PRODUCT_USAGE_DATA_ENABLED: 'false'
GitLab을 시작하기 전에 환경 변수를 설정합니다.
export GITLAB_PRODUCT_USAGE_DATA_ENABLED=false
또는 systemd 서비스 파일이나 init 스크립트에 추가합니다.
현재 설정 소스 확인#
환경 변수 재정의가 적용 중이면 Admin UI에 해당 설정이 환경 변수로 제어되고 있어 UI에서 변경할 수 없다는 경고 배너가 표시됩니다.
API 로도 설정 소스를 확인할 수 있습니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/application/settings" | jq '.gitlab_product_usage_data_enabled, .gitlab_product_usage_data_source'
gitlab_product_usage_data_source 필드는 다음 중 하나를 반환합니다.
environment: 설정이GITLAB_PRODUCT_USAGE_DATA_ENABLED환경 변수로 제어됩니다database: 설정이 데이터베이스로 제어됩니다(Admin UI에서 변경할 수 있습니다)
이벤트 전달 시점#
이벤트는 발생 직후 거의 즉시 GitLab으로 전송됩니다. 시스템은 이벤트를 소규모 배치로 모아 10건이 쌓이면 데이터를 전송합니다. 이 방식은 네트워크 사용 효율을 유지하면서도 실시간에 가까운 전달을 제공합니다.
페이로드 크기 및 압축#
각 이벤트는 JSON 형식으로 약 10 kB 입니다. 10건 배치의 압축 전 페이로드 크기는 약 100 kB 입니다. 전송 전에 페이로드를 압축해 데이터 전송량을 줄이고 성능을 높입니다.
이벤트 데이터 로그#
이벤트 수준 추적 데이터는 product_usage_data.log 파일에 기록됩니다. 이 로그에는 페이로드 정보와 컨텍스트 데이터를 포함해 추적된 제품 사용 이벤트가 JSON 형식으로 담깁니다. 각 줄은 하나의 추적 이벤트와 전송된 모든 데이터를 나타냅니다.
로그 파일 위치는 다음과 같습니다.
- Linux 패키지 설치의 경우
/var/log/gitlab/gitlab-rails/product_usage_data.log - 자체 컴파일 설치의 경우
/home/git/gitlab/log/product_usage_data.log
이 로그는 데이터 전송 과정을 충분히 확인할 수 있게 해 주지만, 기능 사용 분석이 아니라 보안팀의 점검을 위해 설계되었습니다. 로깅 시스템에 대한 자세한 내용은 로그 시스템 문서를 참고합니다.