統合エラートラッキング
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com
このガイドでは、さまざまな言語の例を使用して、プロジェクトの統合エラートラッキングを設定する方法に関する基本的な情報を提供します。
GitLab可観測性によって提供されるエラートラッキングは、Sentry SDKに基づいています。アプリケーションでSentry SDKを使用する方法の詳細と例については、Sentry SDKのドキュメントを参照してください。
プロジェクトのエラートラッキングを有効にする
使用するプログラミング言語に関係なく、最初にGitLabプロジェクトのエラートラッキングを有効にする必要があります。このガイドでは、GitLab.comインスタンスを使用します。
前提要件:
- エラートラッキングを有効にするプロジェクトが必要です。プロジェクトの作成方法を参照してください。
GitLabをバックエンドとしてエラートラッキングを有効にするには、次の手順に従います:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > モニタリングに移動します。
- エラートラッキングを展開します。
- エラートラッキングを有効にするで、アクティブを選択します。
- バックエンドのトラッキングエラーでGitLabを選択します。
- 変更を保存を選択します。
- Data Source Name (DSN)(データソース名(DSN))文字列をコピーします。SDK実装を構成するために必要になります。
ユーザートラッキングの設定
エラーの影響を受けるユーザー数を追跡するには:
- 初期化コードで、各ユーザーが一意に識別されるようにします。ユーザー追跡するには、ユーザーID、名前、メールアドレス、またはIPアドレスを使用できます。
たとえば、Pythonを使用している場合は、メールでユーザーを識別できます:
sentry_sdk.set_user({ email: "john.doe@example.com" });ユーザーの識別に関する詳細については、Sentryドキュメントを参照してください。
追跡されたエラーを表示する
アプリケーションがSentry SDKを介してエラートラッキングAPIにエラーを送信すると、それらのエラーがGitLab UIで使用できるようになります。それらを表示するには:
左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
モニタリング>エラートラッキングに移動して、未解決のエラーのリストを表示します:
エラーを選択して、Error details(エラーの詳細)ビューを表示します:
このページには、例外の詳細が次のように表示されます:
- 合計発生回数。
- 影響を受けたユーザーの合計。
- 初回閲覧日:日付とコミット( )。
- 最終閲覧日。相対日付として表示。タイムスタンプを表示するには、日付にカーソルを合わせます。
- 1時間あたりのエラー頻度の棒グラフ。特定の時間の合計エラー数を表示するには、バーにカーソルを合わせます。
- スタックトレース。
エラーからイシューを作成する
エラーに関連する作業を追跡する場合は、エラーから直接イシューを作成できます:
- Error details(エラーの詳細)ビューで、イシューの作成を選択します。
イシューが作成されます。イシューの説明には、エラースタックトレースが含まれています。
エラーの詳細を分析する
エラーの完全なタイムスタンプを表示するには:
- Error details(エラーの詳細)ページで、最終閲覧日にカーソルを合わせます。
次の例では、エラーは11:41 CESTに発生しました。
直近の24時間グラフは、このエラーが1時間あたりに発生した回数を測定します。11 amバーをポイントすると、ダイアログにエラーが239回表示されたことが示されます:
最終閲覧フィールドは、import * as timeago from 'timeago.js'を呼び出すために使用されるライブラリが原因で、1時間が完了するまで更新されません。
エラーを出力
サポートされている言語SDKとSentryのタイプ
GitLabエラートラッキングは、次のイベントタイプをサポートしています:
| 言語 | テスト済みのSDKクライアントとバージョン | エンドポイント | サポートされているアイテムタイプ |
|---|---|---|---|
| Go | sentry-go/0.20.0 | store | exception、message |
| Java | sentry.java:6.18.1 | envelope | exception、message |
| NodeJS | sentry.javascript.node:7.38.0 | envelope | exception、message |
| PHP | sentry.php/3.18.0 | store | exception、message |
| Python | sentry.python/1.21.0 | envelope | exception、message、session |
| Ruby | sentry.ruby:5.9.0 | envelope | exception、message |
| Rust | sentry.rust/0.31.0 | envelope | exception、message、session |
このテーブルの詳細バージョンについては、issue 1737を参照してください。
例外、イベント、またはメッセージをそのSDKでキャプチャする方法を示す、サポートされている言語SDKの作業例も参照してください。詳細については、特定の言語のSentry SDKのドキュメントを参照してください。
生成されたDSNをローテートする
Sentryによると、DSNを公開しても安全ですが、これにより、悪意のあるユーザーによってジャンクイベントがSentryに送信される可能性が開かれます。したがって、可能であれば、DSNをシークレットにしておく必要があります。これは、DSNが読み込むため、ユーザーのデバイスに保存されるクライアント側のアプリケーションには適用されません。
前提要件:
- プロジェクトの数値プロジェクトIDが必要です。
Sentry DSNをローテートするには:
apiのスコープを持つアクセストークンを作成します。今後の手順で必要になるため、この値をコピーしてください。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"使用可能なクライアントキー(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"古いクライアントキーを削除します:
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日間の保持制限があります。
エラートラッキングのバグまたは機能に関するフィードバックを残すには、フィードバックイシューにコメントするか、新しいイシューを開いてください。



