모니터링 기술
프로젝트를 배포했으면 이제 이 사이트가 어떤 식으로 이용되는지 사용패턴을 분석할 수 있어야 합니다.
저는 게임사이트를 운영하기에
어떤 시간대에 사람들이 많이 들어오는지 알아야 서버를 효율적으로 관리할 수 있고
어떤 게임이 가장 인기가 많은지 파악함으로써 사용자들의 성향을 파악 할 수 있습니다
인기 게임 분석
아래와 같이 특정 게임페이지에 접속할때마다 로그를 띄워줍니다
수집 된 로그를 바탕으로 위에서 띄워준 로그를 게임별로 수집합니다.
filter @message like /game\d+Click/
| parse @message /(?<game>game\d+)Click/
| stats count() by game
이제 어떤 게임이 가장 인기가 많은지 한눈에 확인 할 수 있습니다.
이번에는 에러가 얼마나 자주 발생하는지 추적해보겠습니다
단기간에 에러가 자주발생하면 사이트에 문제가 발생한 것이니 이메일 알림을 주기 위해 지표 분석을 해보겠습니다.
에러 횟수
15분동안 에러가 5회 이상 발생하면 사이트 점검을 하기위해
하루간의 에러 발생 패턴을 분석하는 지표를 만들었습니다.
만약 짧은 시간동안 에러가 5회 발생하면 경보를 주는 알람을 생성하고
만약 상황이 발생하면 네이버 이메일로 알람이 오게 설정해놨습니다.
CPUUtilization
EC2 인스턴스의 CPU 사용률을 모니터링하여 자원 사용량을 파악할 수 있습니다. 높은 CPU 사용률은 인스턴스에 대한 리소스 부족 상태를 나타낼 수 있습니다.
cpuUtilizaton이 과도하게 높아질 경우 전 이상이 발생했다고 판단하고 인스턴스 중지를 시키는 조치를 자동화하고 이메일 알림 설정을 하였습니다.위 그래프를 보면 cpuUtilization이 90%를 초과하는 순간 그래프가 끊긴 것을 확인 하실 수 있습니다
CPUUtilization이 과도하게 초과된 경우 개발자가 할 수 있는 몇가지 조치들은 아래와 같습니다
확장 가능한 리소스 추가) CPU 사용률이 높을 때는 추가 리소스를 할당하여 시스템 성능을 향상시킬 수 있습니다. 예를 들어, EC2 인스턴스의 경우 인스턴스 유형을 업그레이드하거나 인스턴스 수를 증가시켜 CPU 용량을 확보할 수 있습니다. 이를 통해 시스템에 더 많은 작업을 처리할 수 있게 됩니다.
자원 사용 최적화) CPU 사용률이 높은 경우, 시스템이 비효율적인 작업을 수행하거나 너무 많은 작업을 처리하고 있을 수 있습니다. 이를 최적화하기 위해 다음을 고려할 수 있습니다 - 비용이 많이 드는 작업 제한: CPU 집약적인 작업을 실행하는 데 많은 비용이 발생하는 경우, 비용을 줄일 수 있는 대안을 찾아볼 수 있습니다. 예를 들어, 자원 효율적인 알고리즘을 구현하거나 캐싱, 비동기 작업 등을 활용하여 자원 사용을 최적화할 수 있습니다.
작업 예약 및 우선순위 설정) CPU 사용률이 높은 작업에 대한 우선순위를 설정하거나 작업을 예약할 수 있습니다. 중요한 작업에 우선순위를 부여하거나, 작업량이 많은 작업을 시간대별로 분산시킬 수 있습니다.
로그 및 모니터링 분석) CPU 사용률이 높을 때는 로그 및 모니터링 데이터를 분석하여 원인을 파악할 수 있습니다. CPU 사용률이 높아지는 원인으로는 프로세스 또는 스레드가 비효율적으로 동작하거나, 의도치 않은 작업이 발생하는 경우가 있을 수 있습니다. 로그 및 모니터링 도구를 사용하여 CPU 사용률이 높아지는 시기와 관련된 이벤트 및 활동을 분석하고, 이를 해결하기 위한 조치를 취할 수 있습니다.
전 인스턴스 과부하시 AutoScailing 방법을 활용해서 인스턴스를 추가하는 방법을 선택했습니다.
구현 과정 게시글 - https://iwin.tistory.com/142
시간대별 방문자 수 파악
시간대 별로 방문자 수를 파악하여 서비스를 더 원할하게 관리 할 수 있습니다
fields @timestamp, @message
| filter @message like /GET "\/choice"/
| stats count() as VisitorCount by bin(1h)
게임 초기화면에 진입하는 사람의 숫자 파악
시간대별 방문자수를 파악함으로써 많은 조치가 이뤄질 수 있습니다
피크 시간 식별)
시간대별로 방문자 수를 파악하면 어느 시간대에 사용자가 가장 많이 방문하는지 파악할 수 있습니다.
이를 통해 웹 사이트나 애플리케이션의 피크 시간을 파악할 수 있으며, 이 정보를 활용하여 리소스 할당이나 용량 관리를 최적화 할 수 있습니다. 피크시간에는 서버 자원이 충분히 활용될 수 있도록 조치를 취할 수 있습니다.
사용자 동향 파악)
시간대별로 방문자수를 파악하면 사용자의 동향을 파악할 수 있습니다.
특정 시간대에 방문자수가 증가하는 경향이 있다면 해당 시간대에는 특정 이벤트나 캠페인 등이 발생할 수 있습니다. 이를 통해 마케팅 활동의 효과를 평가하고, 향후 마케팅 전략을 수립하는데 도움을 줄 수 있습니다
서비스 운영 최적화)
시간대별로 방문자 수를 파악하여 서비스 운영을 최적화할 수 있습니다.
예를 들어, 방문자 수가 상대적으로 적은 시간대에는 서버 유지보수, 데이터베이스 백업등과 같은 작업을 진행 할 수 있습니다. 또한 사용자 행동 패턴을 파악하여 특정시간대에 사용자 경험을 개선하거나 추가 기능을 제공할 수도 있습니다