Kubernetes でPrometheus OpenMetrics 統合nri-prometheus
を使用している場合、同じモニタリング エクスペリエンスを実現するには、 New Relic の Prometheus エージェントnewrelic-prometheus-agent
に移行する必要があります。New Relic の Prometheus エージェントのセットアップ方法を参照してください。
newrelic-prometheus-agent
はにはエージェント モードでPrometheus server
を実行しているため、構成ファイルの構造が変更され、柔軟性が向上し、 サーバーのスクレイプ関連機能を使用できるようになりました。 構成設定の再ラベル付けまたは Prometheus インスタンスのスケーリング .
簡素化された構成ファイルを Prometheus サーバー構成ファイルに変換して、より簡単な構成エクスペリエンスを提供します。この移行ガイドをよりよく理解できるように、ドキュメントを読むことをお勧めします。
移行を実行するには、このドキュメントの値を使用してvalues.yml
ファイルの構成セクションを調整してください。
ダッシュボードとアラート
メトリクスは、Prometheus OpenMetrics 統合 nri-prometheus
を使用して送信されたのと同じ方法で送信されます。場合によっては、Prometheus OpenMetrics 統合 nri-prometheus
と Prometheus エージェント newrelic-prometheus-agent
の間で変更された一部のメタデータを変更する必要がある場合があります。
ヒント
名前が変更されたメタデータ
次の表は、Prometheus OpenMetrics 統合nri-prometheus
と Prometheus エージェントnewrelic-prometheus-agent
の間で名前が変更されたメタデータを示しています。
|
|
---|---|
|
|
|
|
|
|
|
|
| 該当なし |
|
|
|
|
|
|
以前の nri-prometheus
メタデータ属性名を移行後も維持したい場合は、 newrelic-prometheus-agent
values.yaml ファイルで次のリモート書き込み再ラベル設定を有効にできます。これにより、これらの属性を対象とするダッシュボードとアラートが正常に機能し続けることが保証されます。
newrelic_remote_write: extra_write_relabel_configs: # Enable the extra_write_relabel_configs below for backwards compatibility with legacy POMI labels. # This helpful when migrating from POMI to ensure that Prometheus metrics will contain both labels (e.g. cluster_name and clusterName). - source_labels: [namespace] action: replace target_label: namespaceName - source_labels: [node] action: replace target_label: nodeName - source_labels: [pod] action: replace target_label: podName - source_labels: [service] action: replace target_label: serviceName - source_labels: [cluster_name] action: replace target_label: clusterName - source_labels: [job] action: replace target_label: scrapedTargetKind - source_labels: [instance] action: replace target_label: scrapedTargetInstance
重要
Prometheus DataModelに準拠するために、Kubernetes ラベル名 ( label.kubernetesLabel
) はスクレイピング後にサニタイズされ、サポートされていない文字は_
に置き換えられます。たとえば、Kubernetes ラベルk8s.io/app
はk8s_io_app
として追加されます。label.
プレフィックスは削除されました。ラベルの値は変更されません。
削除されたメタデータ
次のメタデータは、Prometheus エージェントnewrelic-prometheus-agent
では使用できません:
deploymentName
integrationName
integrationVersion
nrMetricType
promMetricType
targetName
scrapedTargetName
Kubernetes ターゲットの検出
Jobs
を追加して、ターゲット検出構成を改善しました。Kubernetes ターゲット検出の構成方法を参照してください。
Prometheus OpenMetrics と Prometheus エージェントの間でデフォルトの動作が変更されました。 デフォルトでは、Prometheus OpenMetrics はラベルまたはアノテーションとしてprometheus.io/scrape=true
を含むポッドとサービスをスクレイピングしますが、Prometheus エージェントはすべてのターゲットannotatedをnewrelic.io/scrape: "true"
でスクレイピングします。 prometheus.io/scrape=true
のアノテーションが付けられたポッドとサービスは、デフォルトで次の場合にのみスクレイピングされます。これは、サポートされている New Relic の prometheus 統合の 1 つに対応しています。 詳細については、scrape config ドキュメントを確認してください。
New Relic の kubernetes 統合によって通常使用されるため、ノード メトリックは、Prometheus エージェントでデフォルトでスクレイピングされなくなりました。これは、メトリックの重複を引き起こす可能性があるためです。
メトリックのタイプ
カスタム ソリューションとしての Prometheus OpenMetrics nri-prometheus
は、Prometheus メトリクスを New Relic メトリクスに変換してから、スクレイピングされたデータから読み取ったメトリクス メタデータ タイプに従ってマッピングを適用します: # TYPE <metric_type>
。
標準の Prometheus サーバーを利用する Prometheus エージェントnewrelic-prometheus-agent
では、メトリックは New Relic のリモート書き込みエンドポイントに直接送信され、メトリック名に基づいてこの変換が処理されます。一部のメトリックは、リモート書き込みエンドポイントによって適切に変換されない場合があります。
- 名前接尾辞
total
、count
、sum
、またはbucket
のない Prometheus Counter メトリクスは、 Gaugeとして変換されます。 - 名前接尾辞
total
、count
、sum
、またはbucket
を持つ Prometheus ゲージ メトリクスは、 Counterとして変換されます。
これを修正するには、メトリック タイプ マッピングの再ラベル オプションを設定し、詳細についてメトリックとラベルの変換を確認します。
変換
Prometheus OpenMetrics のnri-prometheus
変換は、Prometheus の再ラベル設定に置き換えられました。再ラベル設定のセットアップ例のリストを参照してください。
自己計装
Prometheus OpenMetrics ( nri-prometheus
) と同様に、Prometheus エージェント ( newrelic-prometheus-agent
) は内部メトリックを自己スクレイピングします。これらのメトリックにはprometheus_
プレフィックスがあり、それらを使用して Prometheus インスタンスのステータスを観察できます。デフォルトでは、これらのメトリックの縮小されたセットのみが送信されます。job_name: self-metrics
を検索すると、チャートのdefault values.yaml ファイルでメトリックのリストを見つけることができます。
また、パフォーマンスとヘルス情報を含むセルフ メトリクスの精選されたダッシュボードと、送信されたメトリクス ボリュームも提供します。Prometheus エージェントのダッシュボードを含むクイックスタートを New Relic アカウントにインストールします。
移行中に Prometheus OpenMetrics の統合を維持する
New Relic は、お客様にスムーズでシームレスな移行を保証したいと考えています。Prometheus OpenMetrics 統合nri-prometheus
、Prometheus エージェントnewrelic-prometheus-agent
、またはその両方を保持できます。
現在 Prometheus エージェントを使用せずに nri-prometheus を保持するには、 values.yaml
ファイルを次のように設定します。
nri-metadata-injection: enabled: true
nri-prometheus: enabled: true
newrelic-prometheus-agent: enabled: false
このドキュメントで説明されている手順に従って、Helm を使用して Kubernetes クラスターをアップグレードします。