예외가 발생할 경우 MS Teams를 사용하여 공지

4854 단어 MicrosoftTeams
처음 뵙겠습니다.나는 먹일지에서 서비스 개발 엔지니어@uribou를 하고 있다.
21일째 보도로
예외가 발생했을 때 MS Teams에게 알린 일을 말하고자 합니다.

개시하다


음식 기록에는 예외 발생을 확인할 수 있는 사내 앱이 있다.
엔지니어는 그 프로그램의 화면을 자주 검사해서 예외가 발생하면 바로 대응할 수 있다.
하지만 화면을 자주 열지 않으면 예외가 발생했는지 알 수 없기 때문에 해시태그나 창 형태로 수시로 화면을 열어야 한다.
화면을 열지 않더라도 예외가 발생하면 수동으로 통지해야 한다
따라서 예외가 발생하면 엔지니어의 PC에 통지하세요!이것이 바로 이번 이야기의 시작이다.

토론 추진 알림


트위터 알림은 웹페이지 Push!따라서 Web Push에서 Push 알림에 대해 먼저 논의했습니다.
하지만 이번에 사용할 수 있는 서버는https를 지원하지 않아 Service Worker를 시작할 수 없기 때문에 웹 Push 프로젝트는 곧 좌절되고,
이어서 나는 Notifications API와 WebSocket을 이용하는 방안을 고려했다.
이 경우 웹소켓과의 통신을 유지하기 위해서는 화면을 열어야 하는데 다른 탭에서 열면 알림이 떠밀려 나가기 때문에 편할 것 같다.
그러나 크롬 62에서 https로 이어지는 화면에서만 노티픽스 API를 사용하여 푸시 알림참고 자료을 할 수 있기 때문에 크롬은 노티픽스 API를 사용하여 푸시 알림을 할 수 없다.
저는 이미'http 망했어요'라는 마음이 들었어요.
너무 아파져서 팀 안에서 모두 살려달라고 외쳤을 때
회사 내에서 사용하는 MS Teams에 메시지를 보내면 트위터에 알릴 수 있지 않나요?이런 방안.
최고예요.감사합니다.

MS Teams 알림


Microsoft Teams에는 API가 준비되어 있으며 POST를 통해 메시지를 게시하는 기능참고 자료이 있습니다.
루비로 쓰면 이런 느낌이에요.간단하네.
require 'net/http'
require 'json'

def notify!
  uri = URI.parse('MSTeamsのAPIのURL')

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  req = Net::HTTP::Post.new(uri.request_uri)
  req['Content-Type'] = 'application/json'
  req.body = body

  http.request(req)
end

# MS Teams へ送りつける JSON
def body
end
이상의 스크립트는 매 분마다 크론에서 실행되고 그 사이에 발생한 예외 정보를 정리하여 특정 채널에 POST를 진행한다.
요청 정보 주체의 사이즈에 제한이 있는 것 같습니다. 16.8KB를 초과하면 POST를 받지 않기 때문에 여기서 제한합니다.
이번에는 메시지 주체가 16.8KB를 넘으면 이상 상황이 발생한다는 것만 알렸다(상상하고 싶지는 않지만).
채널을 팔로우하면 투고가 있을 때 트위터에 알린다. 그러면 예외가 발생하면 트위터에 알릴 수 있다!
그나저나 MS Teams는 포스트의 JSON에 따라 다양한 풍부한 정보참고 자료를 보낼 수 있다.
POST가 생성되는 버튼이 대단하네요

최후


이번 기능을 도입해 지금까지보다 훨씬 빠르고 쉽게 이상이 감지됐다.
예외가 생겼다. 즉 서비스에 문제가 있을 수 있다는 것이다.
예외를 신속하게 검출하고 서비스 고장을 조속히 수정하는 것은 서비스 개발에 매우 중요하다.
트위터 알림을 실현하는 방법은 많지만 이번처럼 비https 환경에서 이루고 싶은 분들은 MS Teams를 연구해보세요
내일 식생활 기록인 Advent Calendar는 22일째@tayu1605씨의'초보자 필수'루비의 방법에 따라 비망록을 탐색한다.
기대해주세요!

좋은 웹페이지 즐겨찾기