소소하게 오픈소스 기여 경험 정리
사내에 카프카 클러스터를 운영하고 있다. 프로메테우스와 그라파타 조합으로 토픽과 컨슈머 그룹 현황을 모니터링할 수 있게 제공하고 있다. 그런데 가끔 개발자분이 토픽 메시지 확인이 됐으면 좋겠다. 컨슈머가 제대로 토픽에 연결되었는지 확인할 수 있었으면 좋겠다. 등등 이런 저런 기능이 필요하다고 말하는 경우가 있었다. 공식적으로 지원할 계획은 없었고 다른 업무로 바빴지만, 자꾸 생각이 나서 툴이 있나 조사해보니 한달 무료 뒤에 유료 전환하거나 권한 제어가 안되서 토픽 생성, 삭제, 수정이 자유로웠다.
(생짜로 개발은 안되는데…)
GitHub 뒤져보기
방향을 바꿔서 깃허브를 뒤져보기로 했다. 그냥 Kafka monitoring, Kafka tool 이런식으로 막 검색해서 하나씩 둘러봤다. 그러다 발견한게 https://github.com/obsidiandynamics/kafdrop 이다.
(구세주 발견!!)
메시지 확인이 가능한 카프카 툴이였다. 여기에 필요한건 메시지 생성/삭제 권한 제어와 컨슈머 연결 상태 확인 기능이였다. 그런데 누가 메시지 삭제는 제어 가능하게 기능을 추가한 걸 보았고, 그 코드를 보고 흉내내서 토픽 생성도 제어 기능을 개발해서 풀 리퀘스트를 보냈다.
그날 바로 받아줬다!! 신이 나서 컨슈머 연결 상태 확인 기능도 개발해서 pull request 했는데, 이넘은 아직도 잠잠하다. 피드백이라도 주면 수정할텐데 말이다. 어쩔수 없이 사내는 자체적으로 도커 이미지를 생성해서 배포한 상태이다. 오픈 소스에 기여를 하니, 이후에 올라온 이슈가 괜히 내가 추가한 기능때문인지 신경이 쓰여 자꾸 들락거리게 된다. 그러다 문제 해결에도 도움을 줬다.
아무튼 따지고 보면 기능 개발도 쉽고 별거 아닌 일인데, 나름 재미났던 경험이라 정리해 본다. 또 이런 기회가 있었으면 좋겠다.