Sentry에서 발생한 에러를 Discord로 빠르게 공유하기 위해 웹훅 기반 알림 기능을 구현하였습니다. 이때 단순히 에러 제목만 전달하는 것이 아니라, 실제 운영에서 바로 판단에 도움이 되는 정보까지 함께 전달하고자 하였습니다.
예를 들어 다음과 같은 정보입니다.
그런데 실제로 Discord 알림을 확인해보니, 에러 제목이나 레벨과 같은 기본 정보는 표시되었지만, 정작 운영 판단에 필요한 집계 정보들은 비어 있거나 표시되지 않는 문제가 있었습니다.
즉, 의도했던 알림 형태는 다음과 같았습니다.
하지만 실제로는 발생 횟수, 최초 발생 시각이 누락된 상태로 알림이 전송되고 있었습니다.

처음에는 코드 상의 처리 로직이 잘못되었거나, 특정 필드 경로를 잘못 참조하고 있다고 생각하였습니다. 그러나 이 문제를 정확히 해결하려면 먼저 Sentry가 webhook으로 실제 어떤 데이터를 보내고 있는지를 확인해야 했습니다.
이를 위해 개발 환경에서 ngrok을 사용하여 외부에서 들어오는 Sentry webhook 요청을 직접 수신하고, 대시보드 및 요청 본문(payload)을 확인하였습니다.
확인 결과, event_alert 타입 webhook의 payload는 대략 다음과 같은 구조를 가지고 있었습니다.