Metrics Insights 문제 해결
결과에는 "기타"가 포함되지만, 측정기준으로 지정하지 않습니다.
즉, 쿼리는 쿼리에 의해 반환되는 일부 지표에 사용되지 않는 레이블 키를 지정하는 GROUP BY 절을 포함합니다. 이 경우 이름이 Other인 null 그룹이 반환됩니다. 해당 레이블 키를 포함하지 않는 지표는 해당 레이블 키의 모든 값에 걸쳐 집계된 값을 반환하는 지표를 집계할 수 있습니다.
예를 들어 다음과 같은 쿼리가 있다고 가정합니다.
SELECT AVG(Faults) FROM MyCustomNamespace GROUP BY Operation, ServiceName
반환된 지표 일부에 측정기준인 ServiceName이 포함되지 않은 경우 해당 지표는 ServiceName 값으로 Other를 표시합니다.
결과에 "Other"가 표시되지 않도록 하려면 다음 예제와 같이 FROM 절에서 SCHEMA를 사용합니다.
SELECT AVG(Faults) FROM SCHEMA(MyCustomNamespace, Operation) GROUP BY Operation, ServiceName
이렇게 하면 반환된 결과가 Operation 및 ServiceName 측정기준 모두가 포함된 지표로만 제한됩니다.
그래프에서 가장 오래된 타임스탬프는 다른 지표보다 지표 값이 낮습니다.
CloudWatch Metrics Insights는 최대 2주의 과거 데이터를 지원합니다. 1분보다 긴 기간으로 그래프를 만들 때 가장 오래된 데이터 포인트가 예상 값과 다른 경우가 있을 수 있습니다. CloudWatch Metrics Insights 쿼리는 2주 보존 기간 내 데이터만 반환하기 때문입니다. 이 경우 쿼리에서 가장 오래된 데이터 포인트는 해당 데이터 포인트의 기간 내에 있는 모든 관측값을 반환하는 대신 지난 2주의 시간 경계 내에서 측정된 관측값만 반환합니다.
태그 기반 쿼리를 사용할 때 여러 기간에 걸쳐 일관적이지 않은 지표 값
CloudWatch Metrics Insights 쿼리에서 태그와 함께 WHERE 또는 GROUP BY 절을 사용하는 경우 선택한 기간에 따라 다른 지표 값이 표시될 수 있습니다. 예를 들어 6시간의 기간에서는 피크 값 20이 표시되고, 1시간의 기간에서는 동일한 기간 동안 표시되는 피크 값이 2에 그칠 수 있습니다.
이는 태그 타임스탬프가 2단계 세분화 수준으로 저장되는 반면 지표 데이터 포인트는 기간 경계(예: 각 분 또는 시간의 시작)에 맞춰지기 때문입니다. 태그 시간 범위와 일치하는 데이터 포인트를 확인하기 위해 CloudWatch는 한 기간을 빼서 범위의 시작을 조정합니다. 기간이 길수록 이 조정으로 인해 태그 타임스탬프와 포함된 가장 이른 데이터 포인트 사이에 더 넓은 간격이 생성되어 범위 시작에 가까운 데이터 포인트가 제외될 수 있습니다.
다음 예제에서는 이것이 쿼리 결과에 어떤 영향을 미치는지 보여줍니다. 지표에는 env=beta(00:00~01:30) 및 env=gamma(01:30~03:00)의 두 가지 태그 값이 있습니다. 각 태그는 SUM이 270인 90분의 데이터를 포함합니다.
| env=beta(1분 기간) | |||
|---|---|---|---|
| 통계 | 예상 | 반환 | 차이 |
| SUM | 270 | 271 | +1 |
| AVG | 3.0 | 3.0 | 0 |
| MIN | 1 | 1 | 0 |
| MAX | 5 | 5 | 0 |
| SAMPLE_COUNT | 90 | 91 | +1 |
| env=gamma(1분 기간) | |||
|---|---|---|---|
| 통계 | 예상 | 반환 | 차이 |
| SUM | 270 | 275 | 5 이상 |
| AVG | 3.0 | 3.0 | 0 |
| MIN | 1 | 1 | 0 |
| MAX | 5 | 5 | 0 |
| SAMPLE_COUNT | 90 | 91 | +1 |
1분 기간에서는 정렬 조정이 작으므로(1분) 태그당 1개의 추가 데이터 포인트만 포함됩니다. 3시간 기간에서는 조정이 전체 쿼리 범위에 적용됩니다.
| env=beta(3시간 기간) | |||
|---|---|---|---|
| 통계 | 예상 | 반환 | 차이 |
| SUM | 270 | 540 | +270 |
| AVG | 3.0 | 3.0 | 0 |
| MIN | 1 | 1 | 0 |
| MAX | 5 | 5 | 0 |
| SAMPLE_COUNT | 90 | 180 | +90 |
| env=gamma(3시간 기간) | |||
|---|---|---|---|
| 통계 | 예상 | 반환 | 차이 |
| SUM | 270 | 540 | +270 |
| AVG | 3.0 | 3.0 | 0 |
| MIN | 1 | 1 | 0 |
| MAX | 5 | 5 | 0 |
| SAMPLE_COUNT | 90 | 180 | +90 |
3시간 기간에서 집계된 단일 데이터 포인트의 타임스탬프가 조정된 두 범위 내에 속하므로 두 태그 모두 전체 데이터세트(SUM=540, SAMPLE_COUNT=180)를 반환합니다. 태그 경계는 사실상 지워집니다.
이 동작의 영향을 줄이려면 다음 접근 방식을 시도해 보세요.
-
더 작은 집계 기간 사용. 기간이 작을수록(예: 1분 또는 5분) 태그 타임스탬프의 2단계 세분화 수준과 더욱 밀접하게 일치하므로 정렬 격차가 최소화되고 모든 관련 데이터 포인트가 포함될 가능성이 높아집니다.
-
태그 대신 차원 기반 필터링 사용. 사용 사례에서 허용되는 경우 태그가 아닌 차원을 기준으로 필터링합니다. 차원 기반 쿼리는 이 동작의 영향을 받지 않습니다. 예를 들어
WHERE tag."my-tag" = 'my-value'대신WHERE InstanceId = 'i-1234567890abcdef0'을 사용하세요. -
일관된 세분성으로 쿼리. 서로 다른 기간에 걸쳐 지표 데이터를 비교할 때는 동일한 기간을 사용하면 정렬 조정으로 인한 예상치 못한 차이가 방지됩니다.