애플리케이션에서 발생하는 예외를 파악하고 싶지만, 코드에 장황한 로직을 추가할 시간이 없다면 좋은 소식이 있습니다. AppSignal for Ruby 젬 3.4.1 버전부터 Rails Error Reporter를 공식적으로 지원합니다.
이번 업데이트를 통해 AppSignal 연동 과정을 크게 단순화하고, 코드를 깔끔하게 유지하면서도 에러 페이지를 띄우거나 사용자의 작업 흐름을 방해하지 않고 실시간으로 오류를 보고할 수 있게 되었습니다.
이 글에서는 Rails Error Reporter를 활용해 AppSignal로 오류를 보고하는 방법을 소개합니다.
이제 begin 블록과 작별하세요
Rails Error Reporter는 코드 곳곳에 반복적으로 작성하던 begin 블록을 없애고, 애플리케이션 예외를 더 명시적이고 표준화된 방식으로 보고할 수 있게 해줍니다.
기존에는 오류를 발생시키지 않으면서(즉, 오류를 삼키면서) AppSignal에 예외를 보고하려면 다음과 같이 begin 블록을 사용해야 했습니다:
begin
process_payment
rescue => error
Appsignal.report_error(error)
end반면 Rails Error Reporter를 사용하면 단 세 줄로 줄일 수 있고, AppSignal이 부모 웹 요청이나 백그라운드 잡으로부터 액션과 네임스페이스를 자동으로 감지합니다:
Rails.error.handle do
process_payment
endRails Error Reporter의 handle 메서드로 처리된 오류는 개별 샘플로 AppSignal에 보고되므로, 하나의 요청이나 잡 안에서 여러 개의 오류를 동시에 보고할 수 있습니다. record 메서드를 사용하면 오류가 삼켜지지 않고 다시 발생(raise)되는데, 이 경우에는 AppSignal의 Rails 미들웨어가 해당 오류를 대신 보고합니다.
컨텍스트 기반 오류 보고
요청이나 잡의 트랜잭션에 커스텀 네임스페이스 또는 액션 이름을 지정하고 싶다면, set_namespace와 set_action 헬퍼 메서드를 활용할 수 있습니다:
Appsignal.set_namespace("admin")
Appsignal.set_action("Admin::ReportsController#generate")또는 특정 오류를 보고할 때만 커스텀 네임스페이스와 액션 이름을 사용하고 싶다면, Rails Error Reporter의 컨텍스트에 추가하면 됩니다:
Rails.error.handle(
context: {
appsignal: {
namespace: "admin",
action: "Admin::ReportsController#generate"
}
}
) do
generate_report
end오류 컨텍스트에 커스텀 태그를 함께 전달할 수도 있습니다. 이 태그를 활용하면 인시던트 목록에서 원하는 조건으로 손쉽게 필터링할 수 있습니다:
Rails.error.handle(
context: {
appsignal: { tags: { plan: "premium" } }
}
) do
process_subscription
end
훌륭한 애플리케이션을 위한 탁월한 모니터링
AppSignal의 오류 보고 기능에 대한 자세한 내용은 Rails 공식 문서에서 확인할 수 있으며, Rails Error Reporter 사용 중 문제가 발생하면 언제든 지원 팀에 문의하세요.
AppSignal의 오류 보고는 애플리케이션 모니터링 효율을 극대화하는 개발자 친화적인 기능 중 하나일 뿐입니다. 수많은 개발자가 AppSignal 모니터링을 선호하는 이유는 다음과 같습니다:
- 탐색하기 쉬운 직관적인 인터페이스
- 단순하고 예측 가능한 가격 정책
- 개발자가 개발자를 돕는 실질적인 지원
AppSignal을 처음 시작하시는 분들을 위해, 저희는 맛있는 스트룹와펠 한 상자로 새 회원을 환영합니다 🍪 😋

Connor James
AppSignal의 개발자 마케팅 매니저입니다. 팟캐스트 덕후이며, 칸놀리를 너무 사랑해서 이름을 'Connoli'로 바꿀까 고민할 정도입니다. color라는 단어에 'u'가 들어가야 한다고 믿는 사람이기도 합니다. 일하지 않을 때는 마이크를 잡거나 무대에 서거나, 아니면 소파에 드러누워 있는 모습을 볼 수 있습니다.
Connor James의 모든 아티클 보기
