메트릭 정의
메트릭은 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: 전체 시간 동안 /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: all
과 events
아래의 이벤트 선택 규칙이 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: 7d
와 events
아래의 이벤트 선택 규칙이 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: rubygems
와 property: deploy_token
이 있는 pull_package
이벤트만 포함합니다:
- name: pull_package
filter:
label: rubygems
property: deploy_token
필터는 정확한 값의 일치만 지원하며, 와일드카드나 정규 표현식은 지원하지 않습니다.
집계된 메트릭
여러 이벤트 선택 규칙을 가진 메트릭 정의는 집계된 메트릭으로 간주될 수 있습니다.
pull_package
및 push_package
이벤트의 총 수를 얻으려면 두 개의 이벤트 선택 규칙을 추가해야 합니다:
events:
- name: pull_package
- name: push_package
최소한 한 번 패키지를 푸시하거나 풀한 고유 사용자 수를 얻으려면 다음과 같이 합니다:
events:
- name: pull_package
unique: user.id
- name: push_package
unique: user.id
고유 메트릭과 총 카운트 메트릭은 단일 메트릭에서 혼합될 수 없음을 유의하세요.