내부 분석 리뷰 지침
이 페이지에는 Analytics Instrumentation 리뷰에 대한 입문 자료가 포함되어 있습니다. 코드 리뷰에 대한 보다 폭넓은 조언과 일반적인 모범 관행에 대해서는 코드 리뷰 안내서를 참조하세요.
리뷰 프로세스
우리는 Merge Request(MR)이 내부 분석 코드를 건드리거나 사용할 때 Analytics Instrumentation 리뷰를 강제화합니다. 이에는 다음이 포함됩니다(하지만 이에 국한되지는 않음):
- 메트릭, 예를 들면:
-
config/metrics
내의 파일. -
ee/config/metrics
내의 파일. -
schema.json
.
-
- 내부 이벤트, 예를 들면
config/events
내의 파일. - Analytics Instrumentation 도구, 예를 들면
InternalEventsGenerator
.
대부분의 경우에는 자동으로 Analytics Instrumentation 리뷰가 추가되지만, 자동화된 도구가 관련 변경 사항을 놓친 경우 매뉴얼으로 요청할 수도 있습니다.
역할과 프로세스
Merge Request 작성자는 다음을 수행해야 합니다.
- Analytics Instrumentation 리뷰가 필요한지 결정합니다. 변경 사항이 Analytics Instrumentation 도메인과 관련이 없는 경우 Analytics Instrumentation 리뷰를 건너뛸 수 있으며 레이블을 제거할 수 있습니다.
- Analytics Instrumentation 리뷰가 필요하고 자동으로 지정되지 않은 경우
~analytics instrumentation
및~analytics instrumentation::review pending
레이블을 추가합니다. - 이벤트에 대한 변경 사항이 MR의 일부인 경우:
- 로컬에서 이벤트가 제대로 발생하는지 사용 가능한 테스트 도구를 사용하여 확인합니다.
- 메트릭에 대한 변경 사항이 MR의 일부인 경우:
- 새로운 메트릭이 이용 가능하고 Service Ping payload에서 데이터를 보고하는지 확인하기 위해 다음을 실행합니다:
require_relative 'spec/support/helpers/service_ping_helpers.rb'; ServicePingHelpers.get_current_usage_metric_value(key_path)
이때key_path
는 새로운 메트릭의key_path
로 대체합니다.
- 새로운 메트릭이 이용 가능하고 Service Ping payload에서 데이터를 보고하는지 확인하기 위해 다음을 실행합니다:
- 리뷰어 룰렛을 사용하여 작성자가 아닌 Analytics Instrumentation 리뷰어를 지정합니다.
- 적절한 경우 다른 검토를 지정합니다.
-
~analytics instrumentation
리뷰는 유지자(maintainer) 검토를 요구하지 않습니다.
Analytics Instrumentation 리뷰어는 다음을 수행해야 합니다.
- Merge Request에 대해 첫 번째로 리뷰를 수행하고 작성자에게 개선 사항을 제안합니다.
- 폐기된 분석 메서드가 사용되지 않도록 합니다.
- 리뷰의 일부로 이벤트에 대한 변경 사항인 경우:
- 발생하는 이벤트가 해당하는 정의 파일이 있는지 확인합니다.
- 이벤트 정의 파일이 올바른지 확인합니다.
- 리뷰의 일부로 메트릭에 대한 변경 사항인 경우:
-
~database
레이블을 추가하고, 데이터베이스를 기반으로 하는 메트릭에 대해 데이터베이스 리뷰를 요청합니다. - 메트릭의 YAML 정의에 대해:
- 메트릭의
description
을 확인합니다. - 메트릭의
key_path
를 확인합니다. -
product_section
,product_stage
, 및product_group
필드를 확인합니다. 이들은 스테이지 파일과 일치해야 합니다. - 파일 위치를 확인합니다. 시간 프레임을 고려하고, 파일이
ee
아래에 있어야 하는지 확인합니다. - 티어를 확인합니다.
- 메트릭의
- 메트릭이 변경되거나 제거된 경우: MR 작성자가 메트릭이 제거되었음을 이슈에 대한 코멘트에서 고객 성공 운영팀(
@csops-team
), Analytics Engineers(@gitlab-data/analytics-engineers
), 및 Product Analysts(@gitlab-data/product-analysts
)에게@
를 사용하여 통지했는지 확인합니다. 그리고 이러한 그룹들이 제거를 승인했는지 확인합니다.
-
- MR을 승인하고, MR에
~"analytics instrumentation::approved"
레이블을 다시 지정합니다.