내부 분석 검토 지침

이 페이지에는 Analytics Instrumentation 검토를 위한 입문 자료가 포함되어 있습니다. 보다 일반적인 코드 검토에 대한 권고사항 및 모범 사례는 코드 검토 가이드를 참조하십시오.

검토 프로세스

우리는 병합 요청(MR)이 내부 분석 코드에 영향을 미치거나 사용할 때 Analytics Instrumentation 검토를 수행하도록 제안합니다. 이는 다음과 같은 내용을 포함하지만 이에 국한되지는 않습니다:

대부분의 경우, Analytics Instrumentation 검토는 자동으로 추가되지만, 자동화가 관련 변경을 놓친 경우 수동으로 요청할 수도 있습니다.

역할 및 프로세스

병합 요청 작성자는 다음을 수행해야 합니다.

  • Analytics Instrumentation 검토가 필요한지 결정합니다. 변경 사항이 Analytics Instrumentation 도메인과 관련이 없는 경우 Analytics Instrumentation 검토를 건너뛸 수 있으며 레이블을 제거할 수 있습니다.
  • 만약 Analytics Instrumentation 검토가 필요하고 자동으로 할당되지 않았다면 ~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로 대체합니다.
  • 리뷰어 룰렛을 사용하여 작성자가 아닌 Analytics Instrumentation 리뷰어를 지정합니다.
  • 적절한 경우 다른 검토를 지정합니다.
  • ~analytics instrumentation 검토에는 관리자 검토가 필요하지 않습니다.

Analytics Instrumentation 리뷰어는 다음을 수행해야 합니다.

  • 병합 요청에 대한 초기 검토를 수행하고 작성자에게 개선 사항을 제안합니다.
  • 사용되지 않은 폐기된 분석 메소드가 없는지 확인합니다.
  • 리뷰 중인 변경 사항이 이벤트에 대한 것인 경우:
    • 발생하는 이벤트에 대응하는 정의 파일이 있는지 확인합니다.
    • 이벤트 정의 파일이 올바른지 확인합니다.
  • 리뷰 중인 변경 사항이 메트릭에 대한 것인 경우:
    • Database를 기반으로 하는 메트릭에 대해 데이터베이스 검토를 요청하기 위해 ~database 레이블을 추가합니다.
    • 메트릭의 YAML 정의에 대해:
      • 메트릭의 description를 확인합니다.
      • 메트릭의 key_path를 확인합니다.
      • product_group 필드를 확인합니다. 이것들은 단계 파일에 해당해야 합니다.
      • 파일 위치를 확인합니다. 시간 프레임을 고려하고 파일이 ee 아래에 있어야 할 경우 확인합니다.
      • 티어를 확인합니다.
    • 메트릭이 변경되거나 제거된 경우: MR 작성자가 관련 그룹에 대한 의견에 @를 사용하여 MR의 이슈에 댓글으로 Customer Success Ops 팀 (@csops-team), Analytics Engineers (@gitlab-data/analytics-engineers), 및 Product Analysts (@gitlab-data/product-analysts)에게 알린 것을 확인합니다.
  • 내부 이벤트 CLI에 대한 변경 사항이 리뷰의 일부인 경우:
    • 변경 사항이 CLI 스타일 가이드를 따르는지 확인합니다.
    • CLI를 실행하고 변경 사항의 UX를 확인합니다:
      • 콘텐츠가 쉽게 스캔할 수 있는가?
      • 팀 외부 사람들에게 이 콘텐츠가 의미가 있는가?
      • 이 정보는 필요합니까? 도움이 됩니까?
      • 이 흐름을 처음 경험하는 사용자라면 어떤 걸 염두해야 할까요?
      • 각 입력의 의미나 효과가 명확한가요?
      • 특이 케이스나 주의 사항을 설명하는 경우, 사용자가 그것에 대해 걱정해야 하는지를 검증할 수 있는 지침이 있습니까?
  • 병합 요청을 승인하고 MR에 ~"analytics instrumentation::approved" 레이블을 다시 지정합니다.