지금까지 우리가 알아본 지표는
기본으로 활성화한 내부
서비스에서 직접 가져온 지표입니다만
CloudWatch에서 사용자 지정 지표를 얻는 방법 또한 존재합니다
여러분이 직접 사용자 지정 지표를 정의해주는
방식을 통해 가능한데
예를 들어 RAM의 메모리 사용을 CloudWatch에 푸시해주고 싶다거나
디스크 공간, 또는 앱 로그인 사용자 수 등을
데이터로 이용하려고 한다면
PutMetricData 라는 API call(호출)을 사용하면 됩니다
segment metrics(세그먼트 지표)에 디멘션 또는 속성을
추가해줄 수 있는데
Instance.id 또는 Environment.name 등
원하는 무엇이든 가능합니다
이름을 무엇이라 짓든 여러분에게 달려있기 때문입니다
다음으로는 StorageResolution API 파라미터를 이용해 지표 솔루션을 규정할 수 있는데
여기에서는 두 개의 값을 사용할 수 있습니다
하나는 Standard 식의 사용자 지정 지표으로
매 1분, 즉 60초마다 지표를
푸시해주는 방법이고
High Resolution 활성화를 통해
1초, 5초, 10초, 30초마다
지표를 푸시해주는 방법입니다
알아두시면 좋을 것은 사용자 지정 지표의 경우에는
과거나 미래에 지표를 푸시할 때
모두 잘 작동한다는 것인데
이는 매우 중요한 시험 포인트입니다
따라서 지난 2주 또는 앞으로 2시간으로
지표를 푸시한다면
CloudWatch는 오류 없이
여러분의 지표를 그대로 받아들일 것입니다
물론 해당 지표가
AWS의 실제 시간과 일치하도록
EC2 인스턴스 시간을 올바르게
설정해 주어야만 합니다
이제 사용자 지정 지표를 푸시해 보겠습니다
먼저 CloudWatch에서 put-metric-data를
검색합니다
이것은 CLI 문서인데
CloudWatch에 지표를 푸시하는 방법이 나와있습니다
지금 이 문서를 읽지는 않을테지만
여기에서는 모든 매개변수를 확인할 수 있습니다
매우 중요한 것은, 타임스탬프의 구체적 명시가 가능하다는 점입니다
지난 2주에서 미래 2시간까지의
타임스탬프 명시가 가능하기에
아주 중요한 부분이라고 할 수 있습니다
그런 다음 데이터값과
밸류값, 유닛값 등을 비롯해
스탠다드 또는 하이 레졸루션 중 원하는 것에 따라
디멘션과 storage resolution의 명시를 해줄 수 있습니다
제가 하고자 하는 것은 사용자 지정 예시를 푸시하는 것인데
마지막 부분의 예시를 보시면
원한다면 이렇게 JS 파일의 지표를 사용해 이처럼 지표를 푸시하고
이 API 호출을 사용할 수도 있고
더 빠른 작업을 위해서는
하나의 API command를 이용해 지표, 유닛, 바이트,
인스턴스 ID, 인스턴스 유형 등의
값을 명시할 수도 있습니다
여기 이 명령어를 가지고
CloudShell 유틸리티를 열어서 해당 지표를 푸시해 보겠습니다
클라우드셸이 실행되었으니
명령어를 붙여넣고 엔터키를 눌러줍니다
이렇게 CloudWatch에 지정된 사용자 지정 지표를 푸시하는 것인데
만약 이 작업을 EC2 인스턴스에서
스크립트를 활용해서 하게 된다면
어떠한 지표라도 규칙적으로 푸시할 수 있게 됩니다
지금은 CLI를 이용해 CloudWatch에 데이터 포인트를 하나
푸시할 뿐이지만, 이미 꽤나 유용하다고 볼 수 있습니다
CloudWatch의 unified agent(통합 에이전트)는
이 put-metric-data 라는 API 호출을 이용해
규칙적으로 CloudWatch에 지표를 푸시해 줍니다
이게 푸시되면 MyNameSpace라는
새 네임스페이스가 푸시되는데
제가 CloudWatch Metrics로 돌아가
이것을 새로고침 해주고
그래프를 지워주고 난 뒤
서비스에서 나갔다가
다시 서비스로 돌아가서
All metrics로 가보면
보시는 것처럼 이렇게
사용자 지정 네임스페이스의 생성을 확인하실 수 있습니다
이전에는 이렇게 AWS가 생성한 네임스페이스만 있었지만
이제 저희가 만든 네임스페이스가 생겼습니다
그 안에는 인스턴스 ID와 인스턴스 유형
이렇게 두 개의 디멘션이 있는데
이것은 앞서 명령어에 명시된 것과 동일한 인스턴스 ID와
인스턴스 유형 디멘션에 해당됩니다
물론 이러한 디멘션의 정의는 여러분에게 달려 있습니다
이것을 클릭하면 인스턴스 ID, 인스턴스 유형
그리고 Buffers라고 되어있는 지표명을 보실 수 있는데
지금은 이것을 클릭해봐도 데이터가 부족하기에
보여지는 것 또한 별로 없습니다만
여기에 생성된 하나의 데이터 포인트는
사용자 지정 지표의 일부입니다
여기까지인데, 꽤 유용하죠
API 호출을 이용해 매우 손쉽게 사용자 지정
사용자 지정 지표를 생성하는 법을 보여드렸습니다
마음에 드셨기를 바라며
다음 강의 때 뵙도록 하겠습니다