메트릭 정의 가이드
GitLab v19.1메트릭은 config/metrics 및 ee/config/metrics의 하위 폴더에 위치한 YAML 파일로 정의됩니다. 이 페이지에서는 data_source: internal_events를 사용하는 메트릭 정의의 하위 섹션을 설명합니다.
메트릭은 config/metrics 및 ee/config/metrics의 하위 폴더에 위치한 YAML 파일로 정의됩니다.
이 YAML 파일들을 메트릭 정의라고 합니다.
이 페이지에서는 data_source: internal_events를 사용하는 메트릭 정의의 하위 섹션을 설명합니다.
메트릭 정의 파일에 대한 일반적인 개요는 메트릭 딕셔너리 가이드에서 확인할 수 있습니다.
지원되는 메트릭 유형#
내부 이벤트는 다음과 같이 그룹화된 세 가지 메트릭 유형을 지원합니다:
-
전체 기간 합계 카운터
-
시간 범위 합계 카운터
-
시간 범위 고유 카운터
| 카운트 유형 / 시간 범위 | 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: Total visits to /groups/:group/-/analytics/productivity_analytics all time
product_group: optimize
value_type: number
status: active
time_frame: all
data_source: internal_events
events:
- name: view_productivity_analytics
tiers:
- premium
- ultimate
performance_indicator_type: []
milestone: "<13.9"
time_frame: all과 view_productivity_analytics 이벤트를 참조하는 events 하위의 이벤트 선택 규칙의 조합은 이것이 "전체 기간 합계 카운트" 메트릭임을 의미합니다.
시간 범위 합계 카운터#
예시: Runner 사용량 CSV 보고서 내보내기의 주간 카운트
key_path: counts.count_total_export_runner_usage_by_project_as_csv_weekly
description: Weekly count of Runner usage CSV report exports
product_group: runner_core
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
tiers:
- ultimate
time_frame: 7d
events:
- name: export_runner_usage_by_project_as_csv
time_frame: 7d와 export_runner_usage_by_project_as_csv 이벤트를 참조하는 events 하위의 이벤트 선택 규칙의 조합은 이것이 "시간 범위 합계 카운트" 메트릭임을 의미합니다.
시간 범위 고유 카운터#
예시: 최근 28일 동안 분석 대시보드 뷰에서 익명 사용자를 필터링하도록 선택한 고유 사용자 수
key_path: count_distinct_user_id_from_exclude_anonymised_users_28d
description: Count of distinct users who opted to filter out anonymous users on the analytics dashboard view in the last 28 days.
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
tiers:
- ultimate
events:
- name: exclude_anonymised_users
unique: user.id
time_frame: 28d, exclude_anonymised_users 이벤트를 참조하는 events 하위의 이벤트 선택 규칙, 그리고 고유 값(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: rubygems이고 property: deploy_token인 pull_package 이벤트만 포함합니다:
- name: pull_package
filter:
label: rubygems
property: deploy_token
필터는 사용자 정의 추가 속성도 지원합니다:
- name: pull_package
filter:
custom_key: custom_value
필터는 정확한 값 일치만 지원하며, 와일드카드나 정규 표현식은 지원하지 않습니다.
고유 식별자로서의 사용자 정의 추가 속성#
사용자 정의 추가 속성을 고유 식별자로 사용하여 고유 값을 카운트할 수 있습니다. 이는 user.id, project.id, namespace.id와 같은 표준 식별자가 아닌 고유 값을 카운트해야 할 때 유용합니다.
예를 들어, merge_request_iid라는 사용자 정의 속성의 고유 값을 카운트하려면 다음과 같이 합니다:
- name: merge_request_action
unique: merge_request_iid
사용자 정의 속성의 값은 Redis HyperLogLog에 저장되기 전에 해시 처리되므로, 문자열 또는 숫자 값을 모두 사용할 수 있습니다.
집계 메트릭#
여러 이벤트 선택 규칙이 있는 메트릭 정의는 집계 메트릭으로 볼 수 있습니다.
pull_package 및 push_package 이벤트의 총 수를 구하려면 두 개의 이벤트 선택 규칙을 추가해야 합니다:
events:
- name: pull_package
- name: push_package
패키지를 한 번 이상 푸시하거나 풀한 고유 사용자 수를 구하려면 다음과 같이 합니다:
events:
- name: pull_package
unique: user.id
- name: push_package
unique: user.id
고유 메트릭과 합계 카운트 메트릭은 단일 메트릭 내에서 혼용할 수 없다는 점에 유의하세요.