• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

問題を作成する

RubyのエージェントAPIを利用するためのガイド

New Relic の Ruby エージェントは、パブリック API を提供しており、ドキュメントは GitHub で公開されています。GitHub のドキュメントでは、Ruby アプリのカスタムインスツルメンテーションを設定し、より詳細なデータを収集する方法が紹介されています。

以下のセクションでは、共通の目標、解決策、ドキュメントの関連部分へのリンクを説明しています。

重要

Ruby エージェント API を使用する場合は、最新の Ruby エージェント・リリースを使用してください。以下の例で使用しているいくつかのAPIは,Ruby agent version 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トランザクションとしてマークする

:category => :controllerオプションをset_transaction_name()に渡します。詳細については、 「トランザクションの名前付け」を参照してください。

トランザクションがApdexスコアに影響を与えないようにする

Ignoring Apdex contributions を参照してください。

関連ログを見る

アプリケーションのエラーとトレースのコンテキスト内でログを直接表示するには、次のAPI呼び出しを使用してログに注釈を付けます。

ログデータと他のテレメトリーデータとの相関関係については、 logs in context のドキュメントをご覧ください。

エラーを収集または無視する

通常、エージェントは自動的にエラーを検出します。しかし、エージェントを使って手動でエラーをマークすることもできます。また、エラーを 無視または予想される としてマークすることもできます。

あなたがしたい場合は...

これを行う...

エージェントが自動的に報告しないエラーを報告する

参照 New Relic のハンドリングエラーの送信.

エージェントがエラーをまったく報告しないようにする

エラーを無視としてマークします。error_collector.ignore_errors構成オプションを使用するには、 Error Collectorを参照してください。

エラーがApdexやエラーレートに影響することを防ぎつつ、New Relicに報告することができます。

エラーを予想どおりとしてマークします。「New Relic の送信エラー」を参照して、 :expectedtrueに設定します。

アプリからカスタムイベントと指標データを送信する

APMには、任意のカスタムデータを記録する多くの方法が含まれます。New Relicデータ型の説明については、データ収集をご覧ください。

あなたがしたい場合は...

これを行う...

ダッシュボードで分析できるように、イベントに関するデータを送信する

カスタム イベントを作成します。record_custom_event()を参照してください。

メタデータを使用してイベントにタグ付けし、ダッシュボードまたはエラー分析でフィルターしてファセットする

カスタム属性を追加します。属性のハッシュをrecord_custom_event()に渡します。

カスタムパフォーマンスデータを報告する

カスタム メトリックを作成します。record_metric()を参照してください。

ブラウザエージェントの制御

通常、 エージェントはページに自動的に追加されるか、JavaScript スニペットをコピー/ペーストしてデプロイされます。これらの推奨方法の詳細については、 「ブラウザ監視にアプリを追加する」を参照してください。ただし、APM エージェント API 呼び出しを介してブラウザ エージェントを取得することもできます。詳細については、 browser_timing_header()を参照してください。

データストアへの呼び出しをインストゥルメントする

これらのメソッドを使用して、アプリの他のデータストアへの接続に関するデータを収集します。

あなたがしたい場合は...

これを行う...

New Relic が自動的にインストルメントしていないデータストアへのタイムコール

wrap()を参照してください。

データストアの呼び出しをRubyのブロックできれいにまとめることができなかった場合

Tracer.start_datastore_segment()を参照してください。このメソッドによって返されたオブジェクトに対してfinishを呼び出す必要があります

SQLクエリをタイミングよくキャプチャ

notice_sql()を参照してください。

SQL以外のクエリをタイミングを合わせて取得

notice_statement()を参照してください。

外部への機器呼び出し

これらの方法は、外部からの要求に応じてデータを収集するために使用します。

あなたがしたい場合は...

これを行う...

New Relicが自動的に計測していない外部リクエストへのコールをタイムアウトさせる

Tracer.start_external_segment()を使用します。このメソッドによって返されたオブジェクトに対してfinishを呼び出す必要があります

クロスアプリケーショントレーシング(CAT)ヘッダを送信用HTTPリクエストに追加する

add_request_headers()を使用します。

受信したHTTPリクエストからCATヘッダを読み取る

read_response_headers()を使用します。

アウトバウンドリクエストでCAT情報を伝送するための難読化された文字列の生成

get_request_metadata()を使用します。

インバウンドリクエストから受け取ったCAT情報を含む難読化された文字列の処理

process_response_metadata()を使用します。

分散型トレーシングのためのインストゥルメントコール

重要

以下のAPIの例では、Rubyエージェントのバージョン6.9.0以上が必要です。

これらのAPIは、 分散型トレーシングが有効になっている必要があります。.

Distributed tracing では、リクエストが分散システムを通過する際のパスを確認することができます。

以下のコールを使用して分散型トレーシングを実装する方法の一般的な説明については、 Use distributed tracing APIs を参照してください。

あなたがしたい場合は...

これを行う...

呼び出されたサービスにペイロード/ヘッダーを送信します。

insert_distributed_trace_headers()を参照してください。

最初のサービスから受け取ったペイロード/ヘッダーを受け入れ、これらのサービスをトレースで結びつける

accept_distributed_trace_headers()を参照してください。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.