Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

instance daily usage report 에러 수정 #58

Open
Kim-Yul opened this issue Oct 31, 2024 · 3 comments
Open

instance daily usage report 에러 수정 #58

Kim-Yul opened this issue Oct 31, 2024 · 3 comments
Assignees

Comments

@Kim-Yul
Copy link
Collaborator

Kim-Yul commented Oct 31, 2024

10월 28일부터 10월 31일까지 주기적으로 US-WEST-2의 사용량을 리포트할 때 에러가 발생하는 것을 확인했습니다.
image

해당 에러 수정이 필요합니다.

@Kim-Yul Kim-Yul self-assigned this Nov 14, 2024
@Kim-Yul
Copy link
Collaborator Author

Kim-Yul commented Nov 14, 2024

11월 14일 리포트에서 이전과 다르게 USE2에서 에러가 발생하였습니다.

image

에러 사항 파악 후 디버깅 진행하도록 하겠습니다.

@Kim-Yul
Copy link
Collaborator Author

Kim-Yul commented Nov 17, 2024

RunInstances 이벤트 정보 말소로 인한 에러

10월 말에 주기적으로 us-west-2 사용량을 진행 할 때 에러가 발생했던 이유는 get_run_instance_information()에서 제대로 인스턴스의 정보를 수집하지 못했던 까닭이 있습니다. 확인해보니 석현님께서 사용하시는 i-0d05e9e68bde9516f 리소스의 RunInstanaces 이벤트가 이미 90일 이전에 생성되었던 것이라 CloudTrail에서 확인이 불가능했습니다. 이로 인해 인스턴스의 일부 정보가 누락되어 에러를 발생시킨 것으로 확인됩니다.
이 부분은 현재 username 정보를 찾아와 nametag에 username을 기입하고, instancetype은 현재 시스템으로는 파악이 어렵기 때문에 Not-Found로 수정해두었습니다.
결과는 아래 이미지와 같습니다.
image

None 타입에 비교 연산자로 연산 시도

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가지 에러 사항이 어디서 발생하는지 찾았으며, 디버깅이 어려워 문제 원인을 파악하는 데 시간이 오래 걸렸습니다.
코드는 커밋할 예정이며, 며칠 정상 동작 여부를 파악한 후 머지하도록 하겠습니다.

@Kim-Yul
Copy link
Collaborator Author

Kim-Yul commented Nov 26, 2024

약 일주일 간 모니터링을 진행하던 와중, 아래와 같이 datetime 의 형식이 달라 문제가 발생하였습니다.
이는 2개의 datetime 연산시 timezone 정보가 있는 데이터와 timezone 정보가 없는 데이터는 함께 연산할 수 없기 때문에 발견되는 문제입니다.
해당 연산이 원활하게 이루어지도록 기존에는 timezone.utc 를 세팅해주었습니다.
그러나 데이터 수집 중 어떤 부분에서는 timezone.utc 세팅이 되지 않아 연산에 오류가 발생한 것으로 보입니다.

원인이 되는 부분을 찾아 디버깅 진행하겠습니다.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant