AWS および Azure の高度なクエリサポート

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:4分
  • サービスオブザーバビリティダッシュボードチャートの高度なクエリの作成方法を理解します。

    サービスオブザーバビリティの高度なクエリは、ほとんどのベンダー固有のクエリ言語をサポートしています。オブザーバビリティチャートからクエリをコピーし、 サービスオブザーバビリティの [詳細クエリ] フィールドに貼り付けるだけです。ただし、AWS および Azure へのクエリは JSON 形式であり、このトピックで概説されているガイドラインに従う必要があります。

    注:
    バージョン 1.10 では、AWS と Azure から直接チャートをインポートできます。詳細については、「サービスオブザーバビリティダッシュボードテンプレートでのオブザーバビリティデータチャートの編集」を参照してください。

    AWS の詳細なクエリ

    AWS からのデータには、 GetMetricData API を使用してアクセスします。クエリは、その API への JSON 形式の直接要求である場合もあれば、 DashboardBody メトリクスウィジェットの形式である場合もあります。たとえば、AWS CloudWatch ダッシュボードに存在するグラフのウィジェット表現を使用できます。

    直接 GetMetricData 要求

    次の例は、ELB インスタンスの平均 CPU 使用率を表示するグラフの GetMetricData JSON クエリを示しています。

    { 
    
        "StartTime": 1637061900, // can be replaced with “${START}” 
        "EndTime": 1637074500, // can be replaced with “${END}” 
        "MetricDataQueries": [ 
            { 
                "Expression": "SELECT AVG(CPUUtilization) FROM SCHEMA(\"AWS/EC2\", InstanceId)", 
                "Id": "q1", 
                "Period": 300, 
                "Label": "Cluster CpuUtilization" 
            }, 
            { 
                "Id": "m1", 
                "Label": "Unhealthy Behind Load Balancer", 
                "MetricStat": { 
                    "Metric": { 
                        "Namespace": "AWS/ApplicationELB", 
                        "MetricName": "UnHealthyHostCount", 
                        "Dimensions": [ 
                            { 
                                "Name": "LoadBalancer", 
                                "Value": "app/EC2Co-EcsEl-EXAMPLE69Q/fdd2210e799e4376" // can be replaced with “${ENTITIES}” or “${ENTITIES_ELB}” 
                            } 
                        ] 
                    }, 
                    "Period": 300, 
                    "Stat": "Average" 
                } 
            } 
        ] 
    } 

    AWS CloudWatch ダッシュボードの単一オブジェクトのソースをコピーしました

    この例は、CloudWatch ダッシュボードの [ソース] ビューのウィジェットリストの 1 つのオブジェクトから直接コピーされた JSON を示しています。

    {
      "type": "metric",
      "x": 9,
      "y": 0,
      "width": 15,
      "height": 5,
      "properties": {
        "view": "timeseries",
        "metrics": [
          [ "AWS/ApplicationELB", "RequestCountPerTarget", "TargetGroup", "targetgroup/api-tg/1e3dc9z72fe21ca2", "AvailabilityZone", "us-west-1a" ],
          ["...", "targetgroup/api-tg-cs/82a1db5f950073e1", ".", "." ]
        ],
        "region": "us-west-1"
      }
    }
    どちらのタイプのクエリでも、テンプレート変数を使用して、一連のエンティティ、または UI で選択された開始時間と終了時間を表すことができます。たとえば、単一の ELB インスタンスをクエリする代わりに、LoadBalancer ディメンションの [値] フィールドを ${ENTITY_ELB} に置き換えることができます。クエリは、 サービスオブザーバビリティ UI で選択したサービスに関連付けられている各 ELB インスタンスに対して実行されます。チャートには、それぞれの時系列が表示されます。
    注:
    CloudWatch ダッシュボードのソースからコピーされた JSON オブジェクトには、明示的な時間フィールドは含まれません。サービスオブザーバビリティ UI のタイムピッカーの値は、自動的に使用されます。
    表 : 1. テンプレート変数
    AWS フィールド テンプレート変数
    寸法[n]。価値
    • エンティティ
    • ENTITIES_HOST
    • ENTITIES_LAMBDA
    • ENTITIES_API_GATEWAY_HTTP
    • ENTITIES_API_GATEWAY_REST
    • ENTITIES_ELB
    • ENTITIES_RDS

    寸法[n]。値フィールドはリソース識別子キーである必要があります。

    開始時間 開始
    終了時間 終了

    Azure の高度なクエリ

    Azure ベースのグラフの詳細クエリを実行するには、Azure UI からソースをコピーし、[ 詳細クエリ ] フィールドに貼り付けます。

    ソースをコピーするには:
    1. Azure UI で、ダッシュボードをエクスポートしてダウンロードします。
    2. 単一のグラフの JSON をコピーします。グラフは properties.lenses[i].parts[j].metadata.settings.content.options.chart にあります。
    3. JSON をクエリフィールドに貼り付けます。JSON には、少なくとも次のものが含まれている必要があります。
      ``` 
      { 
      “metrics”: [ 
        “name”: string, 
        “resourceMetadata”: { 
          “id”: string 
          } 
        ] 
      } 
      ``` 
      id フィールドは、Azure リソース ID またはテンプレート変数のいずれかである必要があります。