3 ms·
(note: I'm not a maintainer in the Go SIG so I can't speak towards these issues with much authority) Definitely interested in how things can be improved here.
by phillipcarter 4y ago
(note: I'm not a maintainer in the Go SIG so I can't speak towards these issues with much authority)
Definitely interested in how things can be improved here. What are you generally looking to accomplish? Hopefully it's just a matter of docs not accurately expressing what's possible today (a consistent theme for quite some time that's getting resolved, but it takes time).
As for the dependency issues, is this something you'd have the time to file an issue about[0], or make an agenda item for the next Go SIG? At the end of each SIG there's also a moment where the SIG leader asks for stories about adoption (good or bad) and this would clearly count. I'd like to think that these issues are solvable, or at least solvable enough to make it worth it for you to adopt.
[0]: https://github.com/open-telemetry/opentelemetry-go/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc https://github.com/open-telemetry/opentelemetry-go/issues?q=...
- jen20 4y agoThanks for the thoughtful response. I think the aim is to have a single "sink" for metrics, logs and tracing, and it's clear that OpenTelemetry is aiming to be that. Ideally from a single "go get", one should be able to pull in a library without additional dependencies that: - permits recording of structured logs (perhaps the stdlib interface under discussion will help here!). From a personal perspective I'd rather not have an API that accepts key-value pairs as varargs, but if that was the only thing available I'd take it I think. - permits recording of counters, gauges, timers and histograms, - permits recording of spans, and associating both logs and metrics with those spans. The Go library README shows the logs section as "frozen" and states that no pull requests to improve logging are being accepted. With no visibility into the process (which is, to be clear, because I haven't looked into it and not the fault of the project per se!), it looks like this might be an option in future but not today?
- phillipcarter 4y agoI see! Yeah, this is one where where otel-go is a lot harder to use, but it's something the SIG is looking at. A coworker of mine is helping drive a design that's sort of an "easy button" to configure all the things with the least-surprising defaults[0] and we're seeing how people like it in our SDK distribution that uses it[1]. I hope that sometime soon we'll have the design polished-up enough to get merged in. Like most OSS projects, it'll take some time but I'm confident we can get it done. The main challenge is that there's a large variety of use cases to fulfill (e.g., someone wants custom context propagation, a custom span processor, and export over HTTP+json but not HTTP+protobuf) and today the answer to that is that you have to pull in all the libraries for all the things you need. It's a lot more energy you need to expend to get started with all of this than it needs to be. As for logging support in the Go SDK, it's frozen mostly just due to lack of bandwidth and a need to finish what's already been started. Metrics have proven to be much more difficult and time-consuming to implement correctly across all languages, with Go being impacted harder than other languages (e.g., Python and .NET). I think you can expect logging integrations in the near-ish future though. This is great feedback. I'll pass it on folks who haven't seen it. Thank you! And please feel free to file issues about all the things that rub you the wrong way [0]: https://github.com/open-telemetry/opentelemetry-go-contrib/pull/2592 https://github.com/open-telemetry/opentelemetry-go-contrib/p... [1]: https://github.com/honeycombio/honeycomb-opentelemetry-go https://github.com/honeycombio/honeycomb-opentelemetry-go