-
Notifications
You must be signed in to change notification settings - Fork 42
Description
The proto definition of the Metric message seems to be missing or have incorrect definition.
The int_value is defined as uint32, long_value is defined as uint64 and there is no corresponding signed int or long value.
The specification defines that the datatype field for the metric message can be all the supported data types described by the standard - including all variants of int and long.
Here is the part of the metric message
oneof value
{
uint32 int_value = 10;
uint64 long_value = 11;
float float_value = 12;
double double_value = 13;
bool boolean_value = 14;
string string_value = 15;
bytes bytes_value = 16; // Bytes, File
DataSet dataset_value = 17;
Template template_value = 18;
MetricValueExtension extension_value = 19;
}
Ideally the int_value and long_value should have their datatype changed since it seems misleading to call it int_value while the datatype is unsigned. In addition the message format should be updated to include signed versions of int and long as a minimum. for example
oneof value
{
...
int32 int32_value = 20;
int64 int64_value = 21;
}
Or have I misunderstood something here as to why the proto specification is defined like this?