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

独自のインテグレーションを構築:New Relic Flex

New Relicは、多くの一般的なサービスやフレームワーク向けのインテグレーションとクイックスタートを提供しています。New Relicをすでに使用しており、インテグレーション対象外のサービスからデータのレポートを行う場合、次のいくつかの方法で独自のインテグレーションを作成できます。

  • を使用すると、軽量Flexツール (推奨) を使用したり、Integrations SDK を使用して完全な オンホストインテグレーション を構築したりできます。
  • テレメトリ(メトリクス、トレース)モニタリングソリューションには、当社のテレメトリーSDKを使用します。
  • 独自のJavaScript UI機能を使用する、カスタムのNew Relicアプリケーションを構築します。

New Relic Flex とは?

Flex は、アプリケーションに依存しないオールインワンのNew Relicインテグレーションで、幅広いサービスからイベントやメトリクスを収集できます。FlexはInfrastructureエージェントにバンドルされています。標準プロトコル (HTTP、ファイル、シェル) を介してメトリクスを標準形式 (JSON やプレーンテキストなど) で公開するアプリケーションのインストゥルメントが可能です。YAML設定ファイルを作成し、Infrastructureエージェントを起動すると、データがNew Relicに報告されます。

データを収集してクリーンアップした後、New RelicでFlexデータをクエリし、カスタムチャートを作成して、そのデータをダッシュボードで使用できます。

互換性と要件の確認

システムが次の要件を満たしていることを確認してください。

  1. まだの場合は、無料のアカウントにサインアップしてください。 無料です。

  2. New Relicアカウントは、次のOSおよびプラットフォームに対応しています。

    • Kubernetes
    • Linux
    • macOS
    • Windows
  3. 設定するシステムとオンホストインテグレーションが要件を満たしていることを確認するには、Infrastructureエージェントの要件を参照してください。

  4. Flexは、Linux、Windows、またはKubernetesで実行されるInfrastructureエージェントバージョン 1.10.7以降にバンドルされています。

UIドキュメントから古いエージェントバージョンを特定してバージョンを確認するか、更新する必要がある場合はInfrastructureエージェントのドキュメントを更新してください。

インストレーション

New Relic Flexをインストールするには、次の手順に従ってください。

Infrastructureエージェントをインストールする

New Relic Infrastructureエージェントバージョン1.10.7以降、Flexはエージェントにバンドルされています。Infrastructureエージェントをインストールするには、次を参照してください。

Flexが起動していることを確認する

次の手順を実行します:

  1. Infrastructureエージェントのインテグレーションフォルダーに移動します。

    • Linuxの場合: /etc/newrelic-infra/integrations.d
    • Windowsの場合: C:\Program Files\New Relic\newrelic-infra\integrations.d\
  2. インテグレーション設定ファイルを作成します。たとえば、存在しない場合はintegrations.ymlです。

  3. Flex設定をファイルに追加します。

    integrations:
    - name: nri-flex
    config:
    name: just-testing

    ファイルにすでにintegrationsセクションがある場合は、それにnri-flexを追加します。

  4. 数分後、 one.newrelic.com > All capabilities > Query your dataに移動して次のクエリを実行します。

    FROM flexStatusSample
    SELECT *
    LIMIT 1

    クエリを実行すると、次のようなテーブルが返されます。

    Flex status table

    one.newrelic.com > All capabilities > Query your dataに移動し、クエリビルダーにクエリを追加して、 Runをクリックします。

    ヒント

    何も表示されない場合は、YAML設定ファイルが適切にインデントされており、インデントレベルでスペースの代わりにタブが使用されていないことを確認してください。YAML LintなどのYAMLバリデーターを使用することができます。

最初のFlexインテグレーション

この例では、Linuxでdfコマンドを使用して、New Relicが標準でサポートしないファイルシステムからディスクメトリクスを収集する方法を示します。

ここでの目標は、エージェントがすでにサポートしているファイルシステムを除外しながら、ファイルシステムと1バイトブロックを表示して、 dfコマンドの出力を処理することです。サポートされていないファイルシステムがマウントされていない場合は、-x引数を削除してください。

$ df -PT -B1 -x tmpfs -x xfs -x vxfs -x btrfs -x ext -x ext2 -x ext3 -x ext4
Filesystem Type 1-blocks Used Available Capacity Mounted on
devtmpfs devtmpfs 246296576 0 246296576 0% /dev
go_src vboxsf 499963170816 361339486208 138623684608 73% /go/src

