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 ダッシュボードの単一オブジェクトのソースをコピーしました
この例は、CloudWatch ダッシュボードの [Source] ビューのウィジェットリスト内の単一のオブジェクトから直接コピーされた 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 で、ダッシュボードをエクスポートしてダウンロードします。
- 単一のグラフの JSON をコピーします。グラフは
properties.lenses[i].parts[j].metadata.settings.content.options.chartにあります。 - JSON をクエリフィールドに貼り付けます。JSON には、少なくとも次のものが含まれている必要があります。
``` { “metrics”: [ “name”: string, “resourceMetadata”: { “id”: string } ] } ```idフィールドは、Azure リソース ID またはテンプレート変数のいずれかである必要があります。