Closed sfc-gh-sili closed 11 months ago
What functionality is your SpanExporter providing that isn't available in OtlpGrpcSpanExporter
or OtlpHttpSpanExporter
?
If you really need to provide your own SpanExporter, I would suggest excluding the okhttp dependency. The code in :exporters:otlp:common
is meant for internal use only and I think it should stay that way.
What functionality is your SpanExporter providing that isn't available in OtlpGrpcSpanExporter or OtlpHttpSpanExporter?
- We run user defined functions in a sandbox environment that has no access to the network, so neither GRPC or HTTP works.
- We auto-instrument spans and tie those to user defined functions. This means we are sending a bunch of meta data (e.g. function ID, user ID) with the span proto.
Essentially we would like to stick to the OTLP proto standard, but sending protos via Grpc or Http doesn't work for our use case
Interesting. Could you use the OtlpJsonLoggingSpanExporter and parse the OTLP JSON encoded content from the logs?
Yes that could definitely be an option, but it takes another layer of parsing which we prefer not to have.
Since last commenting on this, we've done some refactoring and exporter-otlp-common
no longer includes a dependency on okhttp.
Closing because the original ask is completed, although I still don't recommend using the marshalers because they're in internal classes and not subject to our API compatibility guarantees.
TL;DR; Can we have (Java object -> proto) code in a standalone package instead of in
exporter-otlp-common
which pulls in okhttps?Is your feature request related to a problem? Please describe.
We are implementing our own SpanExporter that outputs spans in OTLP format, and we are trying to reuse the Java object -> proto encoding code instead of writing our own. The bare minimum package that includes the objectToProto() encoding would be
exporter-otlp-common
, but it pulls in okhttp3 as its dependency.Describe the solution you'd like Is it possible to have Java object -> proto encoding code released in a standalone package instead of as part of OtlpGrpcExporter or OtlpHttpExporter?
Describe alternatives you've considered A couple of alternatives we are exploring right now:
Additional context We will be running user defined functions in the same environment, so we are extra cautious about every single new dependency.