1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

この記事について

NewRelicにはNR-Flexという機能があります。
https://docs.newrelic.com/jp/docs/infrastructure/host-integrations/host-integrations-list/flex-integration-tool-build-your-own-integration/

NR-Flexが何かよくわかっていない人がNR-Flexを理解して、一からNR-Flexを用いたモニタリングができるようになるための最低限の情報をここにまとめます。

対象読者

  • NewRelicを使い始めたばかりの方
  • NR-Flexが何かわからない方
  • NR-Flexを使ったことがない方

NR-Flexとは

端的にいうとNewRelicにメトリクスを送信するためのツールです。

NewRelicでは通常インテグレーションを用いて、データ(メトリクスなど)を収集します。
AWSではAWSインテグレーションを利用することでCloudwatchメトリクスをNewRelicに送信して、AWSの監視をNewRelicで行うことが可能になります。
インテグレーションの種類は多岐に渡り、基本的なモニタリングはインテグレーションを利用することで実現可能です。

ただ

  • モニタリングしたいものに対応するインテグレーションがない
  • インテグレーションはあるが、そのインテグレーションでは取得したいメトリクスを取得できない
    というケースがあります。

そんな時に利用するのがNR-Flexです。
NR-Flexを利用すれば自分の取得したいメトリクスを自由に定義して、NewRelicに送信することが可能になります。

もしNR-Flexがなければ、NewRelicのエンドポイントにメトリクスを送信するプログラム(スクリプト)を用意して、それをcronで実行させて....というような実装が必要になります。
NR-Flexを利用することで、ユーザはノーコードもしくはローコードでNewRelicにメトリクスを送信することができます。

どうやって使うの?

NR-Flexを利用するためには、NewRelic Infrastrucreエージェントがインストールされたホストが必要です。
https://docs.newrelic.com/jp/docs/infrastructure/install-infrastructure-agent/get-started/install-infrastructure-agent/

NewRelic Infrastructureエージェントがインストールされたホストさえあれば、あとはyamlファイルを作成するだけでNR-Flexを利用することができます。

使ってみる

事前準備

  • EC2 ( AMIはAmazon Linux2 )を用意
  • EC2にNewRelic Infrastructure agentをインストール

NR-Flexファイルの作成

NewRelic Infrastructure agentをインストールしたら、/etc/newrelic-infra/integrations.dディレクトリが作成されます。

このディレクトリ配下にyaml形式でNR-Flexの設定を定義したファイルを作成します。(作成したあとは、systemctl restart newrelic-infra.serviceを実行しておきましょう)

/etc/newrelic-infra/integrations.d/sample-nrflex.yml
integrations:
  - name: nri-flex
    interval: 60s
    config:
      name: Hogehoge
      apis:
        - name: Hogehoge
          commands:
            - run: echo hoge 1
              split: horizontal
              split_by: \s+
              set_header: [sample-string, sample-number]

上記が何を意味しているか簡単に解説します。

以下のコマンドを60秒毎に実行し、

echo hoge 1

その標準出力であるhoge 1をNewRelicに送信します。

送信する際に、hoge 1をスペースで分割して、それぞれ別のメトリクスとしております。(splitとsplit_byの定義内容をもとに処理されます)

hogeにはsample-stringというヘッダーが、1にはsample-numberというヘッダーが付与されます。

integrations.config.apis.commandsを指定すると、infrastrucutre agentをインストールしたホストにてコマンドを実行し、そのコマンドの出力を加工して、NewRelicに送信することができます。

NewRelic側でメトリクスを確認する。

NewRelicではNR-Flexで送信したメトリクスは、integrations.config.apis.nameに指定した名前のEventから確認することが可能です。

Hogehogeと指定していたので、HogehogeSampleというEventができているはずです。

ではNewRelicのData explorerを見てみましょう。
image.png

From HogehogeSampleからメトリクスを取得すると、Sample-NumberとSample-Stringというヘッダーができており、その中にhoge1が記録されています。

このようにNR-Flexを利用すれば、ユーザが送信したいメトリクスをNewRelicに簡単に送信することが可能になります。

NR-Flexを本格的に利用するには

NR-Flexファイルを作り込む必要があります。
中身のパラメータについては以下リンクを参照してください。
https://github.com/newrelic/nri-flex/blob/master/docs/basics/configure.md

覚えることはあまり多くありません。
実行させるコマンド/スクリプトがしっかり動けば、意図したメトリクスをNewRelicに送信することができます。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?