내부 분석 검토 지침
이 페이지는 분석 기구 검토를 위한 소개 자료를 포함합니다. 코드 검토에 대한 보다 광범위한 조언 및 일반 모범 사례는 코드 검토 가이드를 참조하십시오.
검토 프로세스
Merge Request(MR)가 내부 분석 코드를 수정하거나 사용할 때 분석 기구 검토를 의무화합니다.
이는 다음을 포함하되 이에 국한되지 않습니다:
- 메트릭, 예를 들어:
-
config/metrics
의 파일. -
ee/config/metrics
의 파일. -
schema.json
.
-
- 내부 이벤트, 예를 들어
config/events
의 파일. - 분석 기구 도구, 예를 들어
Internal events CLI
.
대부분의 경우, 분석 기구 검토가 자동으로 추가되지만, 자동화가 관련 변경사항을 놓친 경우 수동으로 요청할 수도 있습니다.
역할 및 프로세스
Merge Request 작성자는
- 분석 기구 검토가 필요한지 결정해야 합니다. 변경사항이 분석 기구 도메인과 관련이 없다면 분석 기구 검토를 건너뛰고 라벨을 제거할 수 있습니다.
- 분석 기구 검토가 필요하고 자동으로 할당되지 않은 경우,
~analytics instrumentation
와~analytics instrumentation::review pending
라벨을 추가해야 합니다. - MR의 일부로 이벤트 변경 사항이 있는 경우:
- 사용할 수 있는 테스트 도구 중 하나를 사용하여 이벤트가 로컬에서 발동되는지 확인합니다.
- MR의 일부로 메트릭 변경 사항이 있는 경우:
- 새 메트릭이 사용 가능하며 Service Ping 페이로드에서 데이터를 보고하고 있는지 확인합니다. 다음을 실행하세요:
require_relative 'spec/support/helpers/service_ping_helpers.rb'; ServicePingHelpers.get_current_usage_metric_value(key_path)
여기서key_path
는 새 메트릭의key_path
로 대체됩니다.
- 새 메트릭이 사용 가능하며 Service Ping 페이로드에서 데이터를 보고하고 있는지 확인합니다. 다음을 실행하세요:
- 작성자가 아닌 분석 기구 검토자를 할당하기 위해 리뷰어 룰렛을 사용합니다.
- 적절하게 다른 검토를 할당합니다.
-
~analytics instrumentation
리뷰는 유지 관리자의 검토가 필요하지 않습니다.
분석 기구 검토자는
- Merge Request에 대한 1차 검토를 수행하고 작성자에게 개선 사항을 제안합니다.
- 더 이상 사용되지 않는 분석 메서드가 사용되지 않도록 확인합니다.
- 이벤트 변경 사항이 검토의 일부인 경우:
- 발동되는 이벤트에 해당 정의 파일이 있는지 확인합니다.
- 이벤트 정의 파일이 올바른지 확인합니다.
- 메트릭 변경 사항이 검토의 일부인 경우:
- 데이터베이스를 기반으로 하는 메트릭에 대해
~database
라벨을 추가하고 데이터베이스 검토를 요청합니다. - 메트릭의 YAML 정의에 대해:
- 메트릭의
description
을 확인합니다. - 메트릭의
key_path
를 확인합니다. -
product_group
필드를 확인합니다. 이는 stages 파일과 일치해야 합니다. - 파일 위치를 확인합니다. 시간 프레임을 고려하고 파일이
ee
하위에 있어야 하는지 확인합니다. - Tier를 확인합니다.
- 메트릭의
- 메트릭이 변경되거나 제거된 경우: MR 작성자가 고객 성공 운영팀 (
@csops-team
), 분석 엔지니어 (@gitlab-data/analytics-engineers
), 및 제품 분석가 (@gitlab-data/product-analysts
)에게 해당 그룹을 MR 문제에 대한 댓글로@
언급하여 제거 사실을 통지했는지 확인합니다. 모든 그룹이 제거를 인정해야 합니다.
- 데이터베이스를 기반으로 하는 메트릭에 대해
- Internal Events CLI 변경 사항이 검토의 일부인 경우:
- 변경 사항이 CLI 스타일 가이드를 준수하는지 확인합니다.
- CLI를 실행하고 변경 사항의 UX를 확인합니다:
- 내용이 스킴할 수 있나요?
- 이 내용은 팀 밖의 사람들에게 이해가 될까요?
- 이 정보가 필요합니까? 도움이 됩니까?
- 이전에 이 흐름을 경험해본 적이 없다면 어떤 우려가 있을 수 있습니까?
- 모든 입력의 의미나 효과가 명확합니까?
- 가장자리 사례나 주의 사항을 설명할 경우, 사용자가 그것에 대해 걱정해야 하는지 검증할 지침이 있습니까?
- MR을 승인하고 MR에
~"analytics instrumentation::approved"
라벨을 다시 붙입니다.