InfoGrab Docs

활성화 엔진 추적 빠른 시작

활성화 엔진 추적 빠른 시작에 대해 설명합니다.

활성화 엔진은 활성화 메트릭을 기록하기 위해 내부 이벤트 를 사용합니다. 이벤트는 YAML 기반 extra_trackers 구성을 통해 활성화 엔진으로 라우팅됩니다. 애플리케이션 코드에서 Activation::Metric 모델을 직접 호출하지 않습니다. 메트릭 기록 # extra_trackers 항목으로 Gitlab::Tracking::ActivationTracking 이 포함된 YAML 정의를 가진 내부 이벤트와 함께 Gitlab::InternalEvents.track_event 를 호출합니다. Gitlab : :InternalEvents .track_event( 'merged_mr' , user: user, project: project) ee/config/events/merged_mr.yml 의 해당 이벤트 정의가 이벤트를 활성화 추적에 연결합니다: action: merged_mr internal_events: true extra_trackers: - tracking_class: Gitlab::Tracking::ActivationTracking Gitlab::Tracking::ActivationTracking 어댑터는 이벤트를 받아 Activation::Metric.track 에 위임합니다. 다음의 경우 호출은 아무 작업도 하지 않습니다: activation_tracking 기능 플래그가 비활성화된 경우. 동일한 사용자, 네임스페이스, 메트릭 조합에 대한 레코드가 이미 존재하는 경우. 메트릭 완료 확인 # Activation : :Metric .completed?( user_id: user.id, metric: :merged_mr , namespace_id: namespace.id) 일치하는 레코드가 존재하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다. namespace_id: 매개변수는 선택 사항입니다. 메트릭 쿼리 # Activation::MetricsFinder 를 사용하여 선택적 필터가 있는 사용자의 메트릭을 검색합니다. Activation::MetricsFinder .new( user: user, params: { namespace: namespace, metric: :merged_mr }).execute 지원되는 필터 매개변수: namespace : 특정 네임스페이스로 필터링. metric : 메트릭 유형으로 필터링(심볼). 파인더는 기본 제한을 적용하지 않습니다. GraphQL 리졸버에서 사용할 때 페이지네이션은 .connection_type 으로 처리됩니다. 새 메트릭 유형 추가 # ee/app/models/activation/metric.rb 의 enum에 항목을 추가합니다: enum :metric , { merged_mr: 0 , new_metric: 1 } ee/config/events/ 에 Gitlab::Tracking::ActivationTracking 의 extra_trackers 항목이 포함된 이벤트 정의 YAML을 생성하거나 업데이트합니다. 이벤트 action 은 enum 키와 일치해