새로운 오픈소스 프로젝트 'httpwatch'가 리눅스 시스템에서 발생하는 모든 평문 HTTP 요청을 실시간으로 모니터링하고 시각화하는 강력한 기능을 선보였습니다. 이 도구는 eBPF(extended Berkeley Packet Filter) 기술을 활용하여 별도의 프록시나 애플리케이션 코드 수정 없이 네트워크 트래픽을 직접 분석하며, 웹 브라우저 기반의 대시보드를 통해 직관적인 정보를 제공합니다. 단 한 줄의 도커(Docker) 명령어로 쉽게 배포할 수 있어 개발자와 운영자 모두에게 큰 편의성을 제공할 것으로 보입니다.
httpwatch는 호스트를 통과하는 모든 HTTP 요청의 메서드(METHOD), 호스트(host), 경로(path) 등의 엔드포인트 정보를 실시간으로 캡처하여 트래픽 양, 초당 요청 수(req/s), P95 지연 시간(latency) 기준으로 순위를 매겨 보여줍니다. 특정 경로를 클릭하면 해당 경로의 개별 요청 상세 정보, 상태 코드 분포, 요청 수 추이 등을 색상으로 구분된 라이브 패널에서 확인할 수 있습니다. 이 모든 데이터는 eBPF 프로브가 수집한 원시 집계 JSON 데이터를 브라우저가 SSE(Server-Sent Events)를 통해 받아 자체적으로 렌더링하는 방식으로 구현되어, 기존 터미널 기반 도구와 달리 풍부한 시각적 경험을 제공합니다.
이 도구의 핵심은 eBPF 기술을 사용한다는 점입니다. eBPF는 리눅스 커널 내부에서 안전하게 사용자 정의 프로그램을 실행할 수 있게 해주는 기술로, 네트워크 패킷 처리, 성능 모니터링 등 다양한 분야에서 활용됩니다. httpwatch는 이 기술을 통해 시스템 리소스에 미치는 영향을 최소화하면서도 깊이 있는 네트워크 가시성을 확보합니다. 특히, `docker run` 명령 시 `SYS_ADMIN`, `NET_ADMIN`, `BPF`, `PERFMON`과 같은 특정 리눅스 커널 권한을 컨테이너에 부여하여 eBPF 프로그램 로드 및 네트워크 인터페이스 연결을 가능하게 합니다. 이를 통해 개발자는 복잡한 설정 없이도 운영 중인 서비스의 HTTP 트래픽 흐름을 명확하게 파악하고 잠재적인 문제를 신속하게 진단할 수 있습니다. 예를 들어, 특정 API 엔드포인트의 갑작스러운 트래픽 증가나 지연 시간 상승을 즉시 감지하여 서비스 안정성을 확보하는 데 기여할 수 있습니다.