7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

New Relicの長期保存コスト問題を、Events to MetricsUnlimited Cardinality で解決。詳細情報を維持しつつデータ量を軽量化し、低コストで長期分析を実現する手法を解説します。

データ保持期間とコストのトレードオフ

New Relic をはじめとする Observability ツールを活用する中で、多くのエンジニアが直面するのが 「データの保持期間」と「コスト」のジレンマ です。

日々の障害対応やパフォーマンス改善のためにデータは不可欠ですが、データ量が増えれば増えるほど、それを長期間保持するためのコストは急増します。そのため、デフォルトの短い保持期間(例:8日間)のまま運用し、以下のような課題を抱えているケースが少なくありません。

  • 長期トレンドが見えない: 昨年のキャンペーン時との比較や、季節ごとの傾向分析ができない
  • コストの壁: 一部の分析のために全体の保持期間を延ばそうとすると、不要なデータまで保存することになり、コストが跳ね上がるため断念せざるを得ない

本記事では、New Relic の Events to Metrics (E2M) という機能を活用し、コストを抑えながら「価値あるデータ」だけを長期保存するテクニックを紹介します。

最新のアップデートの詳細はこちら
New Relic アップデート一覧

無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!

Event データの「強み」と「構造的な弱点」

まず、New Relic におけるデータ形式(MELT)の特性を整理します。

Event データの強み

Event データは、Observability において最も情報量が豊富で柔軟な形式です。
userIdsessionIdproductId といった詳細なコンテキストをリクエスト単位で保持しており、事前に集計軸を決めなくても、後から自由に切り口を変えて分析できるため、短期的な詳細調査に有効なデータ形式です。

Event データとは?(レシートと家計簿の違い)

Event データは、言わば 「買い物レシート(明細)」 のようなものです。

メトリクス(家計簿): 「食費:3万円」という集計済みの数字。全体の傾向はわかりますが、「何を買ったか」までは分かりません。
Event(レシート): 「○月×日、A店で、りんごを2個、誰が買った」という個別の事実。

Event データがあれば、後から「りんごを買った人だけ集計したい」「A店での買い物だけ見たい」と、自由に切り口を変えて分析できます。 事前に集計ルールを決める必要がなく、「あとから分析できる」 という柔軟性こそが、詳細調査において Event データが有効とされる理由です。

プライシング構造の弱点

しかし、長期運用の観点では以下の課題があります。

  1. コストが高い: データ量が膨大であるため、長期保持するとコストがかさみます
  2. 柔軟性の欠如(TDPの仕様): データの保持期間は、TDP(Telemetry Data Platform)のデータ種別で一律に決まります
    • 「この重要なイベントだけ12ヶ月保存したい」という設定ができません
    • 一部のために全体の期間を延ばそうとすると、不要なデータまで長期保存することになり、コストの非効率が発生します

結果として、Event データに頼り切りでは「短期しか見えない」という状況に陥ってしまいます。

第一の解決策:Events to Metrics (E2M)

この「詳細なデータは欲しいが、全部残すと高い」という問題を解決するのが Events to Metrics (E2M) です。

仕組みとメリット

E2M は、Event データから必要なディメンション(属性)だけを抽出し、軽量な「メトリクス形式」に変換して保存する機能です。

  • 軽量化・コスト削減: メトリクスはデータ量が小さいため、長期保存してもコストを低く抑えられます
  • 高速な長期分析: データが軽いため、月次トレンドや季節性の分析もダッシュボードで高速に描画できます

E2Mの課題:カーディナリティの壁

単にメトリクス化するだけでは解決できない「トレードオフ」が存在します。それは 「詳細が見えなくなる」 ことです。
ここで重要になるのが「カーディナリティ」という概念です。

そもそも「カーディナリティ (Cardinality)」とは?

「カーディナリティ」とは、データの列に含まれる 「ユニークな値(一意な値)の種類の多さ」 を指す言葉です。
Observability の世界では、データを分析する際の「切り口(タグ/Dimension)」の細かさを決める重要な要素になります。

種類 定義 具体例 メトリクスでの扱い
低カーディナリティ
(Low Cardinality)
値の種類が限られている (Japan, US...)
HTTPステータス (200, 404, 500)
得意
標準的なメトリクスで問題なく集計可能。
高カーディナリティ
(High Cardinality)
値の種類が膨大、
または無限に増える
会員ID (123456, 234567...)
URL/パス (/item/123, /cart/abc...)
Session ID
苦手
そのままタグにするとデータ量が爆発する。

なぜ「高カーディナリティ」が標準メトリクスの壁になるのか?

通常、メトリクスデータは「タグの組み合わせ」ごとにデータを保持します。
例えば、「国別」にレスポンスタイムを集計する場合、国の数は知れているのでデータ量は少なくて済みます。

しかし、「会員ID別」に集計しようとするとどうなるでしょうか?
会員が100万人いれば、システムは100万通りの時系列データを生成・保存しなければなりません。これを 「カーディナリティの爆発(Cardinality Explosion)」 と呼びます。

そのため、これまでの常識では 「メトリクスにするなら、会員IDや詳細なURLパスのような高カーディナリティな情報は削ぎ落とす(丸める)」 というのが定石でした。その代償として、長期データでの詳細な分析(例:「特定の会員で発生した遅延の傾向」など)を諦めていたのです。

高カーディナリティへの対応:E2M × Unlimited Cardinality

ここで登場するのが、Unlimited Cardinality という機能です。これを E2M と組み合わせることで、これまでの制約を突破できます。

UnlimitedCardinality.png

Unlimited Cardinality で実現できること

New Relic の Unlimited Cardinality は、1日あたりのカーディナリティ上限値を大幅に引き上げます。
具体的には、メトリクス単位でデフォルト10万の制限を、最大 100万 まで拡張可能です(アカウント単位では最大2億)。

これにより、以下のような分析が可能になります。

  1. 高カーディナリティ属性の保持: StoreIdAPI Path などの詳細な属性を保持したままメトリクス化できます
  2. 詳細な長期トレンド分析:
    • 「どのパスが、どの期間に、どの店舗で劣化したか」
    • 「特定のボトルネック API の季節性・傾向分析」

Event データの持つ「価値(詳細さ)」を保ったまま、Metric データの持つ「利点(長期保存・安価)」を享受できる、まさに良いとこ取りのソリューションです。

まとめ:Observability を「長期分析」へ拡張する

Events to Metrics を活用することで、New Relic の運用は以下のように最適化できます。

データ形式 用途 保持期間 コスト
Event 短期の深掘り・障害対応 短期(デフォルト) 抑えられる
Metric (E2M) 長期の俯瞰・トレンド分析 長期(数ヶ月〜1年) 安価

全てのデータを無闇に長期保存するのではなく、「長期分析に必要な価値あるデータ」だけを選択して E2M でメトリクス化しましょう。これにより、プライシング構造の弱点を回避し、コストを抑えつつ Observability を「長期分析」へと拡張することが可能になります。

New Relicでは、新しい機能やその活用方法について、QiitaやXで発信しています!
無料でアカウント作成も可能なのでぜひお試しください!

New Relic株式会社のX(旧Twitter)Qiita Organizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。

無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!

image.png

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?