메트릭 정의

메트릭은 config/metricsee/config/metrics의 하위 폴더에 위치한 YAML 파일로 정의됩니다.

YAML 파일은 메트릭 정의라고 불립니다.

이 페이지는 data_source: internal_events가 있는 메트릭 정의의 하위 섹션을 설명합니다.

메트릭 정의 파일의 일반적인 개요는 메트릭 사전 가이드에서 확인할 수 있습니다.

지원되는 메트릭 유형

내부 이벤트는 다음과 같이 그룹화된 세 가지 다른 메트릭 유형을 지원합니다.

  1. 전체 시간 총 카운터

  2. 시간 프레임 총 카운터

  3. 시간 프레임 고유 카운터

카운트 유형 / 시간 프레임 7d / 28d all
총 카운트 시간 프레임 총 카운터 전체 시간 총 카운터
고유 카운트 시간 프레임 고유 카운터  

메트릭이 고유 값 또는 총 값을 세고 있는지 확인하려면 이벤트 선택 규칙을 참조하세요.

고유 메트릭의 스니펫은 아래와 같을 수 있습니다. 고유 값 세기에 사용되는 create_merge_request 이벤트의 식별자를 정의하는 unique 속성을 확인하세요.

events:
  - name: create_merge_request
    unique: user.id

마찬가지로, 총 카운트 메트릭의 스니펫은 아래와 같을 수 있습니다. unique 속성이 없음을 확인하세요.

events:
  - name: create_merge_request

하나의 메트릭 내에서 여러 이벤트를 집계된 메트릭을 통해 추적할 수 있습니다.

전체 시간 총 카운터

예: 전체 시간 동안 /groups/:group/-/analytics/productivity_analytics로의 총 방문 수

data_category: optional
key_path: counts.productivity_analytics_views
description: 전체 시간 동안 /groups/:group/-/analytics/productivity_analytics로의 총 방문 수
product_group: optimize
value_type: number
status: active
time_frame: all
data_source: internal_events
events:
- name: view_productivity_analytics
distribution:
- ee
tier:
- premium
- ultimate
performance_indicator_type: []
milestone: "<13.9"

time_frame: allevents 아래의 이벤트 선택 규칙이 view_productivity_analytics 이벤트를 참조한다는 것은 이 메트릭이 “전체 시간 총 카운트” 메트릭임을 의미합니다.

시간 프레임 총 카운터

예: 주간 Runner 사용 CSV 보고서 내보내기 수

key_path: counts.count_total_export_runner_usage_by_project_as_csv_weekly
description: 주간 Runner 사용 CSV 보고서 내보내기 수
product_group: runner
performance_indicator_type: []
value_type: number
status: active
milestone: '16.9'
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/142328
data_source: internal_events
data_category: optional
distribution:
  - ee
tier:
  - ultimate
time_frame: 7d
events:
  - name: export_runner_usage_by_project_as_csv

time_frame: 7devents 아래의 이벤트 선택 규칙이 export_runner_usage_by_project_as_csv 이벤트를 참조한다는 것은 이 메트릭이 “시간 프레임 총 카운트” 메트릭임을 의미합니다.

시간 프레임 고유 카운터

예: 지난 28일 동안 분석 대시보드 뷰에서 익명 사용자 필터링을 선택한 고유 사용자 수.

key_path: count_distinct_user_id_from_exclude_anonymised_users_28d
description: 지난 28일 동안 분석 대시보드 뷰에서 익명 사용자 필터링을 선택한 고유 사용자 수.
product_group: platform_insights
performance_indicator_type: []
value_type: number
status: active
milestone: '16.7'
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138150
time_frame: 28d
data_source: internal_events
data_category: optional
distribution:
- ee
tier:
- ultimate
events:
- name: exclude_anonymised_users
  unique: user.id

time_frame: 28d, events 아래의 이벤트 선택 규칙이 exclude_anonymised_users 이벤트를 참조하고 고유 값(unique: user.id)이 있음을 의미하므로 이 메트릭은 “시간 프레임 고유 카운트” 메트릭입니다.

이벤트 선택 규칙

이벤트 선택 규칙은 메트릭 정의와 이벤트 정의를 연결하는 부분입니다.

이벤트가 트리거될 때 어떤 메트릭을 업데이트해야 하는지 알아야 합니다.

각 내부 이벤트 기반 메트릭은 다음 속성을 가진 최소 하나의 이벤트 선택 규칙이 있어야 합니다.

속성 필수 추가 정보
name 이벤트의 이름
unique 아니오 메트릭이 사용자, 프로젝트, 네임스페이스의 고유한 수를 계산하거나 이벤트에 포함된 추가 속성의 고유한 값을 계산해야 할 경우 사용됩니다. 유효한 값은 user.id, project.id, namespace.id입니다. 추가적으로 label, property, value는 이벤트와 함께 제공되는 추가 속성을 참조할 때도 사용할 수 있습니다.
filter 아니오 메트릭에 포함될 이벤트의 하위 집합만 있는 경우 사용됩니다. 필터링에는 추가 속성만 사용할 수 있습니다.

label 값이 rubygems인 추가 속성을 가진 pull_package라는 이벤트가 발생할 때 고유 카운트 메트릭을 업데이트하는 단일 이벤트 선택 규칙의 예는 다음과 같습니다:

- name: pull_package
  unique: user.id
  filter:
    label: rubygems

필터

필터는 어떤 이벤트가 메트릭을 증가시키는지를 제한하는 데 사용됩니다.

이 필터는 label: rubygems가 있는 pull_package 이벤트만 포함합니다:

- name: pull_package
  filter:
    label: rubygems

반면, 이 필터는 더 제한적이며 label: rubygemsproperty: deploy_token이 있는 pull_package 이벤트만 포함합니다:

- name: pull_package
  filter:
    label: rubygems
    property: deploy_token

필터는 정확한 값의 일치만 지원하며, 와일드카드나 정규 표현식은 지원하지 않습니다.

집계된 메트릭

여러 이벤트 선택 규칙을 가진 메트릭 정의는 집계된 메트릭으로 간주될 수 있습니다.

pull_packagepush_package 이벤트의 총 수를 얻으려면 두 개의 이벤트 선택 규칙을 추가해야 합니다:

events:
- name: pull_package
- name: push_package

최소한 한 번 패키지를 푸시하거나 풀한 고유 사용자 수를 얻으려면 다음과 같이 합니다:

events:
- name: pull_package
  unique: user.id
- name: push_package
  unique: user.id

고유 메트릭과 총 카운트 메트릭은 단일 메트릭에서 혼합될 수 없음을 유의하세요.