EOL通知
2022 年 4 月以降、C SDK 機能はサポートされていません。詳細については、 サポート フォーラムの投稿 を参照してください。
NewRelicのCSDKは、アプリケーションとマイクロサービスを監視して、パフォーマンスの問題を特定して解決するのに役立ちます。 Cアプリケーションは、コンパイルされたネイティブバイナリファイルから実行されます。トランザクションを監視するには、NewRelicメソッドを追加してコードを手動でインストルメント化する必要があります。
このガイドは、使用する方法を決定するのに役立ちます。メソッドのコード、必要なパラメーター、および例は、 GitHubにあるNewRelicのCSDKドキュメントにあります。
カスタマイズがスレッドセーフであることを確認してください
C SDK はマルチスレッド アプリケーションのインストゥルメントをサポートしていますが、複数のスレッドをインストゥルメントする前に初期化する必要があります。 次の関数のいずれかを呼び出すときは、他の C SDK 関数が呼び出される前に、それらの関数がcalled on the main threadあることを確認してください。
トランザクションの監視
トランザクションを監視するためにコードを手動でインストルメントする前に:
- アプリのCSDKの互換性と要件を確認してください。
- 最新バージョンのCSDKライブラリを使用していることを確認し、必要に応じて更新します。
あなたがしたい場合は... | この方法を使用してください... |
---|---|
Webトランザクションのタイミングを開始します | |
Web以外のトランザクションのタイミングを開始します | |
トランザクションのタイミングを停止します |
|
トランザクションがNewRelicに報告されないようにする |
セグメントを使用した時間固有の方法
トランザクションがNewRelicにすでに表示されているが、そのトランザクション中に呼び出された特定のメソッドに関する十分なデータがない場合は、セグメントをインストルメント化できます。たとえば、複雑なロジックを持つメソッドの時間を計測する場合は、トランザクション内のメソッドごとにセグメントを作成できます。
既存のトランザクション内でメソッドをインストルメント化するには、次のいずれかのセグメントを作成します。
- 外部サービス
- 関数またはその他の任意のコードブロック(カスタムセグメントを使用)
- データストア
- 遅いクエリトレース(SQLデータストアのみ)
あなたがしたい場合は... | この方法を使用してください... |
---|---|
セグメントのタイミングを開始します |
|
セグメントのタイミングを停止します |
|
手動で親セグメント |
これは、たとえば、トランザクションの最上位呼び出しの子としてセグメントを視覚化する場合の非同期プロセスで役立ちます。詳細については、 GitHubの手動セグメントペアレント化ドキュメントを参照してください。 |
セグメントはアクティブなトランザクションに記録されます。アクティブなトランザクションにセグメントを追加するときは、 newrelic_start_web_transaction()
またはnewrelic_start_non_web_transaction()
によって返されるnewrelic_txn_t*
またはトランザクションポインタにアクセスする必要があります。
トランザクションのメタデータを強化する
NewRelicがトランザクションについて報告するメタデータを管理できます。これは、トランザクションに異なるレベルの詳細が必要な場合に役立ちます。例えば:
メトリックのグループ化の問題が発生している場合は、トランザクションのデフォルト名を変更して、トランザクションをより識別しやすくすることができます。
履歴書に
を作成する場合は、カスタムアトリビュートを追加できます。
あなたがしたい場合は... | この方法を使用してください... |
---|---|
メタデータ(顧客のアカウント名やサブスクリプションレベルなど)をトランザクションに追加します | タイプに基づいてトランザクションにカスタム属性を追加します。 |
外部サービスへの機器呼び出し
次の方法を使用して、アプリと他のアプリまたはデータベースとの接続に関するデータを収集します。
あなたがしたい場合は... | この方法を使用してください... |
---|---|
リクエストが分散システムを通過するときにたどるパスを確認する | 手順に従って、分散トレースを有効にして計測します。 |
外部リソース(外部サービス、データベースサーバー、メッセージキューなど)への呼び出しの時間を計測します | 外部セグメントへのインストルメントコールの手順に従います。 |
エラーを収集またはログに記録する
CSDKはエラーを自動的に検出します。 New Relicにエラーを報告する方法を変更する場合は、エラーコレクターの構成を変更してください。
あなたがしたい場合は... | この方法を使用してください... |
---|---|
アプリのログレベルを設定する |
|
エラーを報告する |
アプリからカスタムデータを送信する
C SDKを使用してカスタムデータを記録するには、次のいずれかの方法を使用できます。
Custom events:
New Relic では、イベントデータは基本的なデータ型です。 イベント データは、特定の瞬間における単一のイベントの記録を表します。 これは、特定の詳細を表示または照会する場合に便利です。
Custom event attributes:
イベントに関する追加の情報を含めるには、カスタム イベントにキー値のペア (カスタムアトリビュート) を追加します。
Custom metrics:
メトリックタイムスライス データは、 New Relicが集計したデータの統計的測定値であり、 UIで表示したりグラフ化したりできます。 通常、メトリクス データの保存期間はイベント データよりも長くなります。
カスタムデータを使用するいくつかの方法があります。これらのオプションのコードの詳細と例については、GitHubのNewRelicグローバルドキュメントを参照してください。
あなたがしたい場合は... | この方法を使用してください... |
---|---|
カスタムイベントを作成して、タイムスタンプと属性を入力します。 | |
タイムスタンプを付けてカスタムイベントを現在のトランザクションに追加し、クエリまたは視覚化できるようにします。 | |
追加のメタデータを使用してカスタムイベントを強化します。 | タイプに基づいて、カスタムイベント属性をカスタムイベントに追加します。 |
カスタムイベントが作成された後、トランザクションが終了する前に破棄して、NewRelicに報告されないようにします。 | これは、プログラムのリークを回避するために、不要なカスタムイベント用に割り当てられたメモリを解放するために必要です。 |
検索またはグラフ化できるカスタムパフォーマンス期間を報告します。 |
デスクトップブラウザのパフォーマンスを監視する
アプリケーションのデスクトップブラウザのパフォーマンスを監視するには、 コピー/貼り付け方法を使用してブラウザエージェントをインストールします。
構成設定の変更
通常、アプリケーションの構成のデフォルト設定を変更する必要はありません。ただし、必要に応じて、一部の設定を調整できます。詳細については、 CSDK構成のドキュメントを参照してください。