こちらのガイドでは、クラッシュレポート機能をすでに利用している方や、Windows で MiniDumpWriteDump を使用してダンプファイルを生成している方向けに、それらのダンプファイルを HTTP または HTTPS を介して送信する方法について説明します。サポート対象のクラッシュレポートライブラリを使用している場合は、そこで推奨される送信メカニズムを使用してください。
送信トークンが存在することを確認する
まず、送信トークンが作成されていることを確認します。送信トークンの詳細については、こちらで確認してください。
curl の使用に関する注意
サイズの大きなファイルについては、ヘッダーフラグ -H "Expect: gzip"
を指定して、Backtrace にアップロードするときに問題を引き起こす可能性がある、curl
の一部のデフォルトの動作をオーバーライドします。 以降の例には、このフラグが含まれています。
ダンプファイルを送信する
この例では、送信トークンが abcdef0123456789
であると仮定しましょう。ダンプファイルの送信には、HTTP POST が使用されます。以下に curl
呼び出しの例を示します。
curl -v --data-binary @example_minidump.dmp -H "Expect: gzip" "https://submit.backtrace.io/<universeName>/<errorSubmissionToken>/minidump"
これは、HTTP マルチパートでも実現できます。
curl -v -F "upload_file_minidump=@example_minidump.dmp" -H "Expect: gzip" "https://submit.backtrace.io/<universeName>/<errorSubmissionToken>/minidump"
属性の設定
ユーザー定義の属性は、次のように渡すこともできます。
- クエリ文字列パラメーター
- マルチパートフォームデータパラメーター
一部はクエリ文字列、一部はマルチパートフォームデータと、両方を混在させてもかまいません。
クエリ文字列パラメーター
たとえば、ミニダンプを送信する必要があり、それに関連付けられている version
属性を 1.0
に設定するとします。
curl -v -F "upload_file_minidump=@example_minidump.dmp" -H "Expect: gzip" "https://submit.backtrace.io/<universeName>/<errorSubmissionToken>/minidump&version=1.0"
URL の末尾をご覧ください。
マルチパートフォームデータパラメーター
たとえば、ミニダンプを送信する必要があり、それに関連付けられている version
属性を 1.0
に設定するとします。
curl -v -F "version=1.0" -F "upload_file_minidump=@example_minidump.dmp" -H "Expect: gzip" "https://submit.backtrace.io/<universeName>/<errorSubmissionToken>/minidump"
属性の詳細については、こちらを参照してください。
ファイルの添付
マルチパート POST
test.json のアタッチメントが最初のクラッシュの送信に含まれる送信方法です。アカウント内のプロジェクトに正常に送信されるようにするには、次の部分を変更する必要があります。
- <Path_to_your_file>:送信するクラッシュデータが含まれるファイルの場所
- <Path_to_your_attachment>:クラッシュに添付されるファイルの場所
- <universe>:Backtrace アカウントへのアクセスに使用される URL の最初の部分
- <error-token>:クラッシュデータの送信先となるプロジェクトのエラートークン
curl -v -F "upload_file=@<Path_to_your_file>/example_minidump.dmp" -H "Expect: gzip" -F "attachment_test.json=@<Path_to_your_file>/test.json; type=application/json" "<backtrace submission url>"
既存のクラッシュレポートにファイルを添付する
この方法では、送信されたクラッシュレポートに _rxid 値が割り当てられている必要があります。 この値は、適切にフォーマットされたリクエストを送信した後に返されます。最初の curl コマンドでは、クラッシュレポートが送信されます。2 つ目のコマンドは、最初の送信に対してファイルを添付します。
curl -d <Path_to_your_file>/example_minidump.dmp -H "Expect: gzip" "<backtrace submission url>"
- <Path_to_your_file>:送信するクラッシュデータが含まれるファイルの場所
- <universe>:Backtrace アカウントへのアクセスに使用される URL の最初の部分
- <error-token>:クラッシュデータの送信先となるプロジェクトのエラートークン
適切にフォーマットされたクラッシュレポートの送信により、次のような応答が返されます。
{"response":"ok","_rxid":"56000000-8be7-5806-0000-000000000000"}
このオブジェクトにファイルを添付するには、返された _rxid をコピーする必要があります。
curl -v --data-binary "upload_file=@<your_file_path>/test.json" -H "Expect: gzip" -H "Content-Type:application/json" "<backtrace submission url>?object=<_rxid>&attachment_name=<Path_to_your_attachment>"
- &object=<_rxid> :最初の HTTP 送信から返された値
- &attachment_name=<Path_to_your_attachment>:クラッシュに添付されるファイルの場所
適切にフォーマットされたアップロード送信により、次のような応答が返されます。
{"response":"ok","_rxid":"ce000000-0000-0000-0000-000000000000","attachment_name": "test.json","attachment_id": "28","object":"ce"}
応答を見てみると、Backtrace プロジェクト内の指定されたオブジェクトにファイルが添付されたことがわかるはずです。200/ok の応答が返されるのは同じですが、_rxid の見た目が少し異なります。クラッシュが送信されなかったため、新しいユニーク ID は送信されません。今回は、特定のクラッシュレポートを識別するのに使用される、ID 属性/エラー識別子がデバッグビュー内に送信されます。
リスナーレイヤー
インスタンスのリスナーに直接送信することもできます。まずは、クラッシュデータを送信するためのリスナーが存在することを確認します。http/writer
ラベルを使用してリスナーを探します。リスナー設定は、「組織の設定(Configuration Organization)
」メニュー項目にあります。
上の例では、サーバーが testing.company.com
にホストされている場合、ダンプファイルを http://testing.company.com:6097/post?format=minidump&token=<abcdef0123456789> または https://testing.company.com:6098/post?format=minidump&token=<abcdef0123456789> のどちらかに送信できます。これらは上のスクリーンショットの、最初の 2 つの http/writer
ラベル付きのエントリです。