메트릭 라이프사이클

다음 가이드라인은 메트릭 라이프사이클의 각 단계에서 따라야 할 단계를 설명합니다.

새로운 메트릭 추가

메트릭 기기 가이드를 따르세요.

기존 메트릭 변경

경고: 우리는 동일한 메트릭을 다른 버전의 GitLab에서 비교할 수 없게 만드는 계산 논리나 중요한 속성의 변경을 방지하고 싶습니다.

메트릭을 변경하면, GitLab의 모든 인스턴스가 최신 버전에서 작동하는 것은 아니라는 점을 고려해야 합니다. 구버전 인스턴스는 여전히 메트릭의 이전 버전을 보고할 것입니다. 게다가, 메트릭의 보고된 숫자는 주로 이전에 보고된 숫자와 비교하는 데 주로 흥미로워합니다. 결과적으로, 메트릭의 다음 부분 중 하나를 변경해야 할 경우 새로운 메트릭을 추가해야 합니다. 이전 메트릭을 유지할지 새 메트릭 옆에 추가할지 여부는 본인의 선택입니다. 또는 제거할 수도 있습니다.

  • 계산 논리: 이전 구현과 다른 값을 생성할 수 있는 변경 사항입니다.
  • YAML 속성: 다음 속성은 직접 분석이나 계산에 사용됩니다: key_path, time_frame, value_type, data_source.

만약 메트릭의 performance_indicator_type 속성을 변경하거나 귀하의 경우가 지침에 예외가 필요하다고 생각된다면, 해당 그룹에 대해 댓글에서 @을 사용하여 병합 요청 또는 이슈에 해당 그룹을 알리십시오.

분석 레코드들 중에서 계산 또는 분석에 영향을 주지 않는 다른 속성들은 변경해도 무방합니다. 메트릭 속성을 업데이트하는 데 도움을 받으려면 이 비디오 튜토리얼을 참조하세요.

현재 메트릭 딕셔너리는 매일 자동으로 빌드됩니다. 메트릭의 YAML 파일을 변경하면 24시간 이내에 딕셔너리의 변경 내용을 확인할 수 있습니다.

메트릭 제거

  1. 메트릭을 제거하는 이슈가 없는 경우 이슈를 생성하세요. 메트릭을 제거해야 하는 이유를 개요에 기술해야 합니다. 이 이슈를 사용하여 제거 프로세스를 문서화할 수 있습니다.

    • 메트릭에 적어도 하나의 [x]mau 유형의 performance_indicator_type가 있는 경우: 이러한 메트릭에 예상치 못한 변경이 발생할 수 있으므로, 해당 그룹을 알리기 위해 이슈에 댓글에서 @을 사용하여 고객 서비스 운영팀 (@csops-team), 분석 엔지니어 (@gitlab-data/analytics-engineers), 제품 분석가 (@gitlab-data/product-analysts)를 알립니다.
    • 메트릭을 제거하는 그룹이 아닌 다른 그룹이 소유한 경우: 단계 파일에 따라 해당 그룹의 PM 및 EM에게 태그를 붙입니다.
  2. data_source에 따라 메트릭 기기 코드를 제거하세요:

    • database/system: 메트릭에 instrumentation_class가 있고 해당 클래스가 더 이상 다른 메트릭에서 사용되지 않는 경우 클래스와 스펙을 제거할 수 있습니다. 만약 메트릭이 lib/gitlab/usage_data.rb 또는 ee/lib/ee/gitlab/usage_data.rb에 기기되어 있다면 연관된 코드와 스펙을 제거하세요.
    • redis_hll/redis/internal_events: 추적 코드(예: track_internal_event)와 연관된 스펙을 제거하세요.
  3. 메트릭의 YAML 정의 속성을 업데이트하세요:

    • status:removed로 설정합니다.
    • removed_by_url:을 메트릭을 제거하는 MR의 URL로 설정합니다.
    • milestone_removed:에는 메트릭이 제거된 마일스톤 번호를 설정합니다.

    메트릭의 YAML 정의를 완전히 제거하지 마십시오. 일부 셀프 매니지드 인스턴스는 즉시 GitLab의 최신 버전으로 업데이트되지 않을 수 있으며, 따라서 삭제된 메트릭을 계속해서 보고할 수 있습니다. 분석 기기 팀은 모든 삭제된 메트릭을 식별하고 필터링하기 위해 모든 삭제된 메트릭의 기록을 필요로 합니다.

그룹 이름 변경

이벤트 또는 메트릭을 소유하는 그룹의 이름이 변경되면 해당 그룹에 속하는 모든 메트릭 및 이벤트 정의의 product_group 속성을 업데이트해야 합니다.

product_group_renamer 스크립트를 사용하여 모든 정의를 업데이트할 수 있습니다.

예를 들어, 그룹 5-min-app의 이름이 2-min-app으로 변경된 경우, 다음과 같이 관련 파일을 업데이트할 수 있습니다:

$ scripts/internal_events/product_group_renamer.rb 5-min-app 2-min-app
3개 파일에서 '5-min-app''2-min-app'로 업데이트했습니다

업데이트된 파일:
  config/metrics/schema/product_groups.json
  config/metrics/counts_28d/20210216184517_p_ci_templates_5_min_production_app_monthly.yml
  config/metrics/counts_7d/20210216184515_p_ci_templates_5_min_production_app_weekly.yml

스크립트를 실행한 후에는 변경된 모든 파일을 Git에 커밋하고 병합 요청을 생성해야 합니다.

그룹이 여러 개의 그룹으로 분할된 경우 product_group을 수동으로 업데이트해야 합니다.