SignalFlowを使用した受信データの分析 🔗
Splunk Observability Cloud UIでSignalFlowを使用すると、チャートとディテクターの分析を改善できます。
UIからのSignalFlowプログラムの実行 🔗
You can add SignalFlow programs from the Splunk Observability Cloud user interface to stream processed data to detectors and charts.
ディテクターの編集時にSignalFlowプログラムを編集するには、アラートをトリガーするディテクターを作成する を参照してください。
チャートの編集時に SignalFlow 関数を使用するには、Splunk Observability Cloudの関数のリファレンス を参照してください。
注釈
SignalFlow APIを使用して、SignalFlowプログラムを追加することもできます。SignalFlow APIを使用する を参照してください。
ストリーム・オブジェクトを処理する 🔗
SignalFlow programs handle stream objects, which produce timestamped value organized along dimensions. Raw metric time series data is streamed to analytics jobs, and the queries and computations specified through SignalFlow produce new streams. For example, statistics computed across a population or over time.
Streams are local to a particular analytics query or computation, and several distinct jobs may query for the same underlying metric time series data. Detectors evaluate conditions involving one or more streams, typically comparisons between streams over a period of time. For example, the condition for a detector could be 「disk utilization is greater than 80% for 90% of 10 minutes,」 or, 「average database latency is above 5 seconds and the number of database calls is at least 20% of the one day average.」
ストリーム・オブジェクトの詳細については、変数としてのストリーム を参照してください。
カスタム分析の作成 🔗
カスタムチャートやディテクター分析を作成したい場合は、『Splunk Observability Cloud 開発者ガイド』の SignalFlowを使用してデータを分析する を参照してください。
SignalFlow プログラムを直接実行することもできます。詳細については、Splunk Observability Cloud Developer Guide の SignalFlow API トピックを参照してください。
データの集約と変換 🔗
ほとんどの組み込み 分析関数、集計と変換の2つの方法で、チャートやディテクターの時系列に対して計算を実行できます。
Aggregations operate across all of the data points at a single instance in time, for example the mean CPU utilization across a group of five servers at time t, t+1, t+2, and so on. The output of an aggregation is a single metric time series (MTS), where each data point represents the aggregation of all the data points over a specific period of time. For more information, see Aggregations .
An additional option, Group By, is available for aggregations. If a group-by field is specified, MTS sharing values for properties named in the group-by criterion are aggregated together. For example, you can compute the average CPU load grouped by AWS instance type; add the Mean function as an aggregation, and set AWS instance type as the group-by criterion. The output will show one MTS per AWS instance type.
Transformations operate in parallel on each MTS over a window of time and yield one output time series for each input time series. For example, the average CPU utilization for five servers over a rolling window of one day will display five MTS; each output value will be the moving average for that MTS over the previous 24 hours. For more information, see Transformations .
利用可能な3種類の変換、移動ウィンドウ、カレンダー・ウィンドウ、ダッシュボード・ウィンドウについては、以下のセクションを参照のこと。チャートでの変換分析の使用例については、チャートの分析によってインサイトを取得する を参照してください。
移動ウィンドウの変換 🔗
In the following example of a moving window transformation chart, each line represents the Mean CPU utilization across four servers. The grey line represents the mean value for each data point over the preceding minute. The magenta line represents the mean value for each data point over the preceding hour rolling window.
ローリング・ウィンドウ変換の詳細については、ローリング・ウィンドウ変換 を参照のこと。
カレンダー・ウィンドウの変換 🔗
In the following example, the Sum
, Mean
, Maximum
, and Minimum
functions let you set a calendar window for a transformation. In the chart, the magenta line shows the sum of all transactions over a moving window of one week. The green line shows the sum of the transactions over a calendar week, including partial values calculated throughout the week. Values increase over a week, then reset at the beginning of the following week.
カレンダー・ウィンドウの変換の詳細については、カレンダー・ウィンドウの変換 を参照してください。
解像度に関する考察 🔗
When you add a function with a calendar window to a plot, and the current time window is narrower than the cycle length that you specified on the function, the chart resizes to a default time of at least one cycle. At the same time, any dashboard override for time range is removed. A message is shown to inform you of this optimization; if you don’t accept the optimization, you may need to modify the time range manually to see the data you expect.
チャートがカレンダー・サイクルの終わりに値を表示するには、サイクルの長さが解像度の倍数でなければなりません。詳しくは、解像度 を参照してください。
For some combinations of time range and chart display resolution, it may not be possible to use a resolution that guarantees a chart shows values perfectly aligned with cycle boundaries. For example, if a resolution of one day results in more data points than can be shown on a chart, you may have to use a resolution of two days. This means that plotted values can’t line up with the end of a month that has 29 or 31 days, because neither value is a multiple of the two-day resolution. Such a situation is indicated by the resolution pill on a chart turning orange and showing a message in a tooltip. You can solve this issue by changing the display resolution or viewing a narrower time range.
注釈
カレンダーの時間ウィンドウを変換で使用する場合、チャートの解像度は1時間より細かくできません。
サイクルの長さと開始 🔗
サイクルの長さには、時間、日、週、月、四半期のオプションがあります。
For most cycle length options, you can specify a starting point. For example, for a cycle length of a quarter, you can specify that the first quarter starts in February instead of the default of January. The one exception is an hourly cycle length. Hourly cycles always start at the top of the hour (minute zero).
カレンダーのタイムゾーン 🔗
For calendar windows, you must specify a calendar time zone. The calendar time zone is a per-chart (or per-detector) setting that is independent of the visualization timezone that is set in your user profile. The time zone you set for a calendar window determines the exact beginning and end of your chosen calendar window cycles.
For example, January in America/Los Angeles starts at a different time relative to January in Asia/Tokyo. If Splunk Observability Cloud receives a data point with a timestamp near midnight UTC time on December 31, the calendar time zone determines whether that data point counts towards the calculation for December or the calculation for January.
チャート内のすべてのカレンダー・ウィンドウ関数は、同じカレンダー・タイムゾーンを共有します。チャートのどのプロット上でも、カレンダー・ウィンドウ関数を初めて追加すると、プロファイルのビジュアライゼーション・タイムゾーンが、カレンダー・タイムゾーンに使用する値として提案されます。
部分的な値を隠す 🔗
The Hide partial values setting lets you optimize the output of a calendar window function, based on whether you are interested only in the final values calculated at the ends of cycles, as well as partial values calculated during a cycle. For example, if you have a cycle length of one day, hiding partial values means that you will only see one value for each day; you won’t see how values change during the course of the day.
注釈
カレンダー・ウィンドウを使用するチャートは1時間より細かい解像度を持つことができないため、サイクルの長さが1時間の場合、このオプションの選択を解除しても効果はありません。
以下の例では、部分的な値(マゼンタの棒グラフ)を非表示にすることで、1日単位での値の比較の概要がより明確になります。部分的な値(緑色の線)を非表示にすることで、各日の平均値がどのように変化するかを表示します。
各サイクルの開始時の値は、前サイクルの最終値を表します。2月15日午前0時のマゼンタ色の列は、2月14日の平均値を表します。2月16日午前12時の列は、2月15日の値の平均を表し、以下同様です。
注釈
単一値チャートは、現在までに報告された最大待ち時間などの計算を視覚化するのに便利です。これらの数値を適切に表示するには、Hide partial values の選択を解除してください。
カレンダー・ウィンドウのタイムシフト 🔗
The timeshift function shifts the data points for each MTS in the input stream, offsetting them by a specified time period. A typical use case for using timeshift is to compare the average value seen for a metric over a period of time with the average seen over the previous period. For more information on the SignalFlow function, see timeshift() .
Timeshift is available only when partial values are hidden. If you enable timeshift when using calendar windows, the value from the end of a previous cycle will be shown at the end of every calendar cycle. For example, if your cycle length is Month and you timeshift by one cycle, the data point at April 30 will represent the value from March 31, the data point at May 31 will represent the value from April 30, and so on.
注釈
The timeshift feature in charts is aware of cycles having variable lengths, such as how March has more days than February, and shifts correctly to the end of a previous interval. By contrast, the standalone timeshift analytics function performs a fixed width shift, such as 30 days. For more information, see Timeshift関数を使って傾向を把握する.
ダッシュボード・ウィンドウの変換 🔗
次の例では、同じダッシュボードの両方のチャートが、異なるリージョンにあるロードバランサーのホストの総数を示しています。過去1時間のデータに基づくと、東京リージョンには2124のホストがあり、パリリージョンには1772のホストがあります。
2つのチャートの違いは、listChartDemo のチャートにはダッシュボード・ウィンドウの変換が設定されていないのに対し、listChartDashboardWindow のチャートには設定されていることです。
ダッシュボードの Time ピッカーを調整すると、listChartDashboardWindow のチャートだけが、選択した時間範囲に従って値を更新します。例えば、-12h
の時間範囲を選択すると、チャートは過去12時間のデータを表示します。
ダッシュボード・ウィンドウの変換の詳細については、ダッシュボード・ウィンドウの変換 を参照してください。
注釈
ディテクターにダッシュボード・ウィンドウの変換を適用することはできません。ダッシュボードのウィンドウ変換を使用するチャートから新しいディテクターを作成すると、変換ウィンドウはダッシュボードの現在の時間ウィンドウに最も近いものに更新されます。
例えば、ダッシュボードの現在の時間ウィンドウは 09/01/2023 09:25:00 am to 09/02/2023 07:30:00 am
です。このダッシュボードのチャートから新しいディテクターを作成すると、変換ウィンドウは Past day (-1d)
になります。
その他の関数 🔗
In addition to functions that provide aggregations and transformations, SignalFlow provides functions such as Count
, which counts the number of MTS that have values; Top
and Bottom
, which show the highest or lowest N number of values; and Exclude
, which provides the ability to filter time series by value, rather than by source.
他の分析関数と同様に、これらの関数は他の関数と組み合わせて使用することで、より高度な計算を行うことができます。例えば、Exclude
は、Sum
と一緒に使うことで、一般的な表計算アプリケーションで見られる sumif()
関数のような結果を得ることができます。
各機能の詳細については、Splunk Observability Cloudの関数のリファレンス を参照してください。
式 🔗
SignalFlowでは、先行する計算を変数として参照する式を作成できます。例えば、受信したHTTPレスポンスコードのうち、2xxと4xxまたは5xxの比率を計算することができます。