概要
Backtrace で収集されたクラッシュデータやエラーデータを、包括的なモニタリング、時系列でのデータ分析、カスタムビジュアライゼーション、アラームやアラートの発信を実行できるよう設計された、中央集約型のダッシュボードシステムに組み込むことができると便利です。Backtrace の指標エクスポートを使用すると、Circonus、Datadog、Graphite、Grafana、Prometheus、InfluxDB などのシステムに対してプッシュまたはプルできる時系列の指標の階層グループを定義することで、これに対応できます。
以下は、Circonus ダッシュボードシステムに対する時限の指標として 1 分間に 1 回エクスポートされる、Backtrace のサンプルデータ(あるプロジェクトに入ってくるエラーの数)を示します。このグラフでは、プロジェクトで発生したエラーの平均数が表示され、さまざまな時間枠で利用できます。
- 指標セット。これは 1 つ以上の指標ストアと共有される、さまざまな指標のコレクションです。
- 指標。それぞれの指標は Backtrace で結果にスカラー値(unique、count、min、max)を持つ集計クエリとして定義されます。
- Backtrace で指標情報が共有される指標ストア。指標セットは 1 つ以上の指標セットに関連付けられています。
指標セット、指標、指標ストア
「プロジェクト設定」 > 「Metric Export(指標エクスポート)」をクリックして、指標セットと指標ストアを管理します。
このセクションでは、指標セットと指標を作成する方法と、サードパーティのシステムと情報を共有する指標ストアを作成して管理する方法について説明します。
指標セットと指標
指標セットは、さまざまな指標をグループ化するために使用されるコンテナです。指標セットは、1 つ以上の指標ストアに接続できます。指標は、Backtrace の「参照」ビューでクエリを定義し、「Export As Metric(指標としてエクスポート)」機能を使用して作成されます。「参照内に指標セットを作成」をクリックして開始します。
Backtrace の「参照」ビューで、ダッシュボードにプッシュする指標の形状を模倣するクエリを作成します。スカラー値(count、unique、min、max、sum、first、last)が生成されるフィルター、グループ化、集計を活用します。
注 - Backtrace では指標が作成されるときに時間枠が無視され、指標内の送信されるデータの種類を定期的に(1 分に 1 回)プレビューできます。
指標の一般的な例
- エラーの数
- 「なし」でグループ化し、集計「_tx - unique」を追加する
- _tx は、Backtrace に送信された個々のエラーを識別する属性です。一意の _tx の集計を計算することで、一意の txid、つまり送信された個々のエラーの数を共有できます。
- 「なし」でグループ化し、集計「_tx - unique」を追加する
- エラーの数と影響を受けるユーザー(またはデバイス)の数
- 「なし」でグループ化し、集計「_tx - unique」と「guid - unique」を追加する
- guid は、Backtrace にエラーを送信する個々のユーザーやデバイスを識別する属性です。一意の guid の集計を追加することで、送信されたエラーの影響を受けた一意のユーザー数やデバイス数を共有できます。
- 「なし」でグループ化し、集計「_tx - unique」と「guid - unique」を追加する
- フィンガープリント別のエラーの数
- フィンガープリントでグループ化し、集計「_tx - unique」を追加する
- フィンガープリントでグループ化すると、Backtrace でフィンガープリントごとに受け取ったエラーの一意の数を共有できます。
- フィンガープリントでグループ化し、集計「_tx - unique」を追加する
- app.version ごとのエラーの数と影響を受けたユーザーの数
- app.version でグループ化し、集計「_tx - unique」と「guid - unique」を追加する
- app.version でグループ化すると、Backtrace でゲームのバージョンごとの一意のエラーの数と影響を受けたユーザー/デバイスの数を共有できます。
- app.version でグループ化し、集計「_tx - unique」と「guid - unique」を追加する
以下の例では、影響を受けたユーザーの数を error.type ごとに共有するために、「参照」ビューで error.type 別にグループ化し、user.id-unique で集計しています。右側の「名前を付けてエクスポート」ボタンを使用して、そのクエリを指標としてエクスポートします。指標を識別する名前を指定し、指標セット内に保存します(または新しい指標セットを作成します)。次のステップでは、ある指標セットの指標をスケジュールに基づいて(1 分に 1 回)収集するために関連付ける、指標ストアを作成します。
以下の例では、ProjectXErrorsAndImpactedUsers と呼ばれる指標セットに 4 つの指標(AllErrors2、ErrorsByTypeWithImpactedUsers、UsersImpacted、UsersImpactedPerFingerprint)が含まれています。各指標を定義しているクエリをプレビューできます。
サポートされている指標ストア
Backtrace では、指標ストアを通じて指標セットからのデータをサードパーティのシステムに共有します。指標ストアは、アダプターを使用することで、プッシュまたはプルメカニズムを介して、サードパーティのストアと接続されます。このセクションでは、サポートされているシステムと使用できるアダプターについて説明します。
指標ストアを作成する
指標ストアの作成中に、名前、データを共有する頻度(秒単位)を指定し、使用するアダプターを選択します。選択するアダプターに応じて、追加の接続情報を指定する必要があります。Backtrace などのサードパーティのシステムから指標を取り込む最適な方法については、サードパーティのドキュメントを参照してください。
サポートされているアダプターを設定する方法の詳細については、以下を参照してください。
Circonus
Backtrace は、次の 2 つのアダプターのいずれかを介して、Circonus に接続されます。
- Circonus_pull:Backtrace によって、JSON データがプルされるセキュリティで保護されたランダムな URL と、Basic 認証用のランダムなユーザー名とパスワードが生成されます。こちらの URL を JSON:Pull チェックとして Circonus のインテグレーションに入力します。Circonus のドキュメントのチェックに関するセクションで、JSON:Pull チェックを作成する方法の詳細を確認してください。
- Circonus_push:Circonus で JSON プッシュチェックを設定し、Circonus によって提供される「データ送信 URL」をコピーする必要があります。Backtrace で、新しい Circonus_push アダプターを作成し、データ送信 URL を Backtrace の Circonus_push アダプターに貼り付けます。Backtrace で、この URL に指標がプッシュされる頻度を(分単位で)設定できます。Backtrace では、デフォルト値の 60 秒が設定されます。
Datadog
Backtrace は、HTTP Post API を介して Datadog に接続されます。Backtrace で Datadog アダプターとして作成中に、使用する DD_CLIENT_API_KEY を指定する必要があります。この API に指標がプッシュされる頻度を(分単位で)指定できます。デフォルトは 60 秒です。
Graphite
Backtrace は、Carbon API を介して Graphite に接続され、こちらで説明されているように、プレーンテキストが共有されます。データの書き込み先となるホスト名とポートを、netcat スタイルで指定します。頻度は自分で設定できます。デフォルトは 60 秒です。
Grafana
Backtrace は、こちらで定義されているように、HTTP API を介して Grafana に接続されます。共有クラスターと専用クラスターのどちらを使用しているかに応じて、以下を指定する必要があります。
-
インスタンス URL -
- https://graphite-us-central1.grafana.net/metrics のような形式の場合は共有インスタンスであり、インスタンス ID の入力も必要です。
- https://tsdb-123-your-company-name.hosted-metrics.grafana.net/graphite のような形式の場合は専用インスタンスであり、インスタンス ID は必要ありません。
- API キー。
- インスタンス ID(省略可、最初の箇条書きを参照)。
- 頻度は自分で設定できます(秒単位)。デフォルトは 60 秒です。
Prometheus
Backtrace は、ランダムに生成されたセキュリティで保護された URL を介して、Prometheus に接続されます。Backtrace で、Prometheus のスクレイプ元を設定できます。Prometheus のスクレイプするターゲットに関するドキュメントを参照してください。
InfluxDB
このための API はこちらにあります。ユーザーは以下の情報を設定します。
- 投稿先の URL。
- ユーザーは頻度を(分単位)で設定できますが、デフォルトは 1 分です。
状態を表示または指標ストアを編集する
各指標ストアでは、ターゲットとデータを共有する頻度(以下を見てみると、各指標ストアに 60 秒の期間が設定されています)と、PUSH タイプのアダプターでデータが最後に伝送された時刻に関する情報が提供されます。追加の設定の詳細を表示できます。PUSH タイプのアダプターについては、Backtrace によって ## 秒ごとにデータがプッシュされるよう設定された URL などが表示されます。PULL タイプのアダプターについては、Backtrace から情報を取得するためにサードパーティのストアに入力できるリソース URL が表示されます。
まとめ
この章を読み終わると、指標データをお使いのサードパーティのダッシュボードシステムにプッシュするために、Backtrace に設定する必要があるコンポーネントについて十分に理解できるようになります。復習しましょう。
- 1 つ以上の指標ストアに接続するには、指標の名前付きグループである、1 つ以上の指標セットが必要です。
- 指標は「参照」ビューでクエリによって定義され、1 つの指標セット内に保存されます。指標を定義する際には、フィルター、グループ化、スカラー集計値を使用し、時間フィルターを無視してクエリを形成します。クエリを指標エクスポートとして「エクスポート」し、その指標を「プロジェクト設定」 > 「Metric Export(指標エクスポート)」ページでプレビューします。
- 指標ストアでは、パッケージ化されたアダプターの 1 つを使用して、サードパーティのシステムへのプッシュまたはプル接続を定義します。指標ストアは、Backtrace で定義された期間に基づいて、秒レベルの粒度でサードパーティのシステムとデータが共有されます。