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