syntax = "proto3"; //proto v3. package telemetry; //package name message Telemetry { //telemetry message structure definition. string node_id_str = 1; //The hostname of the device is the unique identifier of the device in the network, which can be configured and modified by the user. It is encoded as 1 in GPB encoding. string subscription_id_str = 2; //Subscription name, the subscription name when the subscription is statically configured string sensor_path = 3; //Subscription path uint64 collection_id = 4; //Identify sampling rounds uint64 collection_start_time = 5; //Identify the start time of the sampling round uint64 msg_timestamp = 6; //Timestamp when this message was generated TelemetryGPBTable data_gpb = 7; //data carried. uint64 collection_end_time = 8; //Identify the end time of the sampling round uint32 current_period = 9; //Sampling accuracy, in milliseconds string except_desc = 10; //Exception description information, which is used to report exception information when sampling exceptions. string product_name = 11; //Product name. Encoding encoding = 12; //Data encoding. enum Encoding { Encoding_GPB = 0; }; } message TelemetryGPBTable { //TelemetryGPBTable message structure definition repeated TelemetryRowGPB row = 1; //Array definition, the identification data is the repetition of the TelemetryRowGPB structure. } message TelemetryRowGPB { uint64 timestamp = 1; //Timestamp at which the current instance was sampled. bytes content = 11; //The sampled instance data carried is encoded as 11 in GPB encoding. It is necessary to combine the sensor_path field to determine which proto file will be encoded here. }