EOL通知
2022 年 4 月以降、C SDK 機能はサポートされていません。詳細については、 サポート フォーラムの投稿 を参照してください。
Cライブラリをインポートできる言語を使用して Linux上でアプリケーションをモニターするには、以下が必要です:
newrelic_new_app_config()
を使用して設定を作成し、newrelic_init()
を使用してデーモンに接続して、newrelic_create_app()
を使用してアプリケーションを接続します。詳細については、C SDKのインストレーション手順を参照してください。- 本ドキュメントの説明通り、C SDKを使用して手動でトランザクションをインストゥルメントします。
New Relicでは、Web または非 Web をソフトウェア アプリケーション内の 1 つの論理的な作業単位として定義します。 関数を追加してソースコードにトランザクションを手動で計装すると、New Relic TransactionsNew Relicの ページ でデータを表示できます。トランザクションのセグメントとエラーを計装することもできます。
トランザクションをインストゥルメントする
モニターできるようにトランザクションをインストゥルメントするには、トランザクションの周囲でインストゥルメンテーションを開始および停止するNew Relic機能をラップします。使用する機能は、ウェブまたは非ウェブトランザクションのいずれをインストゥルメントしたいかにより異なります。
次の例では、アプリケーションはnewrelic_create_app()
を呼び出した後に作成されています。詳細については、GitHubにあるC SDKのインストレーション手順およびC SDK libnewrelic.h
ドキュメントを参照してください。
モニターするエンドポイントのすぐ後に次のコードを追加し、必要な引数を指定します。 before
ウェブトランザクションの場合:
// Example code: newrelic_txn_t *txn; /* ... */ txn = newrelic_start_web_transaction(app, "NAME_YOUR_TRANSACTION");
非ウェブトランザクションの場合:
// Example code: newrelic_txn_t *txn; /* ... */ txn = newrelic_start_non_web_transaction(app, "NAME_YOUR_TRANSACTION");
監視したい Web または非 Web 境界の直後に
newrelic_end_transaction()
を追加し、その場所にポインタ&txn
を指定します。
セグメントをインストゥルメントする
C SDKを使用してトランザクションをインストゥルメントしたら、そこでセグメントをインストゥルメントできます。セグメントをインストゥルメントすることにより、トランザクション内の個別の機能および呼び出しをモニターできます。
Segments example
チェックアウトプロセスに関連するトランザクションがあり、これは、発送情報とクレジットカード情報の両方をプロセスするものです。アプリケーションをインストゥルメントし、当該トランザクションを最大2つのセグメントに分割することができます:1つは発送用、もう1つは支払い用です。
セグメントをインストゥルメントし、次のような種類の呼び出しをモニターできます:
詳細については、GitHubにあるC SDKのインストレーション手順およびC SDK libnewrelic.h
ドキュメントを参照してください。
エラーをインストゥルメントする
トランザクションのエラーをモニターするためにC SDKを使用するには、newrelic_notice_error()
関数を追加することにより、手動でソースコードをインストゥルメントする必要があります。
トランザクション エラーとエラー トレースは、New Relic のError analyticsページに表示されます。 C SDK は、エラーの合計数と 1 分あたり最大 100 件のエラー トレースを報告します。 トランザクション エラーをAPM TransactionError
イベントとして表示、クエリ、視覚化することもできます。
ヒント
関数の呼び出しをエラートレースに含めるには、GNUの-rdynamic
リンカーフラグを使い、コンパイルする際にアプリケーションをリンクさせます。-rdynamic
リンカーフラグを使うと、エラートレースがより意味を持つものになります。
トランザクションのエラーをインストゥルメントするには:
- トランザクションを開始します。
newrelic_notice_error()
でエラーを記録し、必要なパラメーターを指定します。- トランザクションを終了し、必要なパラメーターを供給します。
詳細については、GitHubにあるC SDKのインストレーション手順およびC SDK libnewrelic.h
ドキュメントを参照してください。
メトリクスのグループ化問題を回避する
アカウントまたはアプリケーションが、グループで管理した方がよい個別のメトリックを多数送信する場合、 New Relicこの状況を説明するために metric grouping issue または MGI という用語を使用します。 アプリケーションが New Relic に不必要に大量のデータを送信すると、グラフ、表、レポートの有効性が低下します。
メトリクスのグループ化問題が最も起きやすいのはウェブトランザクションであり、特に当てはまるのはURLに基づく命名が行われた場合です。このような状況を回避するために、メトリクスのグループ化問題を参照してください。