일단 해보고, 아니면 뭐

실패했어도 배웠으면 실패가 아냐.

무한한 개발세계 여행기

전체 글 38

Elastic Search 데이터 필드타입 변경하기 (Re-Index)

회사에서 사용 중인 Elastic Search 일정 Template의 데이터 필드 타입이 무언가의 이슈로 인해서 수정해야 할 일이 생겼다. 데이터 필드 타입 바꾸는 걸로 포스팅을 쓸게 있다니? 사실, 결론부터 말하면 한번 지정하여 Template를 등록한 후에는 데이터 필드 타입을 변경할 수 없다! 오마이갓 아니 그러면 어떻게 해야 할까? 기존 Template를 Delete 하고 새로 만들면 된다! 이상. 장난이었다. (진짜 이 방식으로 했다가 지운 데이터를 필요로 하는 개발자분에게 저 이모티콘 처럼 사과를 해야 하기도 했다.) 개발환경이거나 데이터가 수집되기 전이라면 위의 방식처럼 삭제하고 새로 만들어도 무방하지만, 운영환경이거나 수집되고 있는 데이터를 지워서는 안 되는 경우에는 그저 지우고 새로 만드..

Linux Memory의 체계 - free 명령어 데이터 분석기

Linux 'free' 명령어의 결괏값을 분석하게 되면서 알게 된 내용을 정리해보자. 어쩌다 분석을 하게 되었는지 부터 보자면... Node Exporter를 설치하여 수집되는 메트릭으로 Promql을 사용하여 노드의 메모리 추이를 조회하는데, 실제로 쿼리결과의 데이터가 free 명령의 결과값과 달라서 데이터를 분석하게 된 것이다. 일단 비교할 두 대상의 데이터부터 확인해보자 먼저 node exporter의 데이터를 분석해보자 node exporter는 운영체제 내의 /proc/meminfo 파일을 통해서 데이터를 스크랩해오는 방식인데 /proc/meminfo 파일은 다음과 같이 구성되어있었다. [root@target-master ~]# vim /proc/meminfo MemTotal: 8144312 k..

File rename() vs copy() & remove() 구조는 어떻게 다를까?

쓸데없이 웅장한 이미지로 시작하는 포스팅 Go언어로 개발되는 Agent에 기능 개발을 하게 되는 업무를 하게 되었다. (Java도 잘 모르는데 Go언어라니...) Kubernetes 환경에 배포되는 Pod들의 Log File들을 관리하는 기능인데, 간략히 설명해보자면 Kubernetes에서는 'kubectl get log'라는 명령어를 통해서 로그를 확인할 수 있는데, 이 명령어는 Container Runtime (나는 Docker) 의 로그가 쌓이는 경로의 Directory들과 Symbolic Link로 연결되어 있는 Kubernetes 전용 경로를 바탕으로 로그를 표출해준다. 즉, 'kubectl get log' 명령어는 Container Runtime이 관리하는 Log File을 대신(?) 보여주는..

Programing/Go 2022.04.02