HTTPSnoop is a Go package for capturing HTTP metrics from applications built with the standard net/http stack. It wraps existing http.Handler implementations so developers can measure requests without rewriting application logic. Recorded metrics include response status codes, response duration, and the number of bytes written. The package carefully preserves optional http.ResponseWriter interfaces that middleware and handlers may depend on. This avoids subtle compatibility problems that can occur with simplistic custom wrappers. A lower-level wrapping API is also available when developers need custom instrumentation behavior. It is particularly useful for access logging, monitoring middleware, performance measurement, and HTTP observability.
Features
- HTTP status code capture
- Request duration measurement
- Response byte-count tracking
- Transparent http.Handler instrumentation
- ResponseWriter interface preservation
- Low-level custom wrapping API