ソースを参照

Feature #TASK_QT-18250 1、grpc-server时,maps根节点类型更新为rpc数据,不再新增rpcserver的子节点;2、grpc-client端的maps 节点的 method name更新为对应的url

rock 7 ヶ月 前
コミット
e60051d324

+ 5 - 5
containers/container_apm.go

@@ -138,11 +138,11 @@ func (c *Container) onL7RequestApm(pid uint32, fd uint64, timestamp uint64, r *l
 					trace.GrpcServerTraceStartEvent(r, c.GetAppInfo(), container_id)
 					c.SendEvent(trace, r.TraceId)
 
-					apmTrace, err := c.getOrInitTrace(r.TraceId)
-					if err == nil {
-						apmTrace.GrpcServerTraceQueryEvent(r, c.GetAppInfo())
-						c.SendEvent(apmTrace, r.TraceId)
-					}
+					// apmTrace, err := c.getOrInitTrace(r.TraceId)
+					// if err == nil {
+					// 	apmTrace.GrpcServerTraceQueryEvent(r, c.GetAppInfo())
+					// 	c.SendEvent(apmTrace, r.TraceId)
+					// }
 				}
 			}
 

+ 5 - 1
pkg/go.opentelemetry.io/otel/exporters/otlp/otlptrace/apm_exporter.go

@@ -317,7 +317,7 @@ func buildLevelFromEvent(sdl *RootDataT) {
 	mapSlice := []TimeMap{}
 
 	for i, v := range sdl.Maps {
-		if v.ServiceType == "APPLICATION" {
+		if v.ServiceType == "APPLICATION" || v.Level == 1 {
 			continue
 		}
 		nidMap[v.Nid] = &sdl.Maps[i]
@@ -730,6 +730,7 @@ func buildAppMapFromEvent(traceRoot *RootDataT, sd apmTraceSpan) int {
 			traceRoot.Uri, traceRoot.Parameters, _ = parseURIToParams(attr.Value.AsString())
 		case "rpc.uri":
 			traceRoot.Uri = attr.Value.AsString()
+			mNode.Uri = attr.Value.AsString()
 		case "http.method":
 			traceRoot.HttpMethod = attr.Value.AsString()
 		case "http.status_code":
@@ -769,10 +770,13 @@ func buildAppMapFromEvent(traceRoot *RootDataT, sd apmTraceSpan) int {
 			traceRoot.AppName = attr.Value.AsString()
 		case "server.service_name":
 			traceRoot.ServiceName = attr.Value.AsString()
+			mNode.ServiceName = attr.Value.AsString()
 		case "rpc.service_type":
 			traceRoot.ServiceType = RPC_SERVICE_TYPE
+			mNode.ServiceType = RPC_SERVICE_TYPE
 		case "rpc.oper_type":
 			traceRoot.OperType = "PROVIDER"
+			mNode.OperType = "PROVIDER"
 		case "server.app_id":
 			traceRoot.AppId = attr.Value.AsInt64()
 		case "server.agent_id":

+ 1 - 1
tracing/apm_tracing.go

@@ -659,7 +659,7 @@ func (t *Trace) GrpcClientTraceQueryEvent(r *l7.RequestData) {
 		attribute.Int("rpc.port", portInt),
 		attribute.String("rpc.ip", rpcIP),
 		attribute.String("rpc.oper_type", "CONSUMER"),
-		attribute.String("rpc.method", "test_method"),
+		attribute.String("rpc.method", string(r.Payload)),
 	)
 
 	t.appendTimestamp(&attr, r.StartAt, r.EndAt, r.Duration.Nanoseconds())