Prometheus OpenMetricsやNew Relicとのリモートライト統合で収集したメトリクスをクエリして可視化するには、 NRQL を使用することができます。また、 PromQL スタイルのクエリを NRQL に変換するには、Grafana または クエリビルダ を使用します。
Docker と Kubernetes のすべての指標は、 Metric
タイプに保存されます。
OpenMetricsインテグレーションのデフォルト属性 デフォルトでは、DockerとKubernetesの統合のためのすべてのメトリクスに以下の属性が追加されます。
デフォルトの属性
(すべての統合機能)
説明
clusterName
スクレーパーの構成で提供されたクラスターの名前。
integrationName
この統合の名前 ( nri-prometheus
)。
integrationVersion
統合のバージョン。たとえば、 0.2.0
です。
metricName
メトリック自体の名前です。
nrMetricType
New Relic Metric
タイプのタイプ。たとえば、 Gauges
です。
promMetricType
Prometheusのメトリックのタイプ
scrapedEndpoint
スクレイピングされるエンドポイントのURLです。
Kubernetes: スクレーパーがKubernetesで実行されている場合、NewRelicはすべてのメトリックに次の属性も追加します。
Kubernetesの追加属性
説明
deploymentName
ポッドをスクレイピングする場合のデプロイメントの名前。
label
スクレイピングされるオブジェクトの Kubernetes ラベル。先頭に"label"
が付きます。
namespaceName
ネームスペースの名前。
nodeName
スクレイピングされるポッドが実行されているノードの名前(該当する場合)。
podName
スクラップされるポッドの名前(該当する場合)。
serviceName
スクラップされるサービスの名称(該当する場合
リモート・ライト・インテグレーションのデフォルト属性 デフォルトでは、以下の属性がPrometheusのリモートライトメトリクスに追加されます。
デフォルトの属性
(すべての統合機能)
説明
prometheus_server
Prometheusのリモート書き込みURLパラメータとして指定されたユーザー提供のラベル。問い合わせ時にPrometheusのソースサーバーを区別するため、提供される値は一意でなければなりません。デフォルトでは指定されていません。
newrelic.source
New Relic 取り込みポイントの名前 ( prometheusAPI
)。
instrumentation.provider
prometheus
instrumentation.name
remote-write
instrumentation.source
prometheus_server
の値と一致する Prometheus データのソースのユーザー指定の識別子。
instrumentation.version
リモート書き込み API のバージョンを識別するために使用されます。例えば、 0.0.1.
NRQL クエリの例 ビルド・クエリ の場合、メトリクス、エンティティ、および属性の間にはリンクがないことに注意してください。以下の NRQL クエリを使用して、どのメトリクスが利用可能で、どの属性がこれらのメトリクスに存在するかを調べます。
メトリック名の取得 OpenMetricsのすべてのメトリック名を取得するには
FROM Metric SELECT uniques(metricName)
リモートライト統合のメトリック名を取得するには
FROM Metric SELECT uniques(metricName) WHERE instrumentation.provider='prometheus' AND instrumentation.name='remote-write'
単一のPrometheusソースからリモート書き込み統合のメトリック名を取得するには、次のようにします。
FROM Metric SELECT uniques(metricName) WHERE instrumentation.provider='prometheus' AND instrumentation.name='remote-write' AND instrumentation.source='<ds>'
特定のOpenMetricsエンドポイントのメトリック名を取得するには
FROM Metric SELECT uniques(metricName) WHERE scrapedEndpoint='<ep>'
特定のOpenMetricsクラスタ、ネームスペース、またはポッドのメトリック名を取得するには。
FROM Metric SELECT uniques(metricName) WHERE clusterName='<cn>'
FROM Metric SELECT uniques(metricName) WHERE namespaceName='<ns>'
FROM Metric SELECT uniques(metricName) WHERE podName='<pod>'
メトリックの属性を取得する 選択したメトリックのすべてのアトリビュートを取得するには
FROM Metric SELECT keyset() WHERE metricName='<mn>'
OpenMetricsにおける属性の値の取得 オートコンプリートでは、ポッドに関係なく、属性のすべての値が表示されます。特定のポッドの属性値を確定するには
FROM Metric SELECT uniques(<attribute>) WHERE metricName='<mn>' AND podName='<pod>'
クエリの作成 メトリック名と属性 を使って、データを照会することができます。ファセット、時系列、および時間選択の詳細については、 NRQL ドキュメント を参照してください。
PromQL スタイルのクエリを作成するには、サポートされている PromQL 機能 に関するドキュメントを参照してください。
メトリック値の取得 生のメトリック値を得るために
FROM Metric SELECT <metricName> WHERE <attribute>='<value>'
メートル法のチャートを取得する average
、 min
、 max
、またはsum
のアグリゲーターを使用してメトリックのグラフを取得するには:
FROM Metric SELECT <aggregator>(<metricname>) WHERE <attribute>='<value>' TIMESERIES
クエリカウンタのメトリクス(デルタ)について 現在、統合機能では、カウンターメトリクスのデルタを計算しています。このため、カウンタメトリクスのクエリでは、カウンタの絶対値ではなく、カウンタのデルタが表示されます。
OpenMetricsでポッドごとに接続されたRedisクライアントを表示 Docker:
この例では、Redisエクスポーターをスクレイピングしていることを前提としています。クラスター内のエンドポイントごとに接続されているRedisクライアントの数を表示するには:
FROM Metric SELECT latest(redis_connected_clients) WHERE clusterName='my-cluster' FACET scrapedEndpoint TIMESERIES
Kubernetes:
この例では、RedisエクスポーターがインストールされたRedisポッドがあることを前提としています。デフォルトの名前空間でポッドごとに接続されているRedisクライアントの数を表示するには:
FROM Metric SELECT latest(redis_connected_clients) WHERE namespaceName='default' FACET podName TIMESERIES
ドッカー。スクレイピングされたエンドポイントの平均メモリ使用量を表示この例では、Dockerのノード・エクスポーターをスクレイピングしており、OpenMetricsを使用することを想定しています。クラスタ内のすべてのスクレイピングされたエンドポイントの平均メモリ空き容量を表示するには、次のようにします。
FROM Metric SELECT average(node_memory_MemFree_bytes) WHERE clusterName='my-cluster'
Kubernetesを使用しています。デプロイメント内のポッドの平均メモリ使用量を表示するOpenMetricsを使用して、Kubernetesデプロイメント内のすべてのポッドの平均メモリ使用量を表示するには、次のようにします。
FROM Metric SELECT average(container_memory_usage_bytes) WHERE deploymentName='my-app-deployment' AND namespaceName='default'
New Relicでデータを見る データを照会すると、その結果を New Relic の UI で見ることができます。また、データをチャートやヒストグラムなどで視覚化することもできます。
Prometheus 統合のデータの NRQL クエリ結果を表示するには: one.newrelic.com > Query your data に移動します。詳細については、クエリ ビルダーのドキュメント を参照してください。
ヒストグラムの作成とパーセンタイルの計算 Prometheus リモート書き込みまたはバージョン2.0.0 以降の Prometheus OpenMetrics Integration (POMI) を使用して、ヒストグラムを生成し、データからパーセンタイルを計算できます。Prometheus ヒストグラムの場合、バケット<basename>_bucket{le="42"}
がメトリック<basename>_bucket
として送信され、ディメンションは{histogram.bucket.le="42"}
になります。
NRQL には、リモート書き込みまたは Prometheus OpenMetrics Integration (バージョン2.0.0 以降) を介して取り込まれた Prometheus ヒストグラムで機能する 2 つの関数があります。bucketPercentile()
、およびhistogram()
。リンクにはクエリの例が含まれています。