Open Kim-Yul opened 1 month ago
11월 14일 리포트에서 이전과 다르게 USE2에서 에러가 발생하였습니다.
에러 사항 파악 후 디버깅 진행하도록 하겠습니다.
10월 말에 주기적으로 us-west-2 사용량을 진행 할 때 에러가 발생했던 이유는 get_run_instance_information()에서 제대로 인스턴스의 정보를 수집하지 못했던 까닭이 있습니다. 확인해보니 석현님께서 사용하시는 i-0d05e9e68bde9516f
리소스의 RunInstanaces
이벤트가 이미 90일 이전에 생성되었던 것이라 CloudTrail에서 확인이 불가능했습니다. 이로 인해 인스턴스의 일부 정보가 누락되어 에러를 발생시킨 것으로 확인됩니다.
이 부분은 현재 username 정보를 찾아와 nametag에 username을 기입하고, instancetype은 현재 시스템으로는 파악이 어렵기 때문에 Not-Found
로 수정해두었습니다.
결과는 아래 이미지와 같습니다.
if previous_start_time != None and previous_start_time < event_time and previous_stop_time > event_time:
all_daily_instance[instance_id]['state'][sequence-1]['StopTime'] = event_time
spot instance의 시간을 구하는 과정에서 위와 같은 코드가 있는데, previous_start_time이라는 값은 None이 아닐때로 지정하고 있지만, previous_end_time의 경우 None 아닐 때를 확인하고 있지 않았습니다. 그래서 previous_stop_time 과 event_time을 비교할 때 None 값과의 비교가 이루어져서 에러가 발생했습니다. 해당 부분은 previous_stop_time이 None이 아닐 때라는 조건을 추가하였습니다.
이전에 작성한 코드는 문제 원인이 되는 코드를 바로 파악할 수 없어서 디버깅이 오래 걸렸습니다. 그래서 앞으로 디버깅이 원활할 수 있도록 코드를 추가하느라 작업이 조금 오래 걸렸습니다.
지훈님께서 금요일에 사용하고 계시던 스팟 인스턴스가 인터럽이 되는 케이스가 발생되었습니다. 인터럽 이벤트를 사용량에 반영해야만 인스턴스를 사용한 시간을 알아낼 수 있는데, 이 인터럽 이벤트가 어디에 어떻게 기록되고 있는지 cloudtrail에서 확인할 수 없었습니다. 해당 부분은 aws에 문의 넣어놓은 상태이며, 문의 답변 확인하고 추가 코멘트 남기겠습니다.
2가지 에러 사항이 어디서 발생하는지 찾았으며, 디버깅이 어려워 문제 원인을 파악하는 데 시간이 오래 걸렸습니다. 코드는 커밋할 예정이며, 며칠 정상 동작 여부를 파악한 후 머지하도록 하겠습니다.
약 일주일 간 모니터링을 진행하던 와중, 아래와 같이 datetime 의 형식이 달라 문제가 발생하였습니다.
이는 2개의 datetime 연산시 timezone 정보가 있는 데이터와 timezone 정보가 없는 데이터는 함께 연산할 수 없기 때문에 발견되는 문제입니다.
해당 연산이 원활하게 이루어지도록 기존에는 timezone.utc
를 세팅해주었습니다.
그러나 데이터 수집 중 어떤 부분에서는 timezone.utc 세팅이 되지 않아 연산에 오류가 발생한 것으로 보입니다.
원인이 되는 부분을 찾아 디버깅 진행하겠습니다.
10월 28일부터 10월 31일까지 주기적으로 US-WEST-2의 사용량을 리포트할 때 에러가 발생하는 것을 확인했습니다.
해당 에러 수정이 필요합니다.