자체 코드에서 처리 중인 오류 데이터를 뉴렐릭으로 보내려면 오류 핸들러 내에서 Ruby 에이전트 API NewRelic::Agent.notice_error
호출을 사용하세요.
뉴렐릭에 알림 Ruby
이 API 호출은 예외와 선택적 옵션 해시를 사용합니다. 다음 형식을 사용하십시오.
NewRelic::Agent.notice_error(exception, options = { }) ⇒ Object
이 함수는 주어진 오류를 기록하고 오류의 구성 기반 무시 및 정의된 경우 전역 #ignore_error_filter
메서드를 포함하여 일반 오류 필터링 프로세스를 통해 전달합니다.
exception
은(는) 기록할 예외 또는 오류 메시지입니다. 필요한 경우 options = { }
을 포함할 수도 있습니다. 다음 매개변수는 특별 처리되며 귀하가 제공하는 기타 매개변수는 사용자 정의 매개변수로 처리됩니다.
options = { } | Comments |
---|---|
| 오류 추적만 기록합니다 . 이것은 오류율이나 Apdex 상태에 영향을 미치지 않습니다. UI의 예상 오류에 대한 정보는 예상 오류 보기 를 참조하십시오. Ruby 에이전트 버전 4.3.x 에서 더 이상 사용되지 않는 |
| 사용자 정의 매개변수. |
| 요청 경로에서 요청 매개변수 또는 쿼리 문자열을 뺀 값입니다. 일반적으로 필요하지 않습니다. 트랜잭션 외부에서 |
| 트랜잭션과 연결된 메트릭 이름입니다. 일반적으로 필요하지 않습니다. 트랜잭션 외부에서 |
| 이전 Ruby 에이전트 버전에서는 |
오류 핑거프린팅: 발견된 각 오류에 오류 그룹을 동적으로 적용합니다.
오류 발생이 잘못 그룹화되어 있습니까? 콜백 기능을 통해 나만의 에러 지문을 설정하세요.
Proc
기반 콜백을 에이전트에 제공하여 발견된 각 오류에 원하는 오류 그룹을 동적으로 적용할 수 있습니다. Ruby 에이전트 API NewRelic::Agent.set_error_group_callback
를 사용하여 에이전트에 콜백을 제공하십시오.
이 API 호출은 콜백 메서드( Proc
유형이어야 함)를 유일한 인수로 사용합니다. 인수가 필요합니다. API 호출은 New Relic Ruby 에이전트 실행당 한 번만 수행하면 되므로 호출을 Rails 이니셜라이저 또는 유사 항목에 배치할 수 있습니다. API에 대한 후속 호출이 이루어지면 콜백 메서드가 제공된 최신 메서드로 업데이트됩니다. 다음은 콜백이 정의되고 NewRelic::Agent.set_error_group_callback
API 메서드에 전달되는 예입니다.
proc = proc { |hash| "Access" if hash[:'http.statusCode'] == 401 }NewRelic::Agent.set_error_group_callback(proc)
표시된 예에서 해시를 유일한 인수로 수락한 다음 해시에 값이 401인 HTTP 상태 코드 키가 포함된 경우 원하는 오류 그룹 이름에 대해 문자열 "Access"를 반환하는 콜백 proc이 생성됩니다.
콜백 proc은 정확히 하나의 입력 인수인 해시를 받을 것으로 예상됩니다. 해시에는 다음이 포함됩니다.
Key | Value |
---|---|
| Ruby 오류 클래스 인스턴스. 제안 |
| 현재 거래에 대한 모든 사용자 정의 속성 |
| 사용 가능한 경우 현재 요청 세트 URI |
| 사용 가능한 경우 HTTP 상태 코드(200, 404 등) |
| 사용 가능한 경우 HTTP 메서드(GET, PUT 등) |
| 오류가 예상되었는지(true) 또는 아닌지(false) 여부 |
| 전달된 옵션 해시 |
콜백 절차는 원하는 오류 그룹 이름을 결정할 수 있는 경우 이를 나타내는 문자열을 반환할 것으로 예상됩니다. proc이 nil
또는 빈 문자열(''
)을 반환하면 오류가 서버 측 그룹화 논리를 수신합니다.
사용자 추적: 각 칩셋 및 오류에 사용자 ID 연결
이제 오류 그룹의 영향을 받는 사용자 수를 볼 수 있습니다.
트랜잭션 및 오류는 New Relic Ruby 에이전트에 알려진 경우 사용자 ID와 연관될 수 있습니다. Ruby 에이전트 API NewRelic::Agent.set_user_id
를 사용하여 에이전트에 사용자 ID를 제공하십시오.
이 API 호출에는 최종 사용자의 고유 식별자를 나타내는 문자열의 단일 인수가 필요합니다. 이 문자열은 UUID, 데이터베이스 ID 또는 이와 유사한 것일 수 있습니다. 트랜잭션과 연결할 사용자 ID를 New Relic Ruby 에이전트에 알리기 위해 트랜잭션당 최소 한 번 API 호출을 수행해야 합니다. 그런 다음 에이전트가 트랜잭션 수명 동안 오류를 발견하면 오류에는 사용자 ID 값을 보유하는 enduser.id
에이전트 속성이 포함됩니다.
API는 새 사용자 ID가 범위에 들어올 때마다 호출되도록 되어 있으므로 이상적으로는 사용자 세션 생성을 인식하는 미들웨어를 통해 호출됩니다. New Relic Ruby 에이전트가 사용자 ID를 알게 되면 현재 트랜잭션과 현재 트랜잭션 수명 동안 발견된 모든 오류에 대해 enduser.id
에이전트 속성을 제공합니다.
버전 추적: 메타데이터를 사용하여 오류가 발생한 버전 확인
에러스 인박스(errors inbox)는 오류를 생성하는 소프트웨어 버전을 자동으로 추적합니다. 모든 버전 데이터는 CodeStream 에도 표시됩니다.
오류가 발생하는 소프트웨어 버전을 식별하는 데 도움이 되도록 다음 환경 변수 중 하나를 설정하십시오.
NEW_RELIC_METADATA_SERVICE_VERSION
구현하다, 배포하다라는 코드 버전을 포함하는 오류 이벤트 데이터에tags.service.version
속성을 추가합니다. 종종1.2.3
과 같은 의미론적 버전이지만 항상 그런 것은 아닙니다.NEW_RELIC_METADATA_RELEASE_TAG
릴리스 태그(예:v0.1.209
또는release-209
)가 포함된 이벤트 데이터에tags.releaseTag
속성을 추가합니다.NEW_RELIC_METADATA_COMMIT
커밋 샤를 포함하는 이벤트 데이터에tags.commit
속성을 추가합니다. 전체 샤를 사용하거나 처음 7자만 사용할 수 있습니다(예:734713b
).