いくつかの簡単のステップで、New RelicでPrometheusデータフローを取得できます。統合すると、データはクエリベースのダッシュボード(およびその他のクエリ結果)に表示され、多くの場合、約5分以内に表示されます。このページでは、リモート書込みインテグレーションの基本的な設定や、いくつかの一般的なトラブルシューティングのトピックを取り上げます。高可用性(HA)設定でのPrometheusサーバーのインテグレーションに関する情報は、Prometheusの高可用性ドキュメントをご覧ください。
(オプション)Prometheusオペレーターの設定
Prometheusオペレーターを使用している場合は、データをレポートするアカウントのNew Relicでシークレットを作成する必要があります。APIキーがタイプIngest - License
であることを確認します。
$kubectl -n YOUR_PROM_NAMESPACE create secret generic nr-license-key --from-literal=value=YOUR_LICENSE_KEY
次に、Helmチャートの対応するフィールドのPrometheus CRD(kind:Prometheus
)に以下を追加します。
prometheus: prometheusSpec: remoteWrite: - url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_CLUSTER_NAME authorization: credentials: key: value name: nr-license-key
インテグレーションの設定
UIのPrometheusリモート書込みセットアップランチャーに移動してから、これらの手順を実行してPrometheusデータを追加します。
接続するPrometheusサーバーの名前と
remote_write
URLを入力します。重要
サーバーに対して入力する名前で、データに属性が作成されます。これは、New Relicにデータを送信しているPrometheusサーバーを識別する名前にもなります。
新たな
remote_write
URLを、Prometheus YMLファイルに追加します。global
セクションと同じインデントにあるファイル内のglobal_config
にこの情報を追加します。以下の構文を使用します。
Prometheusバージョン2.26以降
remote_write:- url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAMEauthorization:credentials: YOUR_LICENSE_KEYPrometheusバージョン2.26未満
remote_write:- url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAMEbearer_token:YOUR_LICENSE_KEYまたは
任意のバージョンのPrometheus
remote_write:- url: https://metric-api.newrelic.com/prometheus/v1/write?X-License-Key=YOUR_LICENSE_KEY&prometheus_server=YOUR_DATA_SOURCE_NAMEこのアプローチでは、URLで認証情報を渡します。他のアプローチがお客様の環境で機能しない場合を除いて、この方法を使用することはお勧めしません。
欧州連合のアカウント:EUから接続している場合は、以下のURLを使用してください。
https://metric-api.eu.newrelic.com/prometheus/v1/writeKubernetesとHelmのリモート書き込みインテグレーション:リモート書き込みURLをHelm
values.yaml
ファイルに追加します。remoteWrite: []
を以下の例のような2行で置き換えます。必ずリモート書き込みURLを使用し、残りのファイルと一致するインデントを使用してください。remoteWrite:- url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAMEbearer_token:YOUR_LICENSE_KEYPrometheusサーバーを再起動します。
New Relic UIでデータを表示するたとえば、インテグレーションをセットアップするときに自動的に作成されるリモート書き込みダッシュボードを使用します。
このドキュメントはインストールの役に立ちましたか?
PrometheusおよびNew Relicメトリックタイプのマッピング
Prometheusリモート書き込みプロトコルには、New Relicにメトリクスを送信するときに、メトリクスタイプの情報や、その他の有用なメトリクスメタデータが含まれていないため、Prometheusの命名規則に基づいてメトリクスタイプを推測します。これらの命名規則に従わないメトリクスは、正しくマッピングされない場合があります。
当社は、以下に示すPrometheusメトリクスの命名規則に基づき、PrometheusメトリクスタイプをNew Relicメトリクスタイプにマッピングします。
metricName_bucket
はNew Relicカウントメトリックタイプとして保存されます。metricName_count
はNew Relicカウントメトリックタイプとして保存されます。metricName_total
はNew Relicカウントメトリックタイプとして保存されます。metricName_sum
はNew Relic概要メトリックタイプとして保存されます。
それ以外はすべて、New Relicゲージメトリクスタイプとして保存されます。
メトリクスタイプマッピングを上書きする
Prometheus命名規則に従っていないメトリクスがある場合、メトリックタイプを示すnewrelic_metric_type
ラベル付きのメトリクスでリモート書き込みをタグに設定できます。このラベルは、New Relicによって受信されると無効になります。
Example: my_counter
という名前のカウンターメトリックがあります。これには、_bucket
、 _count
または_total
という当社の命名規則のサフィックスがありません。この状況では、メトリクスはカウンターではなくゲージとして識別されます。これを修正するには、以下の再ラベル設定をprometheus.yml
に追加します。
- url: https://metric-api.newrelic.com/prometheus/v1/write?X-License-Key=... write_relabel_configs: - source_labels: [__name__] regex: ^my_counter$ target_label: newrelic_metric_type replacement: "counter" action: replace
このルールはmy_counter
という名前のメトリックに一致し、そのメトリックをカウンターとして識別するnewrelic_metric_type
ラベルを追加します。以下の(大文字と小文字が区別されます)値を置換値として使用できます。
- counter
- ゲージ
- 概要
newrelic_metric_type
ラベルが受け取ったメトリック上にあり、有効な値の1つに設定されている場合、New Relicは、データパイプライン内のダウンストリーム消費前に、示されたタイプをメトリックに割り当てます(また、ラベルを無効化します)。上記の命名規則に従わない複数のメトリクスがある場合、複数の規則を追加でき、各規則はさまざまなソースラベルに一致します。
送信済みメトリクスの許可リストまたは拒否リストの設定
New Relicに送信するデータをより細かく制御する必要がある場合は、メトリクスのサブセットを送信できます。これを行うには、サブパラメーターaction
の値がkeep
またはdeny
のwrite_relabel_configs
パラメーターでremote-write
を設定します。
この例では、正規表現に一致するメトリクスのみを送信します。一致しないメトリクスは送信されません。または、action: drop
を使用して、正規表現に一致するすべてのメトリクスを削除することもできます。
- url: https://metric-api.newrelic.com/prometheus/v1/write?X-License-Key=... write_relabel_configs: - source_labels: [__name__] regex: "coredns_(.*)|etcd_(.*)" action: keep
このKubernetesの例は、このHelmチャートのvalues.yaml
ファイルを使用します。別のHelmチャートを使用している場合は、そのremoteWrite
ドキュメントを確認してください(たとえば、一部のHelmファイルでは代わりにwriteRelabelConfigs
を使用します)。
remoteWrite: - url: https://metric-api.newrelic.com/prometheus/v1/write?X-License-Key=... write_relabel_configs: - source_labels: [__name__] regex: "coredns_(.*)|etcd_(.*)" action: keep
リモート書込みの動作をカスタマイズする
New Relicで複数のアカウントに書き込みを行っている場合、または複数のPrometheusデータソースをNew Relicの同じアカウントに接続している場合、以下のパラメーターをカスタマイズできます。詳細については、リモート書き込みチューニングに関するドキュメントを参照してください。
エラーメッセージのトラブルシューティング
New Relicからインテグレーションのエラーメッセージを受信、またはPrometheusサーバーを再起動後にPrometheusサーバーログでエラーメッセージを受信する場合は、リモート書き込みのトラブルシューティングドキュメントを確認してください。これには、欠落した文字や不正な文字、不正なリクエスト、長すぎるリクエストエンティティ、レート制限エラーなど、一般的なエラーの修正方法が含まれています。
インテグレーションを削除する
Prometheusリモート書き込みインテグレーションを削除すると、新規データのフローを停止しますが、過去データのパージや削除はされません。インテグレーションを削除するには、Prometheus YMLファイルから設定コードスニペットを削除してから、サーバーを再起動します。