Skip to content

Missing or incorrect definitions for Metric message  #114

@lothar7

Description

@lothar7

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions