• ログイン

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

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

問題を作成する

OpenTelemetryメトリック:ベストプラクティス

OpenTelemetryメトリクスは、New Relicのディメンションメトリクスとほぼ互換性があります。OpenTelemetry メトリクス v0.10 をサポートしています。サポートしているすべてのメトリクスタイプには、独立した関連属性(名前と値のペア)のセットが含まれており、クエリ時にメトリクスデータのファセットやフィルタリングに使用できるディメンションに直接マッピングされます。OpenTelemetryメトリクスには、 リソース 属性のセットが付属しています。この属性は、メトリクスを生成したオリジネーターを識別し、ファセット化やフィルタリングのためのディメンションにマッピングされます。

OpenTelemetry data model for metricsでは、sum、gauge、histogram、summaryなど、さまざまな種類のメトリックを定義しています。

重要

OpenTelemetryプロトコルが成熟し、より多くのコンポーネントが安定していると宣言されたため、2022年9月までに、OTLPエンドポイントでサポートされるバージョンをv0.10.0からより新しいリリース(少なくともv0.16.0)に移行する予定です。

コミュニティがOTLPのより安定したリリースに向けて動くにつれて、v0.10.0サポートのEOLタイムラインと、混乱を最小限に抑えるために実行できるアクションに関して、追加の連絡が予定されています。

和の指標

OpenTelemetryの総和は、与えられた時間ウィンドウ上のすべてのデータポイントの総和であるスカラーメトリックです。 sumには、報告された値が以前の測定値を組み込んでいるか(累積時間性)、そうでないか(デルタ時間性)を示す 時間性の概念があります。

また、和は単調なもの(上にしか行かない、下にしか行かない)と、非単調なもの(上にも下にも行く)があります。

デルタ・サムズ [#delta]

New Relicでは、デルタメトリクスがモノトニックかノンモノトニックかによって処理が異なります。

積算金額

単調な累積和と非単調な累積和は、New Relic のゲージメトリックタイプにマッピングされます。

サムの構成例

集約のテンポラリティを構成する方法を理解するには、 JavaおよびGoOpenTelemetrySDKを使用したこれらの例を参照してください。

ゲージ・メトリクス

OpenTelemetry ゲージ メトリック データ ポイントは、特定の時間にサンプリングされた値を表します。これらの値は New Relic のゲージメトリックタイプに変換されます。OpenTelemetry ゲージには集約の時間性はありませんが、サンプリングされた値はクエリ時に集約することができます。

ヒストグラム・メトリクス

OpenTelemetry ヒストグラム 記録された値の集団を、合計数や合計値とともにコンパクトに表現します。オプションとして、ヒストグラムには、明確な境界線を持つ一連のバケットと、そのバケットの人口に対するカウント値を含めることができます。

注意

New Relic は現在、累積ヒストグラムをサポートしていません。代わりに、累積ヒストグラムをデルタテンポラリに変換してください。

デルタテンポラリティを使用するようにSDKを構成する前に、OTLPメトリックエクスポーターの 仕様を参照してください

このアカウントクエリを使用すると、サポートされていない一時性のためにメトリクスがドロップされているかどうかを判断できます。

FROM NrIntegrationError SELECT * WHERE message = 'One or more OTLP metric data point(s) were dropped due to unsupported AggregationTemporality.'

OpenTelemetry のヒストグラムは、New Relic の ディストリビューション メトリックタイプに変換され、スケールされた指数ベース2のヒストグラムに裏付けられています(より詳しい説明は NrSketch を参照してください)。

OpenTelemetryヒストグラムバケットからのカウントは、線形補間を使用してNewRelicの分布メトリックバケットに割り当てられます。また、OpenTelemetryには負と正の無限限界バケットがあり、NewRelicでは幅がゼロのバケットとして表されます。これを行うのは、負と正の無限大の表現がないためです。たとえば、境界\[-∞, 10)のOpenTelemetryバケットは、 \[10,10)ゼロ幅のNewRelicバケットで表されます。この変換により、ディストリビューションのエンドポイントでバケット数が誇張されている場合があります。

サマリー・メトリクス

OpenTelemetry のサマリーメトリックのデータポイントは、分位値のサマリー(P99 レイテンシーなど)を表すために使用されます。これらは、New Relic のサマリーメトリックタイプに直接マッピングされます。

サマリーメトリクスのデータポイントには、カウント、サム、および分位値があり、0.0が最小、1.0が最大となります。OpenTelemetryでは、他のフォーマットとの互換性のために、サマリーメトリックを提供しています。

開始時間

OpenTelemetryの仕様によれば、 startTimeUnixNanoフィールドはオプションです。このフィールドを指定すると、結果のNew Relicメトリックのタイムスタンプに使用され、 durationtimeUnixNano - startTimeUnixNanoとして計算されます。 durationフィールドは、New Relicメトリックのクエリ可能なendTimeStamp属性を計算するために使用されますが、他のセマンティック目的には役立ちません。

startTimeUnixNanoが指定されていない場合、結果のNew RelicメトリックのタイムスタンプフィールドにtimeUnixNanoが使用され、durationフィールドはゼロに設定されます。

属性の配列値

OpenTelemetryメトリックおよびその他の信号には、プリミティブ型の同種の配列で構成される属性が含まれる場合があります。 New Relicは、65要素未満のネストされていない同種配列をサポートします。

模範例

OpenTelemetry では、トレースのような他のシグナルをメトリックイベントに接続してコンテキストを提供するための模範的な値を定義しています。New Relic ではエグザンプルはサポートされていません。

メトリクスの照会方法

New RelicでメトリックなNRQLクエリを構築するためのヒントを考えてみましょう。

ゲージに格納された累積値の照会

累積和がゲージに変換されるので、データを照会する方法を紹介します。

クエリ・ゲージ・メトリクス

New Relicが累積合計をゲージに変換する場合、 latest()またはderivative() NRQL関数を使用してそれらをクエリできます。選択する関数は、生の値を表示するか、変化率を計算するかによって異なります。

クエリ・ヒストグラム・メトリクス

OpenTelemetryメトリックから変換されたNewRelicヒストグラムは、他のNewRelicヒストグラムと同じクエリセマンティクスを持っています。つまり、 histogram() NRQL関数を使用して、構成可能なバケット数とバケット幅でヒストグラムを表すことができます。エンドポイントバケットでより多くのバケット数が表示される場合があることに注意してください。これは、負および正の無限大バウンドOpenTelemetryバケットをゼロ幅のNewRelicバケットに追加しているためです。

重要

TIMESERIESキーワードは、NewRelicヒストグラムではサポートされていません。

Copyright © 2023 New Relic株式会社。

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