InfoGrab DocsInfoGrab Docs

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

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

이 가이드는 메트릭 인스트루멘테이션을 사용하여 Service Ping 메트릭을 개발하는 방법을 설명합니다. 동영상 튜토리얼은 인스트루멘테이션 클래스를 통한 Service Ping 메트릭 추가 를 참고합니다. 명명법 # 인스트루멘테이션 클래스 : 메트릭 클래스 중 하나인 DatabaseMetric , NumbersMetric , GenericMetric 을 상속합니다. Service Ping 메트릭의 값을 계산하는 로직을 구현합니다. 메트릭 정의 Service Data 메트릭 YAML 정의입니다. 하드닝 : 메서드 하드닝은 메서드가 안전하게 실패하면서 -1 같은 폴백 값을 반환하도록 보장하는 과정입니다. 메트릭 인스트루멘테이션 작동 방식 # 모든 메트릭은 service ping 페이로드에 포함되려면 대응하는 메트릭 정의 가 있어야 합니다. 메트릭 정의에는 instrumentation_class 필드가 있을 수 있으며, 이 필드에는 클래스를 설정할 수 있습니다. 정의된 인스트루멘테이션 클래스는 기존 메트릭 클래스인 DatabaseMetric , NumbersMetric , GenericMetric 중 하나를 상속해야 합니다. 현재 규칙에 따르면 인스트루멘테이션 클래스 하나가 메트릭 하나에 대응합니다. 인스트루멘테이션 클래스를 사용하면 Service Ping 생성 과정 전체를 중단시키지 않고 메트릭이 개별적으로 안전하게 실패할 수 있습니다. 데이터베이스 메트릭 # Note 가능하면 데이터베이스 메트릭 대신 내부 이벤트 추적 을 사용하기를 권장합니다. 데이터베이스 메트릭은 규모가 큰 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? : 메트릭을 보고할지 여부를 지정합니다. 기본값은 true 입니다. timestamp_column : 시간 제약이 있