Sentryでreleaseと紐付けたエラートラッキング

Diary

概要

  • 2019年末ごろに、Sentry上のエラーとリリースを関連付けられる機能が付いていました。
  • これにより、エラーとリリースの関連付けができるようになります。
  • 基本的にこのページの内容を踏襲してCircleCIにてdeployが終わった後にSentryに通知するように設定してみました。

コード

  • .circleci/config.ymlの抜粋です。
  • CircleCIのWorkflowを使っている場合はサンプルコードをそのまま使えないので、色々変更しています。
  • SENTRY_AUTH_TOKENをCircleCIの環境変数に設定しておく必要があります。
version: 2.1
commands:
<snip>
  sentry_setup_create_release:
    steps:
      - run: |
          curl -sL https://sentry.io/get-cli/ | bash
          export SENTRY_RELEASE=$(sentry-cli releases propose-version)
          sentry-cli releases new -p $SENTRY_PROJECT $SENTRY_RELEASE
          sentry-cli releases set-commits --auto $SENTRY_RELEASE
          sentry-cli releases finalize $SENTRY_RELEASE

 jobs:
  create-sentry-production-release:
    docker:
      - image: circleci/node:latest
        environment:
          SENTRY_ORG: <YOUR_ORGANIZATION>
          SENTRY_PROJECT: <YOUR_PROJECT_NAME>
          SENTRY_AUTH_TOKEN: ${SENTRY_AUTH_TOKEN}
    steps:
      - checkout
      - sentry_setup_create_release

  create-sentry-development-release:
    docker:
      - image: circleci/node:latest
        environment:
          SENTRY_ORG: <YOUR_ORGANIZATION>
          SENTRY_PROJECT: <YOUR_PROJECT_NAME>
          SENTRY_AUTH_TOKEN: ${SENTRY_AUTH_TOKEN}
    steps:
      - checkout
      - sentry_setup_create_release

workflows:
  version: 2
  build-deploy:
    jobs:
<snip>
      - create-sentry-production-release:
          requires:
            - deploy-production
          filters:
            branches:
              only: master
<snip>
      - create-sentry-development-release:
          requires:
            - deploy-development
          filters:
            branches:

              only: develop

CircleCI上でbuildが成功すれば以下のような表示になります。実行時間は16秒。

Sentry上での表示は以下のような感じになります。

エラーが無いからわかりませんがリリース後に出たエラーはここに表示されるようです。便利!

関連ページ

CircleCIのorbがあって使えそうなのですが、なんか使えなかったので今回は自前でstepを書いています。

Next step

  • このあたりをやって、JavascriptのSDKからもバージョンを送る必要があるっぽい?
https://docs.sentry.io/workflow/releases/index?platform=javascript#configure-sdk

コメント