You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are several types that are presently missing in OpenTelemetry typing system. For example, blob or byte array - aka uint8_t[] . These types are available in other systems, e.g. MsgPack, ETW, etc.. However, not defined in OpenTelemetry spec.
One problem we face is that the code that deals with common::AttributeValue may require a MAJOR version update and a hassle of reworking the public API, if we freeze it in time at v1 and it turns out that we cannot safely enhance it by maintaining ABI stability guarantee.
It seems like this would have worked, as in - it would have worked forward-compatible with C++11 variant using anonymous union . But need to explore what happens precisely with C++ exported function / method signatures when we add new type.
In other words, (our optimistic) expectation is that adding new byte array type to common::AttributeValue in SDK v1.2 should work, and should not break the apps that were compiled against SDK v1.1. The goal of this issue is to verify: compile the SDK with new types and compare using ABI checker, e.g. this one: https://lvc.github.io/abi-compliance-checker/
The text was updated successfully, but these errors were encountered:
message AnyValue {
// The value is one of the listed fields. It is valid for all values to be unspecified
// in which case this AnyValue is considered to be "null".
oneof value {
string string_value = 1;
bool bool_value = 2;
int64 int_value = 3;
double double_value = 4;
ArrayValue array_value = 5;
KeyValueList kvlist_value = 6;
}
}
Any changes in opentelemetry-proto will be directly affecting implementation across all the languages, and so I don't foresee them adding any new data-type in above after bumping up MAJOR version.
Confirmed that it will break ABI compat. For that reason @pyohannes kept back the reserved types for future use, so we don't need to adjust the API surface when the types get added to the spec in future. There is also a precedent of C# SDK supporting some extra types already. So we should be good for now. I'm gonna close this issue, since all types we immediately need have been kept on API.
There are several types that are presently missing in OpenTelemetry typing system. For example,
blob
orbyte array
- akauint8_t[]
. These types are available in other systems, e.g. MsgPack, ETW, etc.. However, not defined in OpenTelemetry spec.Related spec issue that is advocating for addition of byte arrays:
open-telemetry/opentelemetry-specification#780
One problem we face is that the code that deals with
common::AttributeValue
may require aMAJOR
version update and a hassle of reworking the public API, if we freeze it in time atv1
and it turns out that we cannot safely enhance it by maintaining ABI stability guarantee.It seems like this would have worked, as in - it would have worked forward-compatible with C++11 variant using anonymous union . But need to explore what happens precisely with C++ exported function / method signatures when we add new type.
In other words, (our optimistic) expectation is that adding new byte array type to
common::AttributeValue
in SDK v1.2 should work, and should not break the apps that were compiled against SDK v1.1. The goal of this issue is to verify: compile the SDK with new types and compare using ABI checker, e.g. this one:https://lvc.github.io/abi-compliance-checker/
The text was updated successfully, but these errors were encountered: