• ログイン無料アカウント

Prometheusリモート書込みインテグレーションのセットアップ

いくつかの簡単のステップで、New RelicでPrometheusデータフローを取得できます。統合すると、データはクエリベースのダッシュボード(およびその他のクエリ結果)に表示され、多くの場合、約5分以内に表示されます。このページでは、リモート書込みインテグレーションの基本的な設定や、いくつかの一般的なトラブルシューティングのトピックを取り上げます。高可用性(HA)設定でのPrometheusサーバーのインテグレーションに関する情報は、Prometheusの高可用性ドキュメントをご覧ください。

インテグレーションの設定

New Relic OneのPrometheusリモート書込みセットアップランチャーに移動してから、これらの手順を実行してPrometheusデータを追加します。

Prometheusデータを追加する
  1. 接続するPrometheusサーバーの名前とremote_write URLを入力します。重要:サーバーに対して入力する名前で、データに属性が作成されます。これは、New Relicにデータを送信しているPrometheusサーバーを識別する名前にもなります。

  2. 新たなremote_write URLを、Prometheus YMLファイルに追加します。globalセクションと同じインデントにあるファイル内のglobal_configにこの情報を追加します。

    以下の構文を使用します。

    Prometheus v2.26以降

    remote_write: 
    - url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAME  
      authorization:
        credentials: YOUR_LICENSE_KEY

    Prometheus v2.26以前

    remote_write: 
    - url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAME  
      bearer_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/write

    KubernetesとHelmのリモート書き込みインテグレーション:リモート書き込みURLをHelm values.yamlファイルに追加します。remoteWrite: []を以下の例のような2行で置き換えます。リモート書き込みURLを使用し、残りのファイルに一致するインデントを使用してください。

    remoteWrite: 
    - url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=YOUR_DATA_SOURCE_NAME 
      bearer_token:YOUR_LICENSE_KEY
  3. Prometheusサーバーを再起動します。

  4. 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によって受信されると無効になります。

例: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またはdenywrite_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ファイルから設定コードスニペットを削除してから、サーバーを再起動します。

Copyright © 2022 New Relic Inc.