New Relic Rubyエージェントは、GitHub で入手可能なドキュメントを含むパブリック API を提供します。 GitHub ドキュメントには、 Rubyアプリのカスタムインストゥルメンテーションを設定し、より詳細なデータを収集する方法が記載されています。
以下のセクションでは、共通の目標、解決策、ドキュメントの関連部分へのリンクを説明しています。
重要
Ruby エージェントAPIを使用する場合は、最新の Ruby エージェント リリースを使用していることを確認してください。 以下の例で使用されるいくつかの API には、Ruby エージェントバージョン 4.6.0以上が必要です。
コードの欠落しているセクションをトランザクションで計測する
アプリをインストゥルメントするために、New Relicはコードで各パスをそのトランザクションに分離します。New Relicは、これらのトランザクションの親メソッドの時間をインストゥルメントして総合的なパフォーマンスを測定し、追加詳細として長期間実行されているトランザクションからトランザクショントレースを収集します。
New Relicがコードの特定の部分をまったくインストルメントしていない場合は、次のメソッドを使用します。
あなたがしたい場合は... | これを行う... |
---|---|
New Relicが自動的に計測していないメソッドの時間 | 新しいトランザクションを作成します。 トランザクションエントリーポイントのトレース を参照してください。 |
単一のメソッド呼び出し以外の時間 | Use Tracer API. |
トランザクションがNewRelicに報告されないようにする | Ignore トランザクションです。 |
セグメントを使用した時間固有の方法
New Relic UIにトランザクションがすでに表示されているが、そのトランザクション中に呼び出された特定のメソッドに関する十分なデータがない場合は、セグメントを作成して、それらの個々のメソッドの時間をより詳細に計測できます。たとえば、複雑なロジックを使用して特に重要なメソッドの時間を計測したい場合があります。
これらのメソッドは、既存のトランザクション内でメソッドをインストゥルメントする場合に使用します。
あなたがしたい場合は... | これを行う... |
---|---|
特定の方法の時間を計る | |
単一のメソッド呼び出し以外の時間 | Use Tracer API. |
トランザクションのメタデータを強化する
場合によっては、ターゲットとするコードが New Relic UI に表示されるものの、メソッドの詳細の一部が役に立たないことがあります。 例えば:
- デフォルトの名前では、 メトリックのグループ化の問題が発生しています 。
- カスタム属性 をトランザクションに追加して、 クエリビルダ でフィルタリングできるようにしたい。
New Relic UIにすでに表示されているトランザクションをNew Relicでインストゥルメントする方法を変更する場合は、以下の方法を使用します。
あなたがしたい場合は... | これを行う... |
---|---|
トランザクションの名前を変更する | 参照 ネーミング・トランザクション. |
トランザクションにメタデータ(顧客のアカウント名またはサブスクリプションレベルなど)を追加する | 使用 カスタムアトリビュート.参照 カスタムアトリビュートの追加. |
トランザクションをバックグラウンドジョブとしてマークする | Monitor custom background jobs を参照してください。 |
トランザクションをWebトランザクションとしてマークする |
|
トランザクションがApdexスコアに影響を与えないようにする | Ignoring Apdex contributions を参照してください。 |
関連ログを見る
アプリケーションのエラーとトレースのコンテキスト内でログを直接表示するには、次のAPI呼び出しを使用してログに注釈を付けます。
ログデータと他のテレメトリーデータとの相関関係については、 logs in context のドキュメントをご覧ください。
エラーを収集または無視する
通常、エージェントは自動的にエラーを検出します。しかし、エージェントを使って手動でエラーをマークすることもできます。また、エラーを 無視または予想される としてマークすることもできます。
あなたがしたい場合は... | これを行う... |
---|---|
エージェントが自動的に報告しないエラーを報告する | |
エージェントがエラーをまったく報告しないようにする | エラーを無視としてマークします。 |
エラーがApdexやエラーレートに影響することを防ぎつつ、New Relicに報告することができます。 | エラーを予想どおりとしてマークします。「New Relic の送信エラー」を参照して、 |
アプリからカスタムイベントと指標データを送信する
APMには、任意のカスタムデータを記録する多くの方法が含まれます。New Relicデータ型の説明については、データ収集をご覧ください。
あなたがしたい場合は... | これを行う... |
---|---|
ダッシュボードで分析できるように、イベントに関するデータを送信する | カスタム イベントを作成します。 |
メタデータを使用してイベントにタグ付けし、ダッシュボードまたはエラー分析でフィルターしてファセットする | カスタム属性を追加します。属性のハッシュを |
カスタムパフォーマンスデータを報告する | カスタム メトリックを作成します。 |
ブラウザエージェントの制御
通常、 エージェントはページに自動的に追加されるか、JavaScript スニペットをコピー/貼り付けすることによってデプロイされます。 これらの推奨方法の詳細については、 「ブラウザ監視にアプリを追加する」を参照してください。 ただし、 APMエージェントAPIコールを介してBrowseragentを取得することもできます。 詳細については、 browser_timing_header()
を参照してください。
データストアへの呼び出しをインストゥルメントする
これらのメソッドを使用して、アプリの他のデータストアへの接続に関するデータを収集します。
あなたがしたい場合は... | これを行う... |
---|---|
New Relic が自動的にインストルメントしていないデータストアへのタイムコール |
|
データストアの呼び出しをRubyのブロックできれいにまとめることができなかった場合 |
|
SQLクエリをタイミングよくキャプチャ |
|
SQL以外のクエリをタイミングを合わせて取得 |
|
外部への機器呼び出し
これらの方法は、外部からの要求に応じてデータを収集するために使用します。
あなたがしたい場合は... | これを行う... |
---|---|
New Relicが自動的に計測していない外部リクエストへのコールをタイムアウトさせる |
|
クロスアプリケーショントレーシング(CAT)ヘッダを送信用HTTPリクエストに追加する |
|
受信したHTTPリクエストからCATヘッダを読み取る |
|
アウトバウンドリクエストでCAT情報を伝送するための難読化された文字列の生成 |
|
インバウンドリクエストから受け取ったCAT情報を含む難読化された文字列の処理 |
|
分散型トレーシングのためのインストゥルメントコール
重要
以下のAPIの例では、Rubyエージェントのバージョン6.9.0以上が必要です。
これらのAPIは、 分散型トレーシングが有効になっている必要があります。.
Distributed tracing では、リクエストが分散システムを通過する際のパスを確認することができます。
以下のコールを使用して分散型トレーシングを実装する方法の一般的な説明については、 Use distributed tracing APIs を参照してください。
あなたがしたい場合は... | これを行う... |
---|---|
呼び出されたサービスにペイロード/ヘッダーを送信します。 |
|
最初のサービスから受け取ったペイロード/ヘッダーを受け入れ、これらのサービスをトレースで結びつける |
|