Comments (3)
What is the reason people who need this can't do the patching themselves?
A better question would be - Is this the default experience we want to give users of OTLP? We already patch for the collector in various scenarios where it's proto generation doesn't support proto3 concepts.
I would rather not do it. I prefer to minimize the complexity here.
What complexity are we optimising for? Today, we require users to understand they need to handle key conflicts themselves. Declaring it a map
actually would let proto codegen do that for them.
I'm not suggesting we SHOULD make this change, but I do think there's larger concerns here. I'm more worried about generated code stability and overall user experience of generated code. From that view I see the trade offs as:
- map<> representation seems easier to consume + less confusing/complex.
- map<> representation seems more likely to cause compat issues across codgen versions.
from opentelemetry-proto.
But could we provide a mechanically-generated variant of the protobufs that use maps instead, for people who want to use them?
I would rather not do it. I prefer to minimize the complexity here.
people would feel confident using them (rather than patching the protos manually)
What is the reason people who need this can't do the patching themselves?
from opentelemetry-proto.
We already patch for the collector in various scenarios where it's proto generation doesn't support proto3 concepts.
That is not the only reason we patch. We also need to add Gogoproto-specific annotations. This to me shows that people's needs for patching may be different. I think it is a slippery slope to try to publish all possible permutations of patched versions for everyone's needs. I don't see the data that tells this specific variety of the proto (with maps) is highly desirable and must be published by us and for example the patching needed by the Collector is not.
From that view I see the trade offs as...
Also maps are slower to serialize/deserialize (I benchmarked in Go).
from opentelemetry-proto.
Related Issues (20)
- Enum element naming consistency HOT 1
- Conflicting requirements in OTLP JSON field names HOT 14
- Schema support for span with key-value attributes HOT 2
- Question about ResourceSpans HOT 1
- Mention 1.0.0 in CHANGELOG.md? HOT 3
- Difference between proto and SDK HOT 2
- Why TraceID and SpanID are defined []byte type? HOT 4
- AnyValue diverging from spec on website HOT 2
- The comment of schema_url doesn't describe it's purpose.
- Clarify whether OTLP/gRPC codes should cover both client and server HOT 1
- Unclear whether Span.flags represents span's parent or own flags HOT 10
- Fix releasing notes HOT 3
- Clarify meaning of *DNS name prefix* in protobuf code comment for metric name
- Generated OpenAPI files wrongly encode enums
- Improve metrics.proto by mentioning Resource Attributes and Scope HOT 1
- How to use Java service to receive data in the OpenTelemetry (Otel) protocol? HOT 4
- Supporting JSON as-is encoding in OTLP HOT 2
- SPAN_FLAGS_TRACE_FLAGS_MASK is not defined HOT 3
- Fail to push limit HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opentelemetry-proto.