GAS와 Stackdriver(Logging, Error Reporting)를 연동

Apps Script Advent Calendar 2017 에 App Maker 기사만 써 왔지만 마지막 날이므로 GAS 재료를 쓴다.

이전에 GAS의 로그 출력 방법에 대해 기사를 썼는데, 이 때는 Stackdriver에 대해 잘 몰랐기 때문에, Google 문서에 출력하는 방법으로 썼다.
Google Apps Script 로그 디자인 #gasja - Qiita

위의 기사를 쓴 후에 Stackdriver를 사용할 기회가 있고, 이 녀석은 상당히 편리하다는 것을 알았기 때문에 Stackdriver와 연계시키면 어떤 느낌이 되는지를 해설한다.

Stackdriver



Stackdriver에는 3종류 있다.
  • Stackdriver Logging
  • Stackdriver Error Reporting
  • Stackdriver Monitoring

  • 이 기사에서는 Logging을 사용한 로그 출력과 Error Reporting을 사용한 오류보고 (알림)에 대해 설명합니다. 1

    Stackdriver Logging



    console을 사용하여 로그 출력



    로그를 출력하려면 콘솔 을 사용한다.

    동작 확인용 코드



    다음과 같은 logTest function 을 작성한다.
    ※ 다른 log level 출력과 시간 계측용 time, timeEnd 가 준비되어 있다.

    Code.gs
    function logTest() {
      console.time('LABELA');
      console.log('log');
      console.info('info:%s', 'フォーマットを指定することも可能');
      console.warn('warn');
      console.error('error');
      console.timeEnd('LABELA');
    }
    



    실행 및 로그 확인



    Run > Run Function에서 logTest 실행하고 다음 단계에 따라 로그를 확인합니다.

    View > Stackdriver Logging





    그러면 다음과 같은 로그를 확인할 수 있는 화면이 표시된다.


    Stackdriver Logging 기본 키



    본 기사는 Stackdriver Logging 의 설명을 하는 것이 주지가 아니기 때문에 최소한의 것만 기재해 둔다. 2

  • 로그 업데이트(재검색)
  • 자동으로 로그 업데이트 (자동으로 다시 가져 오기)
  • 간단한 필터
  • 고급 필터
  • 로그 수준 필터링
  • 시간에 필터
  • 로그 표시 방법 변경 (자동으로 확장/내림차순 오름차순)
  • 배포

  • Stackdriver Error Reporting



    동작 확인용 코드



    다음과 같은 errorReportTest function 을 작성한다.
    ※catch 되지 않았던 throw 가 Error Reporting 에 들어온다.

    Code.gs
    function errorReportTest() {
      throw 'エラーのテスト';
    }
    
    



    실행 및 로그 확인



    Run > Run Function에서 errorReportTest 실행하고 다음 절차에 따라 오류를 확인합니다.

    View > Stack Driver Error Reporting





    그러면 다음과 같은 에러를 확인할 수 있는 화면이 표시된다.






    Stackdriver Error Reporting 기본 키



    본 기사는 Stackdriver Error Reporting 의 설명을 하는 것이 주지가 아니기 때문에 최소한의 것만 기재해 둔다.





  • 상태별 필터(6 관련)
  • 오류 보고서를 자동으로 업데이트 (자동으로 다시 가져 오기)
  • 오류를 이메일로 알림
  • 필터
  • 시간에 필터
  • 상태 변경

  • 상태는 해결되면 Resolved로 변경하여 목록에서 지우는 것과 같은 사용법을 한다.

    Logging 및 Error Reporting을 이용한 코드 예제 및 캡처



    각각을 이용한 코드 예를 기재한다.
    Google Apps Script 로그 디자인 #gasja - Qiita 로 쓴 코드와 비교해 압도적으로 깨끗이 하고 있는 것을 알 수 있을까 생각한다.

    코드



    Code.gs
    function myFunction() {
      console.info('myFunctionStart');
    
      // ここにメインの処理
    
      throw 'エラーが発生1';
      console.info('myFunctionEnd');
    }
    
    







    화면 캡처



    Stackdriver Logging








    Stackdriver Error Reporging








    덧붙여서 메일 통지를 ON으로하면 이런 느낌






    참고 사이트



    Class console  |  Google Apps Script
    Stackdriver Logging  |  Google Cloud Platform
    Stackdriver Error Reporting  |  Google Cloud Platform



    GAS에서 Monitoring까지 사용하는 것은 별로 없습니까?

    로그를 Cloud Storage에 출력하거나 정말로 다양하게 할 수 있다.

    좋은 웹페이지 즐겨찾기