코드/학습 완료 slack으로 알람받기

2023. 6. 29. 02:38·Setting
728x90

모델을 학습하면서 학습 완료가 되면 메일을 오게 할 수 있다는 방법을 예전에 들었었는데 그런게 있구나~하고 넘겼다가 필요성을 느껴 찾아보았다. 찾아보니 보안에 문제가 될 수 있다고 하길래 메일 대신 slack 알람을 받을 수 있는 방법에 대해서 찾아보았다.

(사실 혼자서 하다가 실패했지만 부스트캠프 멘토님이 마침 딱 알려주셨다! 감사합니다 멘토님🥳)

 

본론으로 들어가보자

1. 알림을 받을 워크스페이스 왼쪽 상단의 아래삼각형을 눌러 관리 - 앱관리를 들어간다.

 

2. slack app directory 에서 "수신 웹후크" 또는 "incoming webhooks"를 검색한 후 slack에 추가하기를 누른다.

 

3. 수신받을 채널을 선택하고 "수신 웹후크 통합 앱 추가"를 누른다. 

이후 나오는 url을 저장하고 사용하면 된다.

 

만약 잊어버렸다면 2번의 두번째 사진에서 "구성"을 눌러서 내가 추가한 웹후크의 설정창에 들어가서 다시 확인할 수 있다.

또 해당창에서는 웹후크 설명, 이름, 사진 등을 추가하는 등의 커스터마이징이 가능하다. 

url을 다시 확인할 수 있고 설명 및 이름을 수정할 수 있다.

 

4. alarm.py 생성

send_message_slack에 매개변수로 넘긴 string을 slack webhook로 보내주는 코드로, 3번째 줄 slack_webhook_url에 위에서 받은 slack webhook url을 넣어서 완성하면 된다.

import requests

slack_webhook_url = "put your link"

def send_message_slack(text: str) -> None:
    payload = {
        "blocks": [
            {
                "type": "section",
                "text": {
                    "type": "mrkdwn",
                    "text": text,
                },
            },
        ],
    }
    # requests.post (WebhookUrl. SLACK_WEBHOOK_URL, json=payload)

    requests.post (slack_webhook_url, json=payload)

if __name__ == "__main__":
    send_message_slack(text="Model load completed")

 

5. alarm.py의 send_message_slack 호출하기

import가 필요하다면 추가하고, 아래와 같이 함수를 호출하면 된다.

매개변수를 안넘겨줘도 앞서 설정해놓은 기본 문구로 출력이 되나, 필요시 2번째 줄 처럼 원하는 메세지를 넣어서 출력할 수 있다.

send_message_slack()
send_message_slack(text="원하는 메세지")

출력 결과 아래와 같이 설정한 채널로 슬랙알림이 오는 것을 확인할 수 있다.

 

6. 선택 사항

위 과정을 통해 모델 학습이 완료되면 slack으로 알림이 오게되었다.

다만 나의 경우 모델 확습 완료 외에도 bus error, oom 등 에러가 날 때도 에러가 왔으면 좋겠다는 생각이 생겼다.

그래서 try except 문을 활용하여 학습이 완료나면 "Model Learning Completed"가 에러가 나서 종료가 되면 "Model Learning Failed"가 뜨도록 하였다.

try:
    main(args)
    send_message_slack(text="Model Learning Completed")
except:
    send_message_slack(text="Model Learning Failed")

다만 이렇게 작성한 경우 에러 메세지가 뜨지 않기 때문에 에러메세지를 보고 싶다면 traceback을 활용해야한다.

 

728x90

'Setting' 카테고리의 다른 글

[GIT] Rebase를 이용하여 pr에서 특정 커밋 삭제하기  (0) 2025.04.03
Git 사용자 이름과 이메일 설정하기  (0) 2023.06.08
파이썬 설치 경로 확인하기  (0) 2023.04.12
[Linux] source ~/.bashrc 명령어  (0) 2023.04.11
Conda activate가 되지 않을 때 PowerShell 실행 정책 바꾸기  (0) 2023.04.07
'Setting' 카테고리의 다른 글
  • [GIT] Rebase를 이용하여 pr에서 특정 커밋 삭제하기
  • Git 사용자 이름과 이메일 설정하기
  • 파이썬 설치 경로 확인하기
  • [Linux] source ~/.bashrc 명령어
bbooo
bbooo
  • bbooo
    bbooo
    bbooo
  • 전체
    오늘
    어제
    • 분류 전체보기 (142)
      • study (61)
        • 백준(BOJ) (34)
        • Programmers (15)
        • LeetCode (9)
      • AI (4)
        • Paper (0)
      • SSAC X IFFEL (4)
        • DeepML (1)
        • 밑바닥 부터 시작하는 딥러닝 (2)
      • 회고 (46)
      • Error (10)
      • Setting (15)
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    풀이 실패
    투포인터
    브루트포스
    programmers 석유시추
    파이썬
    set
    프로그래머스 석유시추
    항해99
    Til
    sort
    typeerror: sequence item 0: expected str instance int found
    sequence item 0: expected str instance int found
    백준
    파이썬 석유시추
    99클럽
    개발자 취업
    vscode
    python 석유시추
    docker
    그리디 알고리즘
    python 과제 진행하기
    백준 2470
    programmers 과제 진행하기
    LeetCode
    두 포인터
    Counter
    파이썬 과제 진행하기
    문자열을 원하는 길이로
    백트래킹
    코딩테스트 준비
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
bbooo
코드/학습 완료 slack으로 알람받기
상단으로

티스토리툴바