오늘은 APPS에 배포한 내 워크로드의 모니터링에 대해 알아 보도록 하겠습니다. APPS의 워크로드(workload)는 Kubernetes Deployment, DaemonSet, StatefulSet을 말합니다.APPS는 모니터링 정보를 Prometheus로부터 수집합니다. Prometheus는 “open-source systems monitoring and alerting toolkit”으로 자세한 내용은 홈페이지를 참조하기 바랍니다.

앱스 워크로드 정보 상태 조회 버튼

워크로드를 추가한 후 ‘워크로드 정보’ 화면으로 이동하면 왼쪽 그림과 같이 워크로드 이름 오른쪽 끝에 ‘상태’라는 버튼이 보입니다. 이 버튼을 누르면 워크로드의 여러가지 상태를 확인할 수 있는 내용으로 화면이 바뀌게 됩니다. 이 화면의 맨 윗 부분이 워크로드가 사용 중인 리소스 양을 나타내는 화면으로 아래와 같습니다.

앱스 워크로드가 사용 중인 리소스 조회 화면

이 그래프는 각각 워크로드가 사용하는 CPU, Memory, Network traffic 사용량을 나타냅니다.  자세한 내용은 아래와 같습니다.

  • 그래프는 현재 시간을 기준으로 60분 전까지의 사용량을 나타내며 각 눈금은 1분 간격입니다.
  • 그래프의 오른쪽 끝이 현재 시간, 왼쪽 끝이 60분 전을 나타냅니다.
  • CPU와 Memory 사용량 그래프를 가로지르는 붉은색 선과 녹색 선은 각각 워크로드 생성 시 지정한 리소스 제한량(limit)과 요청량(request)을 나타냅니다.
  • Network 사용량의 파란색 선과 주황색 선은 각각 ingress, outgress traffic 양을 나타냅니다.

그런데, 여기서 잠깐! 위 그래프가 아래와 같이 보이는 경우가 있습니다.

앱스 워크로드가 사용 중인 리소스의 조회시 모니터링 정보가 존재하지 않을 경우 표시되는 화면

다음의 경우에 위와 같은 일이 일어 납니다.

  • 워크로드 시작 직후 – APPS가 Prometheus로부터 데이터를 수집하는 간격은 1분이고, CPU, Network 사용량의 경우 2분 간의 평균값을 취합니다. 따라서 워크로드가 실행된 후 1분이 지나야 Memory  사용량 그래프가 표시되고, 다시 1분이 지나면 CPU, Network의 그래프가 표시됩니다. 만약 실행 중이던 워크로드를 한 시간 이상 중시시킨 후 다시 실행한다면 똑같은 현상이 나타납니다. 왜냐하면 현재 시간 기준 60분간 수집된 사용량 정보가 없기 때문입니다.
  • 시스템 오류 – Prometheus가 제대로 정보를 수집하지 못하거나, APPS의 monitoring server가 제대로 동작하지 않는 경우입니다.
  • 워크로드가 정상 작동하고 있지 않은 상황에서는 일부 리소스의 사용량이 수집되지 않아 그래프에 표시할 내용이 없을 수 있습니다.