Explorar el Código

Feature #TASK_QT-12870 EBPF达梦数据库请求统计

Tom.Li hace 1 año
padre
commit
cda67fcf19
Se han modificado 2 ficheros con 16 adiciones y 9 borrados
  1. 14 9
      containers/container_apm.go
  2. 2 0
      containers/metrics.go

+ 14 - 9
containers/container_apm.go

@@ -197,15 +197,20 @@ func (c *Container) onL7RequestApm(pid uint32, fd uint64, timestamp uint64, r *l
 	case l7.ProtocolDM:
 		fmt.Println("---- onL7RequestApm ProtocolDM  start ---->")
 		fmt.Println("-------dm r.Status :", r.Status)
-		if conn.dmParser == nil {
-			conn.dmParser = l7.NewDmParser()
-		}
-		query := conn.dmParser.Parse(r.Payload, r.StatementId)
-		apmTrace, err := c.getOrInitTrace(r.TraceId)
-		fmt.Println("-------dm r.TraceId:", r.TraceId)
-		if err == nil {
-			apmTrace.DmTraceQueryEvent(query, r, conn.ActualDest)
-			c.SendEvent(apmTrace, r.TraceId)
+		//统计dm的query次数
+		stats.observe(r.Status.String(), "", r.Duration)
+		//是否发送数据
+		if c.l7Attach && c.valuableTrace(r.TraceId) {
+			if conn.dmParser == nil {
+				conn.dmParser = l7.NewDmParser()
+			}
+			query := conn.dmParser.Parse(r.Payload, r.StatementId)
+			apmTrace, err := c.getOrInitTrace(r.TraceId)
+			fmt.Println("-------dm r.TraceId:", r.TraceId)
+			if err == nil {
+				apmTrace.DmTraceQueryEvent(query, r, conn.ActualDest)
+				c.SendEvent(apmTrace, r.TraceId)
+			}
 		}
 		fmt.Println("---- onL7RequestApm ProtocolDM  end <----")
 	case l7.ProtocolMemcached:

+ 2 - 0
containers/metrics.go

@@ -104,6 +104,7 @@ var (
 		l7.ProtocolNats:      {Name: "container_nats_messages_total", Help: "Total number of NATS messages produced or consumed by the container"},
 		l7.ProtocolDubbo2:    {Name: "container_dubbo_requests_total", Help: "Total number of outbound DUBBO requests"},
 		l7.ProtocolDNS:       {Name: "container_dns_requests_total", Help: "Total number of outbound DNS requests"},
+		l7.ProtocolDM:        {Name: "container_dm_queries_total", Help: "Total number of outbound DaMeng requests"},
 	}
 	L7Latency = map[l7.Protocol]prometheus.HistogramOpts{
 		l7.ProtocolHTTP:      {Name: "container_http_requests_duration_seconds_total", Help: "Histogram of the response time for each outbound HTTP request"},
@@ -116,6 +117,7 @@ var (
 		l7.ProtocolCassandra: {Name: "container_cassandra_queries_duration_seconds_total", Help: "Histogram of the execution time for each outbound Cassandra request"},
 		l7.ProtocolDubbo2:    {Name: "container_dubbo_requests_duration_seconds_total", Help: "Histogram of the response time for each outbound DUBBO request"},
 		l7.ProtocolDNS:       {Name: "container_dns_requests_duration_seconds_total", Help: "Histogram of the response time for each outbound DNS request"},
+		l7.ProtocolDM:        {Name: "container_dm_queries_duration_seconds_total", Help: "Histogram of the execution time for each outbound DaMeng query"},
 	}
 )