1. 개요
CloudWatch 가 제공하는 Metric과 무료, 유료에 지원하는 Metric 또는 차이를 정리한다.
CloudWatch는 Basic Monitoring(무료), Detailed Monitoring(유료) 로 구분하여 모니터링을 제공하고 있다. Basic과 Detailed의 차이는 모니터링의 주기가 5분, 1분이라는 것과 Detailed에서 AMI ID 및 인스턴스 유형별로 데이터를 집계 할 수 있다는 점 외 Metric의 차이는 없다.
단, 인스턴스 유형에 따라 모니터랑 하는 Metric이 추가된다.
2. Metric
1) EC2
Metric | Metric Name (API) | Description | Units | |
---|---|---|---|---|
CPU Credit Usage | CPUCreditUsage | 소비한 CPU Credit 수 t2 인스턴스만 제공 Basic, Detailed 상관없이 5분 단위로 제공 | Count | |
CPU Credit Balance | CPUCreditBalance | 인스턴스 별 Credit 잔여수 t2 인스턴스만 제공 Basic, Detailed 상관없이 5분 단위로 제공 | Count | |
CPU Utilization | CPUUtilization | CPU 사용률 | Percent | |
Disk Reads Bytes | DiskReadBytes | 인스턴스의 모든 볼륨에서 읽은 Bytes 수 | Bytes | |
Disk Read Operations | DiskReadOps | 인스턴스의 모든 볼륨 읽기 작업 완료 수 | Count | |
Disk Writes Bytes | DiskWriteBytes | 인스턴스에 사용할 수 있는 모든 인스턴스 스토어 볼륨에서 쓴 바이트 수. | Bytes | |
Disk Write Operations | DiskWriteOps | 인스턴스에의 모든 볼륨 쓰기 작업 완료 수 | Count | |
Network In | NetworkIn | 모든 네트워크 인터페이스에서 받은 수 인스턴스별 어플리케이션으로 들어오는 네트워크 트래픽을 식별 | Bytes | |
Network Out | NetworkOut | 모든 네트워크 인터페이스에서 보낸 수 인스턴스별 어플리케이션으로 내보내는 네트워크 트래픽을 식별 | Bytes | |
Network Packets In | NetworkPacketsIn | 모든 네트워크 인터페이스에서 받은 패킷 수 | Bytes | |
Network Packets Out | NetworkPacketsOut | 모든 네트워크 인터페이스에서 보낸 패킷 수 | Bytes | |
Status Check Failed (Any) | StatusCheckFailed | StatusCheckFailed_Instance 와 StatusCheckFailed_System 에 대한상태 여부 | 0 또는 1 0 확인 1 실패 | |
Status Check Failed (Instance) | StatusCheckFailed_Instance | 인스턴스 상태 확인 | 0 또는 1 0 확인 1 실패 | |
Status Check Failed (System) | StatusCheckFailed_System | 시스템 상태 확인 | 0 또는 1 0 확인 1 실패 |
* CPU credit : t2 인스턴스는 유형별로 workload에 따라 기본 CPU 성능을 Bursting 한다. credit 하나는 1분동안 100%의 사용률로 실행되는 vCPU 하나이며 지급된 credit을 모두 소모하면 성능 저하가 발생한다.
2) EBS
Metric | Description | Units | |
---|---|---|---|
VolumeTotalReadTime VolumeTotalWriteTime | 모든 작업에서 볼륨을 사용한 총 시간 | Seconds | |
VolumeThroughputPercentag | Amazon EBS 볼륨에 대해 프로비저닝된 총 IOPS 중 전송된 IOPS의 비율입니다. Provisioned IOPS SSD 볼륨에만 제공 | Percent | |
VolumeReadOps VolumeWriteOps | I/O 작업 수 | Count | |
VolumeReadBytes VolumeWriteBytes | I/O 작업에 대한 정보 제공 Sum : 전송된 총 Byte 수 Average : I/O 작업의 평균 크기 SampleCount : 총 I/O 작업 수 | Bytes | |
VolumeQueueLength | 완료 대기 중인 읽기 및 쓰기 작업 요청 수 | Count | |
VolumeIdleTime | 읽기 또는 쓰기 작업이 없던 총 시간 | Seconds | |
VolumeConsumedReadWriteOps | 소비한 총 읽기 및 쓰기 작업량 Provisioned IOPS SSD 볼륨에만 제공 | Count | |
BurstBalance | burst bucket에서 사용할 수 있는 balance에 관한 정보 Throughput Optimized HDD, Cold HDD 제공 | Percent |
*IOPS : 초당 I/O 작업 수
3) ELB
Metric | Description | Units |
---|---|---|
SurgeQueueLength | 로드 밸런서에서 인스턴스로 전달되지 못하고 큐에 남아있는 요청의 개수 | Count |
RequestCount | 요청 수 | Count |
Latency | 로드 밸런서와 인스턴스 간의 지연시간(초) | Seconds |
HTTPCode_ELB_5XX | 로드밸런스에서 리턴받은HTTP Error Code 수 | Count |
HTTPCode_Backend_2XX HTTPCode_Backend_3XX HTTPCode_Backend_4XX HTTPCode_Backend_5XX | 인스턴스에서 리턴받은 HTTP Response Code입니다 | Count |
HealthyHostCount UnHealthyHostCount | 헬스 체크 정상, 비정상 인스턴스 수 | Count |
3. API
1) javascript
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html
listMetric
- 매트릭의 종류를 가져 온다.
getMetricStatistics
- 지정 metric의 값을 가져 옵니다.
2) python
https://boto3.readthedocs.io/en/latest/reference/services/cloudwatch.html
list_metrics() - 매트릭의 종류를 가져 온다.
get_metric_statistics() - 지정 metric의 값을 가져 옵니다.