コレクターでホストレシーバーを設定すると、OpenTelemetryを使用してインフラストラクチャホストに関するメトリックを収集できます。コレクターは、テレメトリデータを収集し、処理して、New Relic(または任意の可観測性バックエンド)にエクスポートするOpenTelemetryのコンポーネントです。
他のコレクターのユースケースに関するヘルプを探している場合は、 newrelic-opentelemetry-examplesリポジトリを参照してください。
ステップ1:前提条件
先に進む前に、以下を完了していることを確認してください。
まだ行っていない場合は、無料のNewRelicアカウントにサインアップしてください。
を入手
データをレポートする先の New Relic アカウント用。
手順2:OpenTelemetryコレクターをインストールする
クラウドまたはオンプレミスの単一ホストの基本的なインストールを行うには、コミュニティからの最新のインストール手順に関するOpenTelemetryの手順を参照してください。手順は次のとおりです。
- Linux:Debianシステム
- Linux:Red Hat
- ウィンドウズ
- Docker、Kubernetes、およびその他のオプション
展開エクスペリエンスは、使用するベンダー固有のディストリビューションによって異なる場合があります。たとえば、パッケージマネージャーを介したインストールがLinuxホストで利用できる場合があります。
重要
インフラストラクチャの監視を設定するには、 collector-contrib
リリースに含まれているコンポーネントをインストールして構成する必要があります。たとえば、ホストレシーバーは、CPU、メモリ、ディスク、ネットワーク統計などの基本的なホストメトリックを収集する必要があり、 OpenTelemetryコレクターコントリビュートリリースでのみ使用できます。
手順3:ホストレシーバーを使用してホスト監視を構成する
このコレクターの例は、構成を実稼働環境で使用する前に、構成を拡張、カスタマイズ、および検証するための開始点として機能することを目的としています。
collector-contrib
リリースは、さまざまなソースから取得されたシステムに関するメトリックを生成するhostreceiver
を提供します。 hostreceiver
を使用する場合は、コレクターをエージェントとしてデプロイします。
コレクター構成の一部としてホストレシーバーを使用する場合、New RelicはHost
エンティティの一部としてホストメトリックを自動的に検出し、そのゴールデンメトリックを合成して、NewRelicインフラストラクチャエージェントと同じエクスペリエンスを提供します。 NewRelicUIでHost
エンティティエクスペリエンスを有効にするための構成要件は次のとおりです。
host.id
属性はホストメトリックに存在します。service.name
およびcontainer.id
属性はホストメトリックに存在しません。
利用可能なメトリックと高度な構成の詳細については、GitHubのOpenTelemetryドキュメントをご覧ください。
次の推奨パラメータを使用してconfig.yaml
を調整します。
重要
CPU、負荷、メモリ、およびディスク使用率のメトリックには、otelcol-contribリリースv0.47.0
以降が必要です。
構成 | 説明 |
---|---|
| ホストメトリックを有効にします。
|
| 次の点に注意してください。
|
| バッチプロセッサは、スパン、メトリック、またはログを受け入れ、それらをバッチに配置します。バッチ処理は、データをより適切に圧縮し、データの送信に必要な発信接続の数を減らすのに役立ちます。このプロセッサは、サイズベースと時間ベースの両方のバッチ処理をサポートします。 |
| メモリリミッタプロセッサは、コレクタのメモリ不足の状況を防ぐために使用されます。 チェックを実施することは重要です。理由は次のとおりです。
|
| 累積デルタプロセッサは、累積合計メトリックを累積デルタに変換します。これにより、NewRelicでシステムメトリックレートをより簡単に照会できます。 |
|
|
構成YAMLファイルのサンプルを次に示します。必ず次のことを行ってください。
OTLP_ENDPOINT_HERE を適切な endpointに置き換えます。
YOUR_KEY_HERE をあなたの
extensions: health_check:
receivers: hostmetrics: collection_interval: 20s scrapers: cpu: metrics: system.cpu.utilization: enabled: true load: memory: metrics: system.memory.utilization: enabled: true disk: filesystem: metrics: system.filesystem.utilization: enabled: true network: paging: metrics: system.paging.utilization: enabled: true processes: process:
processors: memory_limiter: check_interval: 1s limit_mib: 1000 spike_limit_mib: 200 batch: cumulativetodelta: include: metrics: - system.network.io - system.disk.operations - system.network.dropped - system.network.packets - process.cpu.time match_type: strict resource: attributes: - key: host.id from_attribute: host.name action: upsert resourcedetection: detectors: [env, system]
exporters: otlp: endpoint: OTLP_ENDPOINT_HERE headers: api-key: YOUR_KEY_HERE
service: pipelines: metrics: receivers: [hostmetrics] processors: [batch, resourcedetection, resource, cumulativetodelta] exporters: [otlp]
extensions: [health_check]
ステップ4:データを表示する
New Relic UIのさまざまな場所で、コレクターデータを表示できます。
インフラストラクチャUIでホストデータを参照する
ホストレシーバーの推奨構成を使用することで、インフラストラクチャUI (新しいホストUI)エクスペリエンスの標準機能を介してデータを表示できます。
ホストメトリックのクエリ
メトリクスが New Relic に正常に取り込まれると、メトリクスとイベント、およびクエリ ビルダーで使用できるようになります。
次のNRQLクエリは、受け取ったメトリックを調査するのに役立つ例を示しています。
メトリック名によって取り込まれたメトリック更新のリスト数
SELECT count(*) FROM Metric WHERE metricName LIKE 'system.%' FACET metricName LIMIT maxホストが直面する特定のメトリックのクエリ
SELECT average(system.disk.operations) FROM Metric FACET host.name TIMESERIES特定の指標で利用可能なディメンションの一覧表示
SELECT keyset() FROM Metric WHERE metricName = 'system.disk.operations'
メトリックデータ型のクエリの詳細をご覧ください。
次は何ですか?
コレクターを設定したら、OpenTelemetryとNewRelicの使用を改善するためのヒントについてベストプラクティスガイドを確認してください。