上記の表形式のテキスト出力を、次の形式による同等のJSONサンプルのセットに変換する必要があります。エージェントが各サンプルに追加フィールドを付加していることに注意してください。

{
"event": {
"event_type": "FileSystemSample",
"fs": "go_src",
"fsType": "vboxsf",
"capacityBytes": 499963170816,
"usedBytes": 361345331200,
"availableBytes": 138617839616,
"usedPerc": 73,
"mountedOn": "/go/src"
}
}

まず、以下のように指定して、上記の表形式のテキストをJSONに変換する方法をFlexに指示してください。

  • メトリクス名: FileSystem
  • 実行するコマンド: df -PT -B1 ...
  • 出力テーブルを分割する方法 df
  • 指定されたメトリクス名に値を割り当てる方法

これは、以下の内容をYAML設定ファイルに配置することで実現されます。

integrations:
- name: nri-flex
config:
name: linuxFileSystemIntegration
apis:
- name: FileSystem
commands:
- run: 'df -PT -B1 -x tmpfs -x xfs -x vxfs -x btrfs -x ext -x ext2 -x ext3 -x ext4'
split: horizontal
split_by: \s+
row_start: 1
set_header: [fs,fsType,capacityBytes,usedBytes,availableBytes,usedPerc,mountedOn]
perc_to_decimal: true
  • apis は、各サンプルのエントリの配列です。各エントリはサンプル名を設定し、サンプルを取得して処理するためのコマンドと手順を設定します。この例の最初のエントリはFileSystemという名前で、 FileSystemSampleイベントの名前付けに使用されます。

  • commands は、CLIアプリケーションから情報を取得する方法を指定します。

    • run: 'df -PT -B1... は、実行するコマンドを指定します。
    • split: horizontal は、各出力行がメトリクスを返す可能性があることを示しています。
    • split_by は、各行を異なるフィールドに分割する方法を説明します。この場合、 \s+正規表現を使用します。これは、1つ以上の空白のシーケンスが区切り文字であることをFlexに伝えます。
    • row_start は、データが最初の行 (0) の直後から始まることを指定します。
    • set_header は、前述の配列の各値に一致する名前を順番に指定します。
    • perc_to_decimal: true 末尾の%記号を削除して、パーセンテージ文字列を小数値に変換することを示します。

Flex設定を作成すると、Infrastructureエージェントが新しい設定を自動検出し、データの収集を開始します。新しいインテグレーションが機能していることを確認するには、次のコマンドを実行します。

FROM FileSystemSample
SELECT mountedOn, fs, usedBytes, capacityBytes, usedBytes

クエリを実行すると、次のようなテーブルが返されます。

Flex status table

one.newrelic.com > All capabilities > Query your dataに移動し、クエリビルダーにクエリを追加して、 Runをクリックします。

Flexインテグレーションをさらに追加する方法

ìntegrations.dファイルに設定を追加することで、Flexインテグレーションをさらに追加できます。スタンドアロンのFlex設定は、インテグレーションの名前から始まり、コマンドラインからFlexを呼び出すことでテストできます。

bash
$
sudo /var/db/newrelic-infra/newrelic-integrations/bin/nri-flex --verbose --pretty --config_file ./myconfig.yml

このインテグレーションを追加したい場合:

name: linuxOpenFD
apis:
- name: linuxOpenFD
commands:
- run: cat /proc/sys/fs/file-nr | awk '{print $1-$2,$3}'
split: horizontal
set_header: [openFD,maxFD]
regex_match: true
split_by: (\d+)\s+(.*)

ìntegrations.dファイルを開いて、次のように追加します。

integrations:
- name: nri-flex
config:
name: linuxFileSystemIntegration
apis:
- name: FileSystem
commands:
- run: 'df -PT -B1 -x tmpfs -x xfs -x vxfs -x btrfs -x ext -x ext2 -x ext3 -x ext4'
split: horizontal
split_by: \s+
row_start: 1
set_header: [fs,fsType,capacityBytes,usedBytes,availableBytes,usedPerc,mountedOn]
perc_to_decimal: true
- name: linuxOpenFD
commands:
- run: cat /proc/sys/fs/file-nr | awk '{print $1-$2,$3}'
split: horizontal
set_header: [openFD,maxFD]
regex_match: true
split_by: (\d+)\s+(.*)

ìntegrations.dファイルに複数のFlex設定を追加する場合は、次のパターンに従ってください。

integrations:
- name: nri-flex
config:
name: flexName_1
# Flex config goes here
- name: nri-flex
config:
name: flexName_2
# Flex config goes here
- name: nri-flex
config:
name: flexName_3
# Flex config goes here

インデントの問題を最小限に抑えるには、 config_template_pathディレクティブを使用してスタンドアロンのFlex設定ファイルにリンクできます。

integrations:
- name: nri-flex
config_template_path: /path/to/flex/integration.yml

Flexリポジトリにはカスタムインテグレーションの例が多数紹介されています。

FlexとKubernetes

KubernetesでFlexを設定する方法に応じて、使用できるコンテナイメージが3つあります。

  • Kubernetesで実行されているサービスの監視だけにFlexを実行するには、newrelic/infrastructure コンテナイメージを使用します。このイメージには、Infrastructureエージェント、Docker、およびFlexインテグレーションのみが含まれています。このオプションでは、サービス検出を実行したり、他のNew Relicインテグレーションを使用したりすることはできません。

  • Flex を他のNew Relicインテグレーションと一緒に実行するには、newrelic/infrastructure-bundle コンテナイメージを使用します。これにより、他のすべてのNew Relicインテグレーションが追加されます。

  • Kubernetesクラスタも監視したい場合は、newrelic/infrastructure-k8s コンテナイメージを使用します。このイメージは、 Kubernetesインテグレーションを含むすべてのインテグレーションを追加します。

重要

Kubernetesでサービスを実行している場合は、New Relicの公式コンテナイメージを使用することをお勧めします。詳細については、 Kubernetesインテグレーションの概要を参照してください。

KubernetesでFlexを構成する

Kubernetesインテグレーションをインストールすると、クラスタ内でInfrastructureエージェントと次の2つの configMapが実行されます。

  • nri-default-integration-cfg:これは、 New Relic Kubernetesインテグレーションを有効にするために使用される configMap です。このインテグレーションを使用しない場合は削除しても構いません。Helm コマンドでKubernetesをインストールした場合は、integrations_configの値を入力してください。詳細については、 New RelicのHelmチャートリポジトリを参照してください。

  • nri-integration-cfg-example:これは、Flexおよびその他のNew Relicインテグレーションを有効にするために使用される configMap です。

Flexを有効にするには、 configMapにデータセクションを作成し、この新しいセクションの下にInfrastructureエージェントのインテグレーション設定を追加します。

apiVersion: v1
kind: ConfigMap
metadata:
name: nri-integration-cfg-example
namespace: default
data:
nri-flex.yml: |
integrations:
- name: nri-flex
config:
name: example
apis:
- event_type: ExampleSample
url: https://my-host:8443/admin/metrics.json

サンプル設定

他のサンプルをお探しですか?さまざまなデータソースを開始する際に役立つ設定例をいくつか紹介します。

トラブルシューティング

Flex設定で問題が発生した場合は、次の基本的なトラブルシューティングの手順に従ってください。

  • Infrastructureエージェントを使用せずに設定をテストする:次のようなコマンドを実行すると、設定ファイルを手動でテストし、期待どおりの出力が得られるかどうかを確認できます。<FILE_NAME>の部分を設定ファイルの名前に置き換えるようにしてください。

    bash
    $
    # Linux default path: /opt/newrelic-infra/newrelic-integrations/bin/
    $
    ./nri-flex -verbose -pretty -config_path /etc/newrelic-infra/integrations.d/<FILE_NAME>
    $
    $
    # Windows default path: C:\Program Files\New Relic\newrelic-infra\newrelic-integrations
    $
    .\nri-flex.exe -verbose -pretty -config_path "C:\Program Files\New Relic\newrelic-infra\integrations.d\<FILE_NAME>"

    これにより、Infrastructureエージェントと統合される、デバッグログとJSONペイロードの出力が得られます。残りのトラブルシューティング手順に進む前に、Flexが意図したとおりにテレメトリーを取得して書式を整えていることを確認してください。Flex設定のテストの詳細については、GitHubリポジトリをご覧ください。

  • dry-runモードでInfrastructureエージェントを使用してテストする: Infrastructureエージェントのdry-runフラグを使用して、Flex設定をテストします。New Relicにレポートするテレメトリが、出力に含まれていることを確認します。

  • Infrastructureエージェントとのインテグレーションをデバッグする:Infrastructureエージェントでデバッグログを有効化して、エージェントが意図どおりにテレメトリーデータをレポートしていることを確認します。

ヒント

ここからスタンドアロンバイナリを取得できます。Flexの詳細は、READMEファイルを参照してください。

Copyright © 2025 New Relic株式会社。

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