正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

統合エラートラッキング

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com

このガイドでは、さまざまな言語の例を使用して、プロジェクトの統合エラートラッキングを設定する方法に関する基本的な情報を提供します。

GitLab可観測性によって提供されるエラートラッキングは、Sentry SDKに基づいています。アプリケーションでSentry SDKを使用する方法の詳細と例については、Sentry SDKのドキュメントを参照してください。

プロジェクトのエラートラッキングを有効にする

使用するプログラミング言語に関係なく、最初にGitLabプロジェクトのエラートラッキングを有効にする必要があります。このガイドでは、GitLab.comインスタンスを使用します。

前提要件:

  • エラートラッキングを有効にするプロジェクトが必要です。プロジェクトの作成方法を参照してください。

GitLabをバックエンドとしてエラートラッキングを有効にするには、次の手順に従います:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 設定 > モニタリングに移動します。
  3. エラートラッキングを展開します。
  4. エラートラッキングを有効にするで、アクティブを選択します。
  5. バックエンドのトラッキングエラーGitLabを選択します。
  6. 変更を保存を選択します。
  7. Data Source Name (DSN)(データソース名(DSN))文字列をコピーします。SDK実装を構成するために必要になります。

ユーザートラッキングの設定

エラーの影響を受けるユーザー数を追跡するには:

  • 初期化コードで、各ユーザーが一意に識別されるようにします。ユーザー追跡するには、ユーザーID、名前、メールアドレス、またはIPアドレスを使用できます。

たとえば、Pythonを使用している場合は、メールでユーザーを識別できます:

sentry_sdk.set_user({ email: "john.doe@example.com" });

ユーザーの識別に関する詳細については、Sentryドキュメントを参照してください。

追跡されたエラーを表示する

アプリケーションがSentry SDKを介してエラートラッキングAPIにエラーを送信すると、それらのエラーがGitLab UIで使用できるようになります。それらを表示するには:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。

  2. モニタリング>エラートラッキングに移動して、未解決のエラーのリストを表示します:

    MonitorListErrors

  3. エラーを選択して、Error details(エラーの詳細)ビューを表示します:

    MonitorDetailErrors

    このページには、例外の詳細が次のように表示されます:

    • 合計発生回数。
    • 影響を受けたユーザーの合計。
    • 初回閲覧日:日付とコミット( commit )。
    • 最終閲覧日。相対日付として表示。タイムスタンプを表示するには、日付にカーソルを合わせます。
    • 1時間あたりのエラー頻度の棒グラフ。特定の時間の合計エラー数を表示するには、バーにカーソルを合わせます。
    • スタックトレース。

エラーからイシューを作成する

エラーに関連する作業を追跡する場合は、エラーから直接イシューを作成できます:

  • Error details(エラーの詳細)ビューで、イシューの作成を選択します。

イシューが作成されます。イシューの説明には、エラースタックトレースが含まれています。

エラーの詳細を分析する

エラーの完全なタイムスタンプを表示するには:

  • Error details(エラーの詳細)ページで、最終閲覧日にカーソルを合わせます。

次の例では、エラーは11:41 CESTに発生しました。

MonitorDetailErrors

直近の24時間グラフは、このエラーが1時間あたりに発生した回数を測定します。11 amバーをポイントすると、ダイアログにエラーが239回表示されたことが示されます:

MonitorDetailErrors

最終閲覧フィールドは、import * as timeago from 'timeago.js'を呼び出すために使用されるライブラリが原因で、1時間が完了するまで更新されません。

エラーを出力

サポートされている言語SDKとSentryのタイプ

GitLabエラートラッキングは、次のイベントタイプをサポートしています:

言語テスト済みのSDKクライアントとバージョンエンドポイントサポートされているアイテムタイプ
Gosentry-go/0.20.0storeexceptionmessage
Javasentry.java:6.18.1envelopeexceptionmessage
NodeJSsentry.javascript.node:7.38.0envelopeexceptionmessage
PHPsentry.php/3.18.0storeexceptionmessage
Pythonsentry.python/1.21.0envelopeexceptionmessagesession
Rubysentry.ruby:5.9.0envelopeexceptionmessage
Rustsentry.rust/0.31.0envelopeexceptionmessagesession

このテーブルの詳細バージョンについては、issue 1737を参照してください。

例外、イベント、またはメッセージをそのSDKでキャプチャする方法を示す、サポートされている言語SDKの作業も参照してください。詳細については、特定の言語のSentry SDKのドキュメントを参照してください。

生成されたDSNをローテートする

Sentryによると、DSNを公開しても安全ですが、これにより、悪意のあるユーザーによってジャンクイベントがSentryに送信される可能性が開かれます。したがって、可能であれば、DSNをシークレットにしておく必要があります。これは、DSNが読み込むため、ユーザーのデバイスに保存されるクライアント側のアプリケーションには適用されません。

前提要件:

Sentry DSNをローテートするには:

  1. apiのスコープを持つアクセストークンを作成します。今後の手順で必要になるため、この値をコピーしてください。

  2. error tracking APIを使用して新しいSentry DSNを作成し、<your_access_token><your_project_number>を自分の値に置き換えます:

    curl --request POST \
      --header "PRIVATE-TOKEN: <your_access_token>" \
      --header "Content-Type: application/json" \
      --url "https://gitlab.example.com/api/v4/projects/<your_project_number>/error_tracking/client_keys"
  3. 使用可能なクライアントキー(Sentry DSN)を取得します。新しく作成したSentry DSNが配置されていることを確認します。古いクライアントキーのキーIDを使用して次のコマンドを実行し、<your_access_token><your_project_number>を自分の値に置き換えます:

    curl --header "PRIVATE-TOKEN: <your_access_token>" \
      --url "https://gitlab.example.com/api/v4/projects/<your_project_number>/error_tracking/client_keys"
  4. 古いクライアントキーを削除します:

    curl --request DELETE \
      --header "PRIVATE-TOKEN: <your_access_token>" \
      --url "https://gitlab.example.com/api/v4/projects/<your_project_number>/error_tracking/client_keys/<key_id>"

SDKのイシューをデバッグする

Sentryでサポートされているほとんどの言語は、初期化の一部としてdebugオプションを公開しています。debugオプションは、エラーの送信に関するイシューをデバッグするときに役立ちます。APIにデータを送信する前にJSONを出力するその他のオプションがあります。

データ保持

GitLabには、すべてのエラーに対する90日間の保持制限があります。

エラートラッキングのバグまたは機能に関するフィードバックを残すには、フィードバックイシューにコメントするか、新しいイシューを開いてください。