Infrastructure 用 Docker 計測

New Relic Infrastructure の Linux エージェントは、計測対象のホスト上で動作する Docker コンテナのメトリクスを自動的に収集します。Docker コンテナの場合、Processes ページには、どのプロセスがコンテナ化されているのか、各 Docker プロセスのコンテナIDが表示されます。
Infrastructure では、Infrastructure でのフィルタリングと Insight のクエリの構築で利用できるように、コンテナに関連付けられた Docker ラベルもキャプチャされます。

Docker 用のインストール

Infrastructure の標準のインストール手順に従って、(Docker コンテナの内部にはなく) 親ホストにInfrastructure エージェントをインストールします。Docker のメトリクスを収集するための、追加の設定は必要ありません。

コンテナ名、ラベル、イメージ ID などの Docker コンテナの情報をレポートする機能は、Docker デーモンによって異なります。Docker デーモンなしで docker-containerd-shim を使ってコンテナを実行すると、データのグループ化に使うメトリックを収集するエージェントの機能が損なわれます。

Infrastructure で Docker のメトリクスを表示

screen-docker-processes-page.png
https://infrastructure.newrelic.com > Processes:
Docker のメトリクスを表示するには、ページ内のフィルタリングツールとグループ化ツールを使用します。

Processes ページでは、Docker プロセスが実行中の他のプロセスとともに表示されます。 Dockerプロセスを識別する方法は以下の通りです。

  • Image 列にイメージIDが表示されているイメージを探します。
  • ページをフィルタリングして、特定の Docker コンテナのみを表示します。
Docker プロセスのみ表示
Docker コンテナ全てを表示するには、ページないのフィルターに、contained と入力して、ドロップダウンで、true を選択します。Processes ページには、コンテナ化されたプロセスのみが表示されます。
Docker イメージの各インスタンスを表示
環境内の Docker コンテナのすべてのコピーを表示するには、Image 列のイメージIDをクリックします。Processes ページには、その一意のイメージIDを共有するプロセスのみが表示されます。
Docker イメージごとのリソース使用量を表示
(より高い CPU 負荷を生成するイメージを識別するなど) Docker イメージでグループ化された結果を表示するには、Group By フィールドから containerImageName を選択します。
Docker ラベルに関連したコンテナを表示
特定の Docker ラベルを持つ Docker コンテナのみを表示するには、ページないのフィルターに containerLabel_ と入力し、ドロップダウンリストからラベルを選択します。たとえば、containerLabel_maintainercontainerLabel_build_date です。

Insights で Docker のメトリクスを表示

Insight 内で Docker 用メトリクスを表示するには、ProcessSample イベントで以下の属性を問い合せます。

たとえば、各 Docker イメージに関連付けられているコンテナの数を確認するには、以下のようにします。

SELECT uniqueCount(containerId) FROM ProcessSample FACET containerImageName SINCE 1 HOUR AGO TIMESERIES