사용자 단말부터 data center host까지 네트워크 성능 문제를 end-to-end로 관측하기 위해 브라우저 Network Error Logging과 Linux eBPF를 함께 도입한 사례다. 서버 지표로는 단말 오류를, 브라우저 리포트로는 kernel drop을 알 수 없다는 관측 공백에서 출발한다.
핵심 포인트- 브라우저 NEL이 요청 실패 phase와 DNS not found·TCP refused 같은 상세 type, server IP·user agent를 리포트해, IP geolocation으로 국가·통신사를 추정하고 device·release별 error rate를 집계해 특정 ISP·브라우저 장애를 재현 전에 좁힘
- netstat은 host 전체 통계만 보이고 어느 connection인지 부족하며 tcpdump는 수백 서버 패킷을 계속 저장·분석하기 어려워, low overhead로 kernel event를 선택 수집하는 eBPF를 data center에 배치
- TCP retransmit tracepoint와 socket 정보를 연결해 loss·out-of-order를 flow 단위로 기록하고, 의미 있는 event만 ring buffer로 보내 부하를 제한하며 drop reason·connection tuple을 dashboard에서 검색 — packet dump 없이 문제 host·path 특정
- 실제 incident에서 eBPF event가 특정 traffic control queue의 packet drop을 드러냈고, BPF helper로 rate·latency parameter를 조정해 재현 환경에서 개선을 검증하되 단위 오류·과소 설정에 대비한 failure guard를 둠
왜 읽나서버 지표만으로 안 잡히는 last-mile부터 커널까지의 네트워크 장애를 NEL과 eBPF로 flow 단위로 진단·튜닝하려는 SRE·네트워크 엔지니어에게.