集計ルールを使ってデータ量をコントロールする 🔗
サービスからSplunk Observability Cloudに送信するデータは、高いカーディナリティを持つことがあります。データを送信する前に送信方法を調整する代わりに、集計を行うことで、Splunk Observability Cloudで重要だと考えるディメンションに基づいてデータを要約することができます。
集計がどのように機能するかについては、以下の図を参照してください:
保持する特定のディメンションを選択することで、データポイントをより少ないディメンションの新しいメトリクスに集約し、重要なディメンションの特定のビューを作成することができます。すべてのディメンションにまたがるメトリクスを表示する必要がない場合は、より簡素化されたデータの集中的なビューを得ることができます。
特定のディメンションを選択すると、メトリクスパイプライン管理は新しいメトリクスを生成します。システムは、選択したディメンションに基づいて新しいMTSを作成し、各MTSのデータポイントをロールアップします。デフォルトでは、sum
、min
、max
、count
、delta
、avg
、latest
関数を使用して、集計ルールがデータポイントを新しいMTSにロールアップします。
新しい集約された MTS は、Splunk Observability Cloud の他の MTS と同じように使用できます。
MPM集計は、クエリ時のインジェスチョン後の集計とどのように異なりますか? 🔗
チャートまたはディテクターを設定する際、sum
などの分析関数を使用してデータを集約し、sum by region
などの特定のディメンションでデータをグループ化できます。この集計は、Splunk Observability Cloudが生のMTSを保存した後に行われるため、データの保存に費用がかかります。
メトリクス パイプライン管理を使用すると、MTS を保存しながら集計し、集計されたメトリクスのみを保持できます。データポイントごとに保存するディメンションが少なくなり、メトリクス パイプライン管理によってメトリクス値がロールアップされるため、ストレージコストを削減できます。
例 🔗
Splunk Infrastructure Monitoringを使用して、コンテナ化されたワークロードの http.server.duration
というメトリクスを送信します:
ワークロードには、10個のエンドポイント、20個のリージョン、5個のサービス、10,000個のコンテナがあります。
5つのサービスにはそれぞれ10,000個のコンテナと10個のエンドポイントがあります。
データはコンテナIDレベルで入ってきており、10(エンドポイント)*5(サービス)*20(リージョン)*10,000(コンテナ)=1,000,000 MTSを生成しています。
1つまたは複数のディメンションを集約することで、メトリクスのカーディナリティを削減できます。
1つのディメンションを使って集計する 🔗
シナリオ:データのソース領域にのみ関心がある。
この場合、region
ディメンションでデータをグループ化する集約ルールを作成できます。集約されたメトリクスでは、他のすべてのディメンションが削除され、ルールに基づく region
ディメンションのみが保持されます。
region
には20種類の値のみがあるため、Splunk Observability Cloudは20個のMTSのみを取り込みます。
複数のディメンションを使用した集計 🔗
シナリオ:データのエンドポイント、リージョン、サービスの監視は継続したいが、コンテナIDの監視は不要。
この場合、保持したいディメンションでデータをグループ化する集約ルールを作成できます。集約されたメトリクスでは、container_id
ディメンションが削除され、ルールに基 づいて、endpoint
、region
、service
が保持されます。
新しい測定ボリュームは、10エンドポイント x 20リージョン x 5サービス = 1,000 MTS です。
MTS集計ロールアップ期間 🔗
システムから定期的にデータポイントが送信され ているが、その周期が10秒より長い場合、MTS 集計の結果は期待したものと異なる可能性があります。
例えば、システムが 5 秒ごとにデータポイントを生成するとします。連続する 2 つのデータポイントのタイムスタンプは 5 秒ずつ異なります。システムがポイントを直ちに Splunk Observability Cloud に送信すると、システムは 10 秒ごとに 2 つのデータポイントを取り込みます。メトリクス パイプライン管理は、2 つのデータポイントを 10 秒の解像度で 1 つの集約データポイントにまとめることができます。
データポイントを送信しているが、常に同じ頻度で到着するとは限らない場合、Splunk Observability Cloudは、最初の10秒間に2つのデータポイントを受信し、次の10秒間に12のデータポイントを受信する可能性があります。どちらの場合も、メトリクス パイプライン管理は、生のポイントを1つの集約されたデータポイントにロールアップします。
また、毎秒データポイントを送信し、受信データポイントの解像度を維持したい場合は、MTS集計を使用しないでください。
潜在的な問題 🔗
未加工のデータポイントが作成されたときにシステムが追加するタイムスタンプと、データポイントを集計するときにシステムが使用する時間の違いは、次のいずれかの問題を引き起こす可能性があります:
集計された MTS の開始時刻と終了時刻がずれる可能性があります。サーバーで生成されたデータポイントが、タイムスタンプに記録された作成時刻からしばらくして到着する場合があります。この場合、集計された MTS 全体がチャート上でより新しい時刻にシフトし、開始時刻が実際のタイムスタンプよりも新しいことを示します。このシフトは、メトリクス パイプライン管理がデータポイントのタイムスタンプを無視し、代わりにデータポイントをインジェストした時刻を使用するために発生します。
たとえば、データポイントのタイムスタンプが10:00であるにもかかわらず、Splunk Observability Cloudが10:10になるまでデータポイントの受信を開始しない場合、集計されたMTSは10:00ではなく10:10から始まるように見えます。
集計されたMTSは、誤った継続時間を持つように見える可能性があります。
解決策 🔗
以下のオプションを使用することで、このような集約の問題を避けることができます:
不要なディメンションを削除するように OTel Collector を再設定することによって、データを送信する前に独自の MTS 集約を実行します。
チャートの生成やディテクターの作成時に、SignalFlowを使用してデータを集約します。
メトリクスパイプライン管理による集計のメリット 🔗
クエリ時に集計の代わりにMPMを使用する 🔗
SignalFlow を使用して、」group by 「オプションを適用して MTS を集約することができますが、この集約は MPM の集約とは異なります:
MPMは、Splunk Observability CloudデータベースにMTSを保存する前にMTSを集約します。
SignalFlow は集計を行う前に MTS をデータベースに保存します。
SignalFlow は、カーディナリティの高いディメンションを削除することはできず、不要な MTS をドロップすることもできません。
MPM 集計は、生の MTS インジェストが完了する前に行われるため、カーディナリティの高いディメンションを排除し、不要なデータを削除することができます。
Splunk Distribution of the OpenTelemetry Collectorを変更する代わりにMPMを使用する 🔗
MPMを使えば、Splunk Distribution of the OpenTelemetry Collectorの設定を変更する必要はありません。MPMを使えば、OpenTelemetryデータをインジェストした後、カーディナリティの高いディメンションを削除し、不要なMTSを削除し、MTSを低コストのデータ層にルーティングすることができます。
Collector の設定を変更して取り込む前にデータを削除する方法については、Collector を使用して取り込むデータを制御する を参照してください。
メトリクスの集計ルールを作成する 🔗
注釈
集計ルールを作成または編集するには、Admin または Power user のロールが必要です。詳細については、Splunk Observability Cloud のロールについて を参照してください。
メトリクスの集計ルールにアクセスして作成するには、以下の手順に従います:
Splunk Observability Cloudアカウントにアクセスします。
左のナビゲーションメニューで、Settings > Metrics Pipeline Management を選択すると、すべてのメトリクスのリストとそのルールセットの概要が表示されるランディングスクリーンにアクセスできます。
メトリクスのサマリーページにアクセスするには、メトリクスを選択または検索します。
Added by rule タイルで、Add を選択します。
Create aggregation rule ダイアログで、オプションを入力します:
ルールに名前を付けます。
受信データを特定の MTS 集団にフィルタリングします。ディメンションキーまたは値を検索して、関連するメトリック時系列(MTS)を絞り込みます。
ディメンション設定を構成します。ディメンションを検索し、保持 または ドロップ のいずれかを選択します。Splunk Observability Cloudは、保持したディメンションを新しい集約MTSに保存し、ドロップされたディメンションを削除します。
注釈
ヒストグラムメトリクスを集計することはできません。
集計を使用して新しいメトリクスを作成した後、不要なメトリクスや不必要なメトリクスを削除して、データ量を削減できます。詳しくは データをアーカイブまたはドロップする影響とメリット をご覧ください。
MTS 集計ルールを有効化、無効化、削除する 🔗
既存のルーティング例外ルールを編集、有効化/無効化、または削除するには、以下の手順を実行します:
Splunk Observability Cloudアカウントにアクセスします。
左のナビゲーションメニューで、Settings > Metrics Pipeline Management を選択すると、すべてのメトリクスのリストとそのルールセットの概要が表示されるランディングスクリーンにアクセスできます。
メトリクスのサマリーページにアクセスするには、メトリクスを選択または検索します。
ルールのリストから、変更したいメトリクスを見つけ、More actions (⋮) メニューから利用可能なオプションのいずれかを選択します。