- Công cụ giúp theo dõi mọi yêu cầu mạng phát sinh trong container Docker
- Áp dụng khả năng của Wireshark vào môi trường container
- Nhờ đó có thể phân tích lưu lượng mạng của máy chủ backend theo thời gian thực và khắc phục sự cố trong môi trường production nhanh hơn
Tính năng chính
- Có thể dùng ngay mà không cần cấu hình riêng
- Chỉ cần thêm
subtrace run vào trước lệnh chạy máy chủ backend
- Không cần sửa mã nguồn
- Hỗ trợ mọi ngôn ngữ lập trình (Python, Node.js, Go, v.v.)
- Có thể xem toàn bộ payload, header, mã trạng thái và độ trễ của yêu cầu
- Overhead hiệu năng dưới 100µs
- Dựa trên Clickhouse
- Mã nguồn mở
Cách Subtrace hoạt động
- Chặn mọi system call Linux liên quan đến mạng bằng Seccomp BPF
- Proxy kết nối TCP để phân tích yêu cầu HTTP, rồi truyền chúng tới trình duyệt qua WebSocket
- Có thể quan sát trực quan các yêu cầu bằng tab Network của Chrome DevTools
- Không dựa trên log như Sentry hay OpenTelemetry, mà cho phép xem nguyên trạng mọi yêu cầu theo thời gian thực
Về việc đóng góp mã
- Subtrace là mã nguồn mở nhưng hiện chưa nhận Pull Request
- Do đặc thù startup, dự án được vận hành bởi một nhóm nhỏ và chưa đủ nguồn lực để quản lý cộng đồng mã nguồn mở một cách hiệu quả
- Chính sách này có thể thay đổi trong tương lai, và các yêu cầu tính năng cùng báo cáo lỗi luôn được hoan nghênh
2 bình luận
Phát hiện vấn đề bằng Falco hoặc linkerd, rồi khi cần thì phân tích bằng subtrace là được nhỉ~ :)
Ý kiến trên Hacker News
BPF_PROG_TYPE_CGROUP_SOCK, nhưng trong container thì hoàn toàn không hoạt động. Thật hay khi thấy việc chặn mọi system call liên quan lại hoạt động tốt