Today
Total
KoreanEnglishFrenchGermanJapaneseSpanishChinese (Simplified)
관리 메뉴

DB & AWS Knowledge

AWS CLI 를 통한 CloudWatch metric 수집 본문

AWS 및 클라우드 지식/AWS RDS, Aurora 및 관련 지식

AWS CLI 를 통한 CloudWatch metric 수집

`O` 2022. 6. 14. 02:55
728x90
반응형

해당 페이지에서는 AWS CLI 를 통한 CloudWatch metric 수집 방법을 다룬다.

 

해당 글은 이전 개시글중에서 아래의 게시글을 먼저 읽고 오면 좋다.

 

2022.05.26 - [AWS 및 클라우드 지식/AWS 지식] - CloudWatch 개요

 

2022.05.27 - [AWS 및 클라우드 지식/AWS 지식] - CloudWatch (CW) metric

 

2022.06.10 - [AWS 및 클라우드 지식/AWS 지식] - AWS CLI 개요 및 의의

 

 

AWS CLI 를 통한 CloudWatch metric 수집 의의

 

 

우선 이전 개시글에서 CLI 를 사용하면 쉽게 수행 할 수 있는 업무는 어떤 것이 있는지 예시를 든 적이 있다.

CloudWatch 에서도 metric 을 수집하는게 더 편한 경우가 있는데

 

예를 들면,

 

- CloudWatch 콘솔에 들어가지 않고 바로 원하는 인스턴스 (혹은 클러스터) 의 metric 확인

 

- 원하는 metric 에 대한 수치 증감 분석 및 기타 log 보관성으로 보관하고 싶을 때,

 

등이 있다. 이외에도 이와 관련된 업무를 수행 할 때는 CLI 가 더 편하다.

 

 

AWS CLI 를 통한 CloudWatch metric 수집 방법

 

CLI 를 통한 CloudWatch metric 수집 방법은 두가지가 있다.

 

1. JSON format 으로 파일을 만든 후 실행

 

이 방법은 아래의 CLI 명령어 중, JSON 포맷을 가져오는 명령어로 시작한다.

아래와 같이 get-metric-statistics 기능과 --generate-cli-skeleton 옵션을 조합하면 

우리가 JSON 파일을 만들 때 필요한 포맷을 보여준다.

 

$ aws cloudwatch get-metric-statistics --generate-cli-skeleton
{
    "Namespace": "",
    "MetricName": "",
    "Dimensions": [
        {
            "Name": "",
            "Value": ""
        }
    ],
    "StartTime": "1970-01-01T00:00:00",
    "EndTime": "1970-01-01T00:00:00",
    "Period": 0,
    "Statistics": [
        "Maximum"
    ],
    "ExtendedStatistics": [
        ""
    ],
    "Unit": "Kilobits/Second"
}

 

이를 통해 우리가 필요한 항목들을 각 항목에 넣어서 실행하면 우리가 필요로 하는 metric 을 수집 할 수 있다.

아래 예시는 필자가 지난 개시글에서 언급한 Auroracluster metric 중 AuroraVolumeBytesLeftTotal 를 예시로 사용하여 얻은 결과다.

 

- 테스트용 json 파일 내용

 

$ cat test.json
{
    "Namespace": "AWS/RDS",
    "MetricName": "AuroraVolumeBytesLeftTotal",
    "Dimensions": [
        {
            "Name": "DBClusterIdentifier",
            "Value": "cse-aurora-mysql-57-test"
        }
    ],
    "StartTime": "2022-06-13T00:00:00",
    "EndTime": "2022-06-13T01:00:00",
    "Period": 60,
    "Statistics": [
        "Average"
    ]
}

 

- 테스트용 json 파일 실행

 

$ aws cloudwatch get-metric-statistics --cli-input-json file://test.json
{
    "Datapoints": [
        {
            "Timestamp": "2022-06-13T00:53:00Z",
            "Average": 70007198842880.0,
            "Unit": "Count"
        },
        {
            "Timestamp": "2022-06-13T00:18:00Z",
            "Average": 70007198842880.0,
            "Unit": "Count"
        },
        {
            "Timestamp": "2022-06-13T00:54:00Z",
            "Average": 70007198842880.0,
            "Unit": "Count"
        },
(... 이하 metric 결과 값 생략)

 

이와 같이 자주 사용하는 metric 수집 항목은 파일 자체로 만들어서 수행하면 원하는 metric 값을 쉽게 가져 올 수 있다.

단, 이에 대한 JSON 파일을 만들 때 아래의 내용을 주의 해야한다.

 

- Metric 은 인스턴스에서만 수집되는 항목이 있고, 클러스터에서만 수집되는 항목이있다. 그렇기에 확인을 원하는 metric 이 인스턴스에서만 수집되는지, 클러스터에서만 수집되는지 확인하여 dimensions 에 정확한 값을 넣도록 한다.

 

- 위의 예시같이 파일을 실행 할 때는 기존 OS 의 경로만 넣는게 아니라 앞에 'file://' 을 붙이도록 한다.

 

 

2. 명령어에서 옵션을 넣어 바로 실행

 

일회성으로 파일을 만들지 않고 단순 조회를 원할시에 명령어 자체에 옵션을 넣어 아래와 같이 수행 할 수 있다.

이 방법도 마찬가지로 1번 예시와 같이 정확한 dimensions 값을 넣어야 원하는 결과값을 볼 수 있다.

 

$ aws cloudwatch get-metric-statistics --namespace="AWS/RDS" --metric-name AuroraVolumeBytesLeftTotal --dimensions Name=DBClusterIdentifier,Value=mysql-57-test --start-time 2022-06-11T20:00:00 --end-time 2022-06-11T21:00:00 --period 60 --statistics=Average
{
    "Datapoints": [
        {
            "Timestamp": "2022-06-11T20:35:00Z",
            "Average": 70007198842880.0,
            "Unit": "Count"
        },
        {
            "Timestamp": "2022-06-11T20:00:00Z",
            "Average": 70007198842880.0,
            "Unit": "Count"
        },
(... 이하 metric 결과 값 생략)

 

반응형
Comments