El paquete httptrace de la biblioteca estándar de Go permite inspeccionar los puntos internos de una petición HTTP saliente: resolución DNS, adquisición de conexión, handshake TLS, envío de bytes y recepción del primer byte. A diferencia de otros lenguajes, no usa una interfaz Tracer sino que se integra mediante el contexto: se crea un ClientTrace con funciones opcionales para cada evento, se adjunta al contexto de la petición y el transporte lo extrae automáticamente. Esto permite que el trazado viaje con la petición y sea seguro para concurrencia. El artículo muestra dos aplicaciones prácticas: un CLI al estilo curl --trace que desglosa tiempos (DNS, TCP, TLS, proceso servidor, transferencia) y un RoundTripper reutilizable que registra automáticamente las métricas de cada petición. Se destacan consideraciones como que DNSStart/DNSDone solo se disparan si el resolver de Go realiza la resolución, que TLS hooks solo en HTTPS, y que al componer traces con WithClientTrace los hooks se acumulan en lugar de reemplazarse.
Seguimiento de peticiones HTTP con net/http/httptrace de Go
