Skip to content
isdnetworks
Go back

아무도 안 보는 보고서

(수정됨)

인수한 시스템에서 cron 의 0 7 * * * 로 daily_report.sh 가 매일 아침 운영 요약 메일을 몇 해째 보내고 있었다. 그 메일 때문에 무언가를 한 적이 한 번도 없다는 것을 깨달았다.

Table of contents

Open Table of contents

배경 — 열람 기록이 보여 준 것

메일은 외부 발송 서비스로 나가고 거기에 open 이벤트가 남아 있어서 실제로 열리는지 확인했다. 수신자 열두 명 중 최근 한 달 안에 연 사람이 셋이고 정기적으로 여는 사람은 하나였다.

그 한 명에게 물으니 failed_jobs 숫자만 훑고 넘어간다고 했다. 이상한 것을 찾으려고 여는 것이 아니라 습관이었다.

원인 — 행동을 유발하지 않는다

왜 안 읽히는지 따져 보니 셋으로 갈렸다. 매일 오니까 특별하지 않고 숫자가 많은데 어디를 봐야 하는지 표시가 없고 무엇을 하라는 것인지 안 적혀 있었다.

셋 다 같은 문제의 다른 얼굴이었다. 읽히지 않는 것의 원인은 내용의 양이 아니라 그것이 행동을 유발하지 않는다는 점이었다.

조치 — 알림과 보고서의 분리

이것을 계기로 둘을 구분했다. 알림은 무언가 해야 할 때만 오고 오면 반드시 보는 것이고 보고서는 정기적으로 상태를 요약하는 참고용이다.

원래 daily_report.sh 의 메일은 보고서인데 알림처럼 매일 오고 있었다. 성격과 빈도가 어긋나 있으니 둘 중 어느 역할도 못 했다.

해 본 것 — 평소와 다를 때만 오는 조건

보고서에 담기던 것 중 실제로 행동이 필요한 항목을 골라 알림 조건을 만들었다. failed_jobs 가 지난 7일 평균보다 크게 늘면 알린다. device_jobs 의 한 단계가 30분 넘게 진행되지 않거나 어제 없던 error_type 이 나와도 알린다. 알림은 텔레그램 봇의 sendMessage 로 보낸다.

절대값이 아니라 평소와의 차이를 조건으로 삼는 쪽을 골랐다. 이유는 현장 수가 달마다 바뀌어 절대값 기준이 금방 낡아서다. 대신 평소가 이미 나쁜 상태면 알림이 안 오는 것을 감수했다. 알림 본문에는 어디를 확인하고 어떤 원인이 가능한지를 함께 적어서 받은 사람이 다음 행동을 알게 했다.

검증 — 빈도와 변화 표시

매일 나가던 요약은 weekly_report.sh 로 주 한 번으로 바꾸고 숫자 나열 대신 지난주 대비 변화를 앞에 뒀다. ▲ 와 ▼ 증감 표시와 판정을 붙여서 어디를 봐야 하는지를 드러냈다.

바꾸고 나서 open 이 크게 늘었다. 알림은 드물게 오니 오면 보고 보고서는 주 한 번이라 훑을 만해졌기 때문이다. 아무도 안 보는 것을 계속 보내면 진짜 중요한 것도 같이 묻히므로 없애는 것도 개선이었다.

정리


Share this post on:

Previous Post
양쪽을 다 읽는 이관
Next Post
플래그로 시작해 테이블이 됐어야 했다