AWS および Azure の高度なクエリサポート
サービスオブザーバビリティダッシュボードチャートの高度なクエリを作成する方法を理解します。
サービスオブザーバビリティ の高度なクエリは、ほとんどのベンダー固有のクエリ言語をサポートしています。APM チャートからクエリをコピーし、 サービスオブザーバビリティ の [詳細クエリ] フィールドに貼り付けるだけです。ただし、AWS および Azure へのクエリは JSON 形式にし、このトピックで説明されているガイドラインに従う必要があります。
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 ダッシュボード内の 1 つのオブジェクトのコピーされたソース
この例は、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"
}
}
LoadBalancer ディメンションの [値] フィールドを ${ENTITY_ELB} に置き換えることができます。クエリは、 サービスオブザーバビリティ UI で選択したサービスに関連付けられている各 ELB インスタンスに対して実行されます。グラフには、それぞれの時系列が表示されます。注:
CloudWatch ダッシュボードのソースからコピーされた JSON オブジェクトには、明示的な時間フィールドは含まれません。サービスオブザーバビリティ UI の時間ピッカーの値が自動的に使用されます。
| AWS フィールド | テンプレート変数 |
|---|---|
ディメンション[n]。値 |
|
開始時間 |
開始 |
終了時間 |
終了 |
Azure 詳細クエリ
Azure ベースのチャートの高度なクエリを実行するには、Azure UI からソースをコピーして [ 詳細クエリ ] フィールドに貼り付けます。
ソースをコピーするには:
- Azure UI で、ダッシュボードをエクスポートしてダウンロードします。
- 1 つのグラフの JSON をコピーします。チャートは
properties.lenses[i].parts[j].metadata.settings.content.options.chartにあります。 - JSON をクエリフィールドに貼り付けます。JSON には、少なくとも次のものが含まれている必要があります。
``` { “metrics”: [ “name”: string, “resourceMetadata”: { “id”: string } ] } ```idフィールドは、Azure リソース ID またはテンプレート変数のいずれかである必要があります。