OCI APMは、CLUSTER BY TQLコマンドを使用して外れ値を検出 (2024/10/30)

OCI APMは、CLUSTER BY TQLコマンドを使用して外れ値を検出 (2024/10/30)

https://blogs.oracle.com/observability/post/oci-apm-detects-outliers-clusterby-tql

投稿者: Sahil Rajput | Principal Member Technical Staff


Oracle Application Performance Monitoring (APM)は、アプリケーションのパフォーマンスと可用性を詳細に可視化する分散トレース機能を備えています。APMトレース・エクスプローラでは、トレース問合せ言語(TQL)を使用してトレースおよびスパンを問い合せ、パフォーマンスの問題およびボトルネックを特定できます。


TQLは、トレースとスパンをクラスタ化して外れ値をすばやく検出できる新しいコマンドCLUSTER BYを備えています。このコマンドを使用すると、数千のトレース/スパンではなく少数のクラスタを調査でき、問題のあるトレース/スパンを強調表示するための外れ値の検出が組み込まれているため、属性の類似性に基づいてトレースまたはスパンをグループ化できるため、時間を節約できます。たとえば、期間ごとにトレースをクラスタ化すると、ほとんどのトレースよりも大幅に長く実行されている異常なトレースが強調表示されます。このブログでは、新しいCLUSTER BY TQLコマンドを使用してAPMのトレースまたはスパンをクラスタ化し、外れ値を検出する方法について説明します。



CLUSTER BYを使用したOracle定義ダッシュボード


すぐに使える新しいウィジェット「上位サーバー・リクエスト」があります。このウィジェットは、「サービス概要」ダッシュボードで利用でき、上位サーバー・リクエストをスパン期間別にクラスタ化します。各バブルは、そのサイズがクラスタ内のスパン数を反映したスパン・クラスタを表します。次のイメージでは、外れ値が赤で強調表示されます。


図1: 「上位サーバー・リクエスト」ウィジェット




上のチャートで強調表示されたクラスタは外れ値で、オーダーに対する2つのリクエストに異常に時間がかかったことを示しています。2つのスパンをドリルインするには、そのクラスタをクリックするか、さらに分析します。



トレース・エクスプローラでのCLUSTER BYの実行


APMトレース・エクスプローラでは、TQLを使用してトレースおよびスパンを問い合せることができます。トレース・エクスプローラでCLUSTER BYを使用して、属性別にトレースまたはスパンをクラスタ化し、外れ値を識別できます。CLUSTER BYでは、メトリック属性とディメンション属性の両方がサポートされます。結果は、クラスタID、カウント、パーセンテージ、外れ値、ディメンション値およびメトリック値(中央、最小、最大)の列を含む表形式で表示されます。


例:


'wsk-checkout'という名前のサービスがあり、サービスのどの操作が異常に長時間実行されたかを検出するとします。CLUSTER BYコマンドは、スパンのクラスタを形成し、異常に時間がかかったクラスタを外れ値にマークできます。


cluster by show spans SpanDuration, OperationName where ServiceName = 'wsk-checkout'


前述の問合せは、サーバーが'wsk-checkout'サービスのスパン期間および操作名別にまたがるクラスタです。



前述のGIFのトレース・エクスプローラでサーバー・スパンをクラスタ化することを確認した後、外れ値が"true"としてマークされていることがわかります。異常なスパンが異常に長くかかったことを示す外れ値が3つあります。



クラスタ化用に事前定義されたウィジェットをトレース


クラスタリングの結果は、バブル・チャートでより適切に可視化されます。Oracle APMには、ダッシュボードに追加できるTraces Clusterと呼ばれるクラスタリング用の事前定義済ウィジェットが用意されています(ダッシュボードを作成または編集する方法については、ここを参照してください)。「Traces CLUSTER」ウィジェットは、CLUSTER BY問合せの結果をバブル・チャートとして視覚化します。これにより、Y軸のディメンションとX軸のメトリックを使用できます。バブルのサイズはスパン/トレースの数を表し、色はクラスタが外れ値かどうかを示します。


新しいダッシュボードを作成し、「トレース・クラスタ」ウィジェットを選択して、このダッシュボードに追加します。


ウィジェットを編集し、CLUSTER BY問合せを入力します。


例:


様々な場所からサービスへの接続時間を確認するために、CLUSTER BYを使用してGeoCityおよびConnectTimeでクラスタ化できます。チャートの外れ値は異常な動作を示します。


cluster by show (traces) GeoCity as yDimension, ConnectTime as xMetric where ApmrumType='Connection' and ConnectTime is not omitted




クラスタリング- クラスタのトレースの事前定義済ウィジェットの詳細は、前述の短いデモを参照してください。チャート内の強調表示されたクラスタは、サンノゼからの接続時間が長いため、接続が遅いことを示しています。



問合せベースのウィジェットのトレース


カスタマイズを可能にするために、Oracle APMには、CLUSTER BY問合せを使用してカスタム・ビジュアライゼーションを構築するために使用できるウィジェット・ビルダーが用意されています。新しいダッシュボードを作成し、「問合せベースのウィジェットの作成」を選択します。DataSourceとして「トレース」を選択し、CLUSTER BY問合せを指定します。「チャート・タイプ」として「バブル・チャート」を選択し、データをビジュアル化する属性を選択します。


次に、応答時間別にページをクラスタ化するバブル・チャート・ビジュアライゼーションの例を示します。


  • 問合せ: show (traces) OperationNameによるクラスタ、PageResponseTime。PageResponseTimeは省略されません
  • チャート・タイプ: バブル・チャート
  • X軸: PageResponseTime_Center
  • Y軸: パーセント
  • サイズ: パーセント
  • 色: OperationName


次の問合せベースのウィジェットの詳細



要約すると、CLUSTER BYでは、APMスパン(またはトレース)をクラスタ化して、個々のスパンではなくいくつかのクラスタに集中できます。CLUSTER BYの使用方法はいくつかあります。


  • TQLの一部、トレース・エクスプローラで実行
  • 「トレース・クラスタ」ウィジェットで、カスタム・ダッシュボードのCLUSTER BY問合せの結果を視覚化します。
  • Oracle提供のダッシュボードの「サービス概要」で、期間別にクラスタ化されたサーバー・リクエストを表示します。



リソース

コメント

このブログの人気の投稿

Oracle APEXのInteractive Gridで、Oracle Formsと比較して、重複行の検証を制御/通過させる方法 (2022/07/21)

Oracle APEX 24.1の一般提供の発表 (2024/06/17)

Oracle Cloudのデータベースをオブジェクト・ストレージにバックアップする3つの方法 (2021/12/13)