Prometheus OpenMetricsやNew Relicとのリモートライト統合で収集したメトリクスをクエリして可視化するには、 NRQL を使用することができます。また、 PromQL スタイルのクエリを NRQL に変換するには、Grafana または クエリビルダ を使用します。
DockerとKubernetesのすべてのメトリクスは、 Metric
タイプに保存されます。
OpenMetricsインテグレーションのデフォルト属性 デフォルトでは、DockerとKubernetesの統合のためのすべてのメトリクスに以下の属性が追加されます。
デフォルトの属性
(すべての統合機能)
説明
clusterName
スクレーパーの構成で提供されたクラスターの名前。
インテグレーションネーム
この統合の名前は(nri-prometheus
)です。
統合バージョン
統合のバージョン。例えば、 0.2.0
.
metricName
メトリック自体の名前です。
nrMetricType
New Relic のタイプ Metric
タイプ。例えば、 Gauges
.
promMetricType
Prometheusのメトリックのタイプ
スクラップドエンドポイント
スクレイピングされるエンドポイントのURLです。
Kubernetes: スクレーパーがKubernetesで実行されている場合、NewRelicはすべてのメトリックに次の属性も追加します。
Kubernetesの追加属性
説明
デプロイメント名
ポッドをスクレイピングする場合のデプロイメントの名前。
ラベル
スクレイピングされるオブジェクトのKubernetesのラベルで、先頭に " ラベル"
が付いています。
名前空間名
ネームスペースの名前。
ノード名
スクレイピングされるポッドが実行されているノードの名前(該当する場合)。
ポッドネーム
スクラップされるポッドの名前(該当する場合)。
サービス名
スクラップされるサービスの名称(該当する場合
リモート・ライト・インテグレーションのデフォルト属性 デフォルトでは、以下の属性がPrometheusのリモートライトメトリクスに追加されます。
デフォルトの属性
(すべての統合機能)
説明
prometheus_server
Prometheusのリモート書き込みURLパラメータとして指定されたユーザー提供のラベル。問い合わせ時にPrometheusのソースサーバーを区別するため、提供される値は一意でなければなりません。デフォルトでは指定されていません。
newrelic.source
New Relic のインジェストポイントの名前 (prometheusAPI
) です。
instrumentation.provider
prometheus
instrumentation.name
リモート・ライト
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の機能]](/docs/integrations/prometheus-integrations/view-query-data/supported-promql-features)に関するドキュメントを参照してください。
メトリック値の取得 生のメトリック値を得るために
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 にアクセスしてください。詳細については、 query builder documentation をご覧ください。
ヒストグラムの作成とパーセンタイルの計算 Prometheus remote write またはバージョン 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()
。これらのリンクには、クエリの例が含まれています。