• ログイン

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

New Relic Metrics Adapter

ベータ機能

この機能はまだ開発中ですが、ぜひ試してみてください。

New Relic Metrics Adapter をデプロイすることで、New Relic アカウントからのメトリクスを使用して、Kubernetes クラスタ内のアプリケーションやサービスをオートスケールすることができます。このアダプターは、New Relic からメトリック値をフェッチし、 Horizontal Pod Autoscalers で利用できるようにします。

newrelic-k8s-metrics-adapterexternal.metrics.k8s.io APIを実装して、NewRelicNRQLクエリの結果に基づく外部メトリックの使用をサポートします。デプロイされると、構成された各メトリックの値は、構成されたNRQLクエリに基づいてNerdGraphAPIを使用してフェッチされます。

メトリクス・アダプタは、TLSによるセキュアなエンドポイントを介してメトリクスを公開します。

クラスター内のNew Relicメトリクスアダプター。

要件

インストレーション

New Relic Metrics Adapterをインストールするには、 newrelic-k8s-metrics-adapter Helmチャートを提供します。これは、すべてのNewRelicKubernetesコンポーネントのデプロイに使用されるnri-bundleチャートにも含まれています。

  1. まだインストールされていない場合は、 私たちのKubernetesインテグレーションをインストールしてください
  2. 以下のコマンドでNew Relic Metrics Adapterを含むインストールにアップグレードします。
helm upgrade --install newrelic newrelic/nri-bundle \
--namespace newrelic --create-namespace --reuse-values \
--set metrics-adapter.enabled=true \
--set newrelic-k8s-metrics-adapter.personalAPIKey=YOUR_NEW_RELIC_PERSONAL_API_KEY \
--set newrelic-k8s-metrics-adapter.config.accountID=YOUR_NEW_RELIC_ACCOUNT_ID \
--set newrelic-k8s-metrics-adapter.config.externalMetrics.external_metric_name.query=NRQL query

以下のフラグに注意して調整してください。

  • metrics-adapter.enabled:メトリックアダプタチャートをインストールするには、 trueに設定する必要があります。

  • newrelic-k8s-metrics-adapter.personalAPIKey:有効なNew RelicPersonalAPIキーに設定する必要があります。

  • newrelic-k8s-metrics-adapter.config.accountID:メトリックがフェッチされる有効なNewRelicアカウントに設定する必要があります。

  • newrelic-k8s-metrics-adapter.config.externalMetrics.<var>external_metric_name</var>.<var>query</var>:新しい外部メトリックを追加します。ここで:

    • <var>external_metric_name</var>:メトリック名。
    • <var>query</var>:メトリックの値を取得するために使用されるベースNRQLクエリ。

ヒント

または、 --valuesフラグを指定してhelmコマンドに渡すことができるvalues.yamlファイルを使用することもできます。値ファイルには、構成セクションで説明されているメトリックを構成するために必要なすべてのパラメーターを含めることができます。

構成

メトリクスアダプターで複数のメトリクスを構成し、いくつかのパラメーターを変更して、メトリクスのキャッシュとフィルタリングの動作を変更できます。変更可能なすべてのパラメーターの完全なリストと説明を確認するには、チャートのREADME.mdファイルとvalues.yamlファイルを参照してください。

使い方

次の例は、 nri-bundleチャートのインストールでメトリクスアダプターを有効にし、 nginx_average_requestsメトリクスを構成するHelm値ファイルです。

metrics-adapter:
enabled: true
newrelic-k8s-metrics-adapter:
personalAPIKey: <Personal API Key>
config:
accountID: <Account ID>
externalMetrics:
nginx_average_requests:
query: "FROM Metric SELECT average(nginx.server.net.requestsPerSecond) SINCE 2 MINUTES AGO"

注意

メトリックのデフォルトの期間は1時間です。したがって、環境とニーズに応じて期間を調整するには、 SINCE句を使用してクエリを定義する必要があります。

次のような外部メトリックを消費するHPAがあります。

kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v2beta2
metadata:
name: nginx-scaler
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nginx
minReplicas: 1
maxReplicas: 10
metrics:
- type: External
external:
metric:
name: nginx_average_requests
selector:
matchLabels:
k8s.namespaceName: nginx
target:
type: Value
value: 10000

HPAの定義に基づいて、コントローラ・マネージャは外部のメトリクスAPIからメトリクスをフェッチし、New Relicメトリクス・アダプタによって提供されます。

New Relicメトリクスアダプターは、 nginx_average_requestsメトリクス名とすべてのセレクターを含むクエリを受信し、構成されたメトリクスに基づいて内部メモリで一致するメトリクス名を検索します。次に、セレクターをクエリに追加して、NerdGraphを使用して実行される最終的なクエリを作成し、NewRelicから値をフェッチします。上記の例では、次のようなクエリが生成されます。

FROM Metric SELECT average(nginx.server.net.requestsPerSecond) WHERE clusterName=<clusterName> AND `k8s.namespaceName`='nginx' SINCE 2 MINUTES AGO

同じアカウント内の他のクラスターからメトリックを除外するために、 clusterNameフィルターがクエリに自動的に追加されていることに注意してください。 removeClusterFilter構成パラメーターを使用して削除できます。また、値はcacheTTLSeconds構成パラメーターで定義された期間キャッシュされます。デフォルトは30秒です。

トラブルシューティング

Copyright © 2022 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.