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 대시보드 소스 뷰의 위젯 목록에 있는 단일 객체에서 직접 복사한 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 UI에서 소스를 복사하고 고급 쿼리 필드에 붙여넣어 Azure 기반 차트에 대한 고급 쿼리를 실행합니다.
소스를 복사하려면 다음을 수행합니다.
- Azure UI에서 대시보드를 익스포트하고 다운로드합니다.
- 단일 차트의 JSON을 복사합니다. 차트는
properties.lenses[i].parts[j].metadata.settings.content.options.chart에 있습니다. - JSON을 쿼리 필드에 붙여넣습니다. JSON에는 최소한 다음이 포함되어야 합니다.
``` { “metrics”: [ “name”: string, “resourceMetadata”: { “id”: string } ] } ```ID필드는 Azure 자원 ID 또는 템플릿 변수여야 합니다.