1
0
Эх сурвалжийг харах

Fix : call RPCModule::server_task_end() after serialize_meta()

holmes1412 2 сар өмнө
parent
commit
c186696c72

+ 1 - 0
src/module/rpc_metrics_filter.cc

@@ -726,6 +726,7 @@ void RPCMetricsOTel::Collector::collect_counter_each(const std::string& label,
 
 	if (!label.empty())
 	{
+		it = this->label_map.find(label);
 		if (it == this->label_map.end())
 		{
 			this->add_counter_label(label);

+ 1 - 1
src/module/rpc_trace_module.h

@@ -262,7 +262,7 @@ bool RPCTraceModule<STASK, CTASK>::server_end(SubTask *task,
 		return true;
 	}
 
-	TraceModule::client_end_response(resp, data);
+	TraceModule::server_end_response(resp, data);
 
 	return true;
 }

+ 8 - 8
src/rpc_task.inl

@@ -292,14 +292,6 @@ CommMessageOut *RPCServerTask<RPCREQ, RPCRESP>::message_out()
 	if (status_code == RPCStatusOK)
 		status_code = this->resp.compress();
 
-	// for server, this is the where series->module_data stored
-	RPCModuleData *data = this->mutable_module_data();
-
-	for (auto *module : modules_)
-		module->server_task_end(this, *data);
-
-	this->resp.set_meta_module_data(*data);
-
 	if (status_code == RPCStatusOK)
 	{
 		if (!this->resp.serialize_meta())
@@ -309,6 +301,14 @@ CommMessageOut *RPCServerTask<RPCREQ, RPCRESP>::message_out()
 	if (this->resp.get_status_code() == RPCStatusOK)
 		this->resp.set_status_code(status_code);
 
+	// for server, this is the where series->module_data stored
+	RPCModuleData *data = this->mutable_module_data();
+
+	for (auto *module : modules_)
+		module->server_task_end(this, *data);
+
+	this->resp.set_meta_module_data(*data);
+
 	if (status_code == RPCStatusOK)
 		return this->WFServerTask<RPCREQ, RPCRESP>::message_out();
 

+ 1 - 0
tools/templates/config/config_full.cc

@@ -405,6 +405,7 @@ void RPCConfig::load_trace()
                 report_interval = it["report_interval_ms"];
 
             auto *filter = new RPCTraceOpenTelemetry(url,
+													 OTLP_TRACES_PATH,
                                                      redirect_max,
                                                      retry_max,
                                                      spans_per_second,