InfoGrab DocsInfoGrab Docs

메트릭 인스트루멘테이션 가이드

Service Ping 메트릭을 인스트루멘테이션 클래스를 사용하여 개발하는 방법을 설명합니다.

이 가이드는 메트릭 인스트루멘테이션을 사용하여 Service Ping 메트릭을 개발하는 방법을 설명합니다. 동영상 튜토리얼은 인스트루멘테이션 클래스를 통한 Service Ping 메트릭 추가 를 참조하세요. 명명법 # 인스트루멘테이션 클래스 : 메트릭 클래스 중 하나인 DatabaseMetric , NumbersMetric 또는 GenericMetric 을 상속합니다. Service Ping 메트릭의 값을 계산하는 로직을 구현합니다. 메트릭 정의 Service Data 메트릭 YAML 정의입니다. 하드닝(Hardening) : 메서드를 하드닝한다는 것은 메서드가 안전하게 실패하도록 보장하는 프로세스로, -1 과 같은 폴백 값을 반환합니다. 메트릭 인스트루멘테이션 작동 방식 # 모든 메트릭은 service ping 페이로드에 포함되기 위해 대응하는 메트릭 정의 가 있어야 합니다. 메트릭 정의에는 instrumentation_class 필드가 있을 수 있으며, 이 필드는 클래스로 설정할 수 있습니다. 정의된 인스트루멘테이션 클래스는 기존 메트릭 클래스 중 하나인 DatabaseMetric , NumbersMetric 또는 GenericMetric 을 상속해야 합니다. 현재 규칙은 단일 인스트루멘테이션 클래스가 단일 메트릭에 대응한다는 것입니다. 인스트루멘테이션 클래스를 사용하면 Service Ping 생성 전체 프로세스를 중단하지 않고 메트릭이 개별적으로 안전하게 실패할 수 있습니다. 데이터베이스 메트릭 # 가능하면 데이터베이스 메트릭 대신 내부 이벤트 추적 을 사용하는 것을 권장합니다. 데이터베이스 메트릭은 더 큰 GitLab 인스턴스의 데이터베이스에 불필요한 부하를 줄 수 있으며, 잠재적인 최적화가 인스턴스 성능에 영향을 미칠 수 있습니다. 데이터베이스 메트릭을 사용하여 데이터베이스에 보관된 데이터를 추적할 수 있습니다. 예를 들어, 특정 인스턴스에 존재하는 이슈의 수를 세는 경우입니다. operation : 주어진 relation 에 대한 연산으로, count , distinct_count , sum , average 중 하나입니다. relation : operation 을 수행하려는 객체에 대한 ActiveRecord::Relation 을 반환하는 람다를 할당합니다. 할당된 람다는 최대 하나의 매개변수를 받을 수 있습니다. 매개변수는 해시 처리되어 메트릭 정의의 options 키 아래에 저장됩니다. start : 배치 카운팅의 시작 값을 지정하며, 기본값은 relation.minimum(:id) 입니다. finish : 배치 카운팅의 종료 값을 지정하며, 기본값은 relation.maximum(:id) 입니다. cache_start_and_finish_as : start 와 finish 값의 캐시 키를 지정하고 캐싱을 설정합니다. start 와 finish 가 서로 다른 메트릭 계산 사이에서 재사용되어야 하는 비용이 큰 쿼리인 경우 이 호출을 사용합니다. available? : 메트릭을 보고해야 하는지 여부를 지정합니다. 기본값은 t