Skip to content

protobuf 嵌套 message 使用

cpp
/** 部分 proto 如下:
 * message Counter
 * {
 *     double value = 1;
 * }
 * 
 * message MetricBody
 * {
 *     MetricType type     = 1;  // 指标类型
 *     uint64 timestamp    = 2;  // 时间戳
 *     oneof M                   // 指标值
 *     {
 *         Counter counter     = 11;
 *         Gauge gauge         = 12;
 *         Histogram histogram = 13;
 *         Info info = 14;
 *     }
 * }
 * 
 * message MetricMsg
 * {
 *     MetricHead head = 1;
 *     MetricBody body = 2;
 * }
 */

errormgr::proto::MetricMsgVec metVec;

auto met = metVec.add_metmsg();
auto mhead = met->mutable_head();
auto mbody = met->mutable_body();

mhead->set_node("xx");
mhead->set_api_name("xxx");
mhead->set_name("xxxx");

mbody->set_type(errormgr::proto::MetricType::e_counter);
mbody->set_timestamp(tool::GetTimeStampUs());
mbody->mutable_counter()->set_value(1);

基于 VitePress 构建