New Relic Advent Calendar22日目は、収集・蓄積した可観測性データの価値を最大限に引き出すために、New Relic One上にカスタムのアプリケーション(画面)を作る手順について紹介します。

 

New Relicの提供するUIやカスタマイズ可能なダッシュボードはそれ自体がパワフルかつユーザビリティの高いツールであり、お客様がデジタルビジネス環境全体の可観測性を得ることに寄与します。しかしながら、より速さを増す市場の変化にお客様がついていくことを支援するためには、それぞれのお客様のユースケースに合ったデータの活用を可能にする柔軟性の高いプラットフォームが必要になってきます。New Relic Oneの”プログラム可能である”という特徴(Programmability)は、データの価値を最大限に引き出せるカスタムのアプリケーションを作ることを可能にします。

 

以前の投稿でもご紹介しましたが、具体的には、React、GraphQLおよびNew Relic Query Language (NRQL)を使って次のことができます。

  • カスタムしたデータの可視化とインタラクティブなインターフェースが特徴のNew Relic Oneに常駐するReact JSアプリケーションを開発できます。
  • New Relicが提供するReactコンポーネントとサンプルのアプリケーションを利用し、お客様独自のNew Relic Oneアプリケーションのモジュールを作成できます。
  • New Relicが送信したデータであっても、サードパーティーのサービスやデーターベースから取得したデータであっても、あらゆるところから収集したデータを記録し可視化するアプリケーションを開発できます。

 

カスタムアプリケーションを作る方法は、OSSとしてGitHub上で公開されているアプリケーションを使うか、スクラッチから開発するかに大別できますが、今回は前者の方法について紹介します。クラウドのコスト最適化を支援する下記のようなカスタムアプリケーションをお使いのNew Relicに表示するのがゴールです。

 

 

大まかな流れは以下の通りです。

  1. 開発環境の準備 (APIキーの取得、CLIのインストール、ライブラリのインストール)
  2. 公開されているアプリケーションの取り込み
  3. ローカル環境での確認
  4. New Relicへのデプロイ

 

1. 開発環境の準備 (APIキーの取得、CLIのインストール、ライブラリのインストール)

New Relic Oneのトップページより「Build your own application」をクリックします。

「1. Get your API Key」の「Select or create an API」をクリックし、開発環境からNew RelicにアクセスするためのAPIキーを生成します。既に作成したことのある方はそれを選択しても構いません。

 

「2. Install the NR1 CLI」からCLIのインストーラをダウンロードし、ご自身の開発環境にインストールします。以後、アプリケーションの設定やデプロイはこのCLI (nr1)を使って行います。CLIの詳細について知りたい方はこちらへ

 

「4. Save your credentials」に記載のCLIを実行し、前のステップで生成したAPIキーをプロファイルとして登録します。今回の投稿では詳細は説明しませんが、複数のアカウント環境にデプロイしたり、アカウントを切り替えてテストする場合に、ここで作成したアカウントごとのプロファイルをCLI引数として指定します。アカウントが1つの場合はデフォルトのプロファイルとして登録され、CLIとしては省略可能なため登録後は意識することはなくなります。以下のスクリーンショットでは一部のパラメタがプレースホルダになっていますが、APIを選択した後はここに適切な値が入ります。右端にあるアイコンをクリックすればコマンドラインがコピーできます。

 

ご自身の開発環境にNode.jsをインストールします。アプリケーションをNew Relicにデプロイする前にローカル環境でテストする際、Node.jsがアプリケーションをホストするのに利用するためです。Node.jsのインストール方法については、Node.jsのドキュメント等を参照してください。

 

2. 公開されているアプリケーションの取り込み

上で説明した通り、今回はOSSとしてGitHubに公開されているアプリケーションを利用してみます。GitHubには既に魅力的なアプリケーションが多く公開されています。その中で今回はクラウド環境のコスト最適化を支援する「Cloud Optimize」を利用してみます。開発環境で以下のコマンドを実行し、リポジトリをクローンします。

# git clone git@github.com:newrelic/nr1-cloud-optimize.git  (SSH Keyを使う場合)

以下のような感じで展開されました。ディレクトリ構成やデータモデルの詳細については、別の機会にスクラッチから開発する方法と合わせて紹介する予定です。

 

プロジェクトのルードディレクトリで以下コマンドを実行し、アプリケーションに必要なライブラリのインストールをします。

# npm install

 

プロジェクトのルードディレクトリで以下のコマンドを実行します。アプリケーションを一意に識別するIDを付与するもので、公開されているアプリケーションを利用する場合には必須のおまじないになります。

# nr1 nerdpack:uuid -gf

 

3. ローカル環境での確認

早速、取り込んだアプリケーションをご自身の環境で動かしてみましょう。以下のコマンドを実行すると、ローカルのNode.jsでアプリケーションを動作させながらNew Relicの画面で確認することができます。

# nr1 nerdpack:serve

 

アプリケーションが無事に起動したら、ブラウザで以下のURLにアクセスしてみます。クエリパラメタに指定している「nerdpacks=local」はローカルのNode.jsでホストしているアプリケーションを読み込むというおまじないです。

https://one.newrelic.com/?nerdpacks=local

下のスクリーンショットのような感じで、「Cloud Optimize」というアイコンが表示されていれば成功です。

 

クリックするとアプリケーションの画面が表示されます。今回は各アプリケーションのスペックの詳細には触れませんのでGitHubの各ページの説明をご覧ください。New Relic Oneのトップページからだけでなく、アプリケーションによっては特定の情報にドリルダウンした状態からインコンテキストで起動するものもあります。

 

4. New Relicへのデプロイ

手元の環境でうまく動いたことが確認できたので、いよいよNew Relicの実環境へデプロイしてみましょう。プロジェクトのルートディレクトリで以下のコマンドを実行し、New Relicへ公開します。New Relicにアプリケーションを公開しただけで、画面上ではまだ見えません。

# nr1 nerdpack:publish

 

つづいて、以下のコマンドを実行し、デプロイします。-c (または--channel)はデプロイするアプリケーションのステータスを表すもので開発中(DEV)か、ベータ版(BETA)かリリース版(STABLE)かなどを識別すること、およびバージョンの管理をする目的で利用します。デプロイしたアプリケーションは同じチャネルをSubscribeすることで利用できます。

# nr1 nerdpack:deploy -c DEV

 

最後に上でデプロイしたアプリケーションをSubscribe(つまり利用可能な状態に)します。この時、-c (または--channel)はデプロイ時と同じものを指定します。理由は、DEV以外のチャネルにはデプロイしていないためです。

# nr1 nerdpack:subscribe -c DEV

 

今度は、クエリパラメタnerdpacks=localを指定せずに、普段使っている通りにNew Relicにアクセスしてみます。ローカルでホストした時と同様にカスタムアプリケーションが表示されていれば成功です。(なお、subscribeの代わりにunsubscribeを指定するとアプリケーションの利用を止めることができます)

https://one.newrelic.com/

 

データの価値を最大限に活かすために、ユースケースにあったカスタムアプリケーションを使う方法の紹介は以上となります。非常に簡単にアプリケーションが利用できることを実感いただけたかと思います。GitHubにはNew Relicのメンバが顧客からの要望を吸い上げて開発したアプリケーションがありますので試してみてください。

Screenshot #1 Screenshot #1

 

ご参考URL

 

New Relicを試してみたい方はこちらへ。

無料トライアル