Skip to content
isdnetworks
Go back

요약 한 줄과 상세 자료

(수정됨)

일정산 배치 결과를 텔레그램 봇의 sendMessage 로 보내면서 성공과 실패 건수만 넣었더니 받을 때마다 Kibana 에 들어가 조회하게 됐다. 밤에 알림이 오면 그것 때문에 노트북을 열었고 대부분은 열어 보면 별것 아니었다.

Table of contents

Open Table of contents

증상 — 요약만 보낸 알림

건수만 있으면 무엇이 실패했는지 알 수 없다. 그것을 알려면 반드시 Kibana 로 넘어가야 한다.

반대로 상세를 전부 넣어 봤더니 길어져서 아무도 안 읽었다. Telegram Bot API 공식 문서대로 text 는 4096자까지라 잘리기까지 했고 스크롤조차 하지 않고 넘겼다.

원인 — 요약만이면 다시 묻고 전부면 안 읽는다

두 실패는 방향이 반대인데 원인은 같아서 받는 사람이 무엇을 판단해야 하는지를 안 보고 양을 정한 것이었다. 그 판단은 지금 봐야 하는지 아침에 봐도 되는지 하나였다.

그래서 reason 별 건수와 그 판단에 대한 답을 함께 넣고 상세는 Kibana 링크로 뒀다. 재실행으로 해결되는지 아닌지를 한 줄로 적으니 그 자리에서 판단이 끝났다.

판단 기준 — 판단에 필요한 만큼

사유별로 몇 건인지가 있으면 데이터 문제인지 일시 오류인지가 갈린다. 어느 건인지까지는 링크를 열어야 하지만 지금 열지 말지는 알림에서 정해진다.

알림의 길이를 정하는 기준이 정보의 양이 아니라 판단의 종류가 됐다. 그 판단에 안 쓰이는 항목은 아무리 유용해 보여도 뺐다.

조치 — 긴급도와 보내는 방식

실패 비율과 오류 종류로 긴급도를 자동 판정해 [P1]·[P3] 말머리에 넣었다. 말머리만 보고 지금 열지를 정할 수 있다.

두 가지 방법이 있었다. 긴급도와 무관하게 한 채널로 다 보내고 말머리로만 가르는 것과, 긴급한 것은 당직 채널로 아닌 것은 일반 채널로 경로를 나누는 것이다. 뒤쪽을 골랐다. 이유는 당직 채널만 알림음을 켜 두면 밤에 노트북을 여는 기준이 채널 하나로 정해져서다. 대신 봇 설정과 chat_id 가 둘로 늘어나는 것을 감수했다. 성공한 것도 안 오는 것과 구분하려고 보내되 배치별로 보내지 않고 하루 한 번 묶어서 보냈다.

반복 알림을 묶는 법

같은 원인으로 여러 번 오는 경우가 있어서 dedupe_key 가 같은 내용은 일정 시간에 한 번만 보내게 했다. 그동안 몇 번 더 일어났는지는 세어 두고 다음 발송에 함께 넣었다.

한 번만 보내면 심각성을 모르고 매번 보내면 다른 알림에 묻힌다. 묶으면서 횟수를 같이 보내니 두 문제가 함께 풀렸고 하루 알림 수가 크게 줄면서 읽는 비율이 올라갔다.

정리


Share this post on:

Previous Post
늦게 대답하는 상대
Next Post
다시 확인할 때는 다시 재었다