반응형
목차
1. 알림의 중요성
2. Spring으로 Slack 알림 보내기
알림의 중요성
서비스 지표가 문제가 있거나 시스템에 문제가 있는 경우 팀 내부에서 빠르게 인지하는 게 필요합니다.
서비스 지표에 문제가 있는 예시는 다음과 같습니다.
• 급격한 주문 건 수 감소
• 급격한 결제 건 수 감소
• 급격한 검색량 감소
• 급격한 매출 감소
시스템 이상 예시는 다음과 같습니다.
• CPU 사용률 증가
• 5xx 응답 오류 증가
• 메모리 부족
• 데이터베이스 커넥션 부족
• Full GC 발생
• API 지연
• 카프카 메시지 랙
이런 상황에서 빠르게 알림을 보내주는게 중요합니다.
사내 메신저로 많이 쓰이는 Slack으로 알림을 보내는 예시를 만들어보겠습니다.
Spring으로 Slack 알림 보내기
1. Slack 앱 만들기
슬랙 가입 및 워크스페이스 생성 및 슬랙 채널 생성
2. 슬랙 앱 만들기
워크스페이스와 알림을 위한 채널을 선택합니다.
4. Incoming Webhook 활성화 시키기
5. Webhook URLs 확인
curl을 복사해 터미널에서 실행시키면 원하는 채널로 메시지가 옵니다.
6. 슬랙 알림 테스트를 위한 코드 작성
위에서 얻은 웹훅 Url을 호출하는 호출 합니다.
build.gradle
dependencies {
implementation 'com.slack.api:slack-api-client:1.27.2'
}
HelloSlackClientController.java
@RestController
@RequiredArgsConstructor
public class HelloSlackClientController {
@Value("${notification.slack.webhook.url}")
private String slackAlertWebhookUrl;
private final ObjectMapper objectMapper;
@GetMapping(value = "/hello-error-slack-client")
public String helloErrorSlackClient() throws IOException {
Slack slack = Slack.getInstance();
String errorMessage = "주문에서 에러 메세지 발생";
SlackErrorMessage slackErrorMessage = new SlackErrorMessage(errorMessage);
WebhookResponse response = slack.send(slackAlertWebhookUrl, objectMapper.writeValueAsString(slackErrorMessage));
return "Hello Slack Alert Sent = " + response.getCode();
}
}
위 API를 호출하면 원하는 채널로 알림이 오는 것을 확인할 수 있습니다.
반응형
'스프링 > 외부 서비스' 카테고리의 다른 글
정적 분석기 SonarLint & SonarQube 사용하기 (0) | 2023.05.31 |
---|---|
Spring으로 ABTest 진행하기 (1/2) - ABTest란 무엇인가? (0) | 2023.05.30 |
Spring으로 ABTest 진행하기 (2/2) - Hackle 사용하기 (0) | 2023.05.30 |