Hacker News
Tracing HTTP Requests with Go's net/HTTP/httptrace
139 points by speckx
ago
|
9 comments
melodyogonna
|next
[-]
Little things like this are why Go is great. People make arguments against Go based just on available language syntax, but languages are more than just syntax; it is about the end-to-end development flow. I actually think C# and the .NET platform are the only other ecosystem that looks at development the same way. In most other ecosystems, you almost always need to step outside what the built-in language platform provides for any moderately complicated use-case.
blainsmith
|root
|parent
|next
[-]
I agree with you about C# there. I don't use it really at all, but the times I did it felt like I was writing Go with how nice the stdlib was and that I could just use the dotnet CLI on Linux too. It was pleasant and productive to use.
systems
|root
|parent
|previous
[-]
do you mean use none core libraries / 3rd party libs
or using libraries from different languages like how some libs or frameworks from different languages create bindings to python libs
many C# libs are available via Nugets, which are not more or less complicated than other languages package managers
i personally think C# package management is more obscure, compared to other languages
Xeoncross
|next
|previous
[-]
Nice! Tracking connection reuse is really important if you are running any kind of benchmarks or comparisons both as the author of a new tool / service and as the person evaluating different options or client libraries.
I've hit a lot of walls not ensuring I was using connection pools correctly even when the service I'm calling was local/docker. File descriptor exhaustion happens often if you're not careful.
blainsmith
|next
|previous
[-]
Author here... Thanks for sharing this. It has been fun to use while we get ready to launch https://probes.dev with tracing being core to the service.
s-macke
|next
|previous
[-]
I wish I had known this two years ago. I ended up writing my own embedded connection struct to trace these things [0].
type Connection struct {
net.Conn
OnEventCallback func(clientClosed bool, serverClosed bool, err error)
}
[0] https://github.com/s-macke/SlapperX/blob/master/src/tracing/...