|
|
@@ -145,15 +145,15 @@ func (c *Container) onL7RequestApm(pid uint32, fd uint64, timestamp uint64, r *l
|
|
|
trace := tracing.NewTrace(string(c.id), conn.ActualDest)
|
|
|
switch r.Protocol {
|
|
|
case l7.ProtocolHTTP:
|
|
|
- fmt.Println("l7.ProtocolHTTP", r.TraceId)
|
|
|
- //stats.observe(r.Status.Http(), "", r.Duration)
|
|
|
- method, path, hostIp, port := l7.ParseHttpHost(r.Payload)
|
|
|
- //trace.HttpRequest(method, path, r.Status, r.Duration)
|
|
|
-
|
|
|
- apmTrace, ok := c.getTrace(r.TraceId)
|
|
|
- if ok {
|
|
|
- apmTrace.HttpTraceRequest(method, path, hostIp, port, r)
|
|
|
- }
|
|
|
+ //fmt.Println("l7.ProtocolHTTP", r.TraceId)
|
|
|
+ ////stats.observe(r.Status.Http(), "", r.Duration)
|
|
|
+ //method, path, hostIp, port := l7.ParseHttpHost(r.Payload)
|
|
|
+ ////trace.HttpRequest(method, path, r.Status, r.Duration)
|
|
|
+ //
|
|
|
+ //apmTrace, ok := c.getTrace(r.TraceId)
|
|
|
+ //if ok {
|
|
|
+ // apmTrace.HttpTraceRequest(method, path, hostIp, port, r)
|
|
|
+ //}
|
|
|
|
|
|
case l7.ProtocolHTTP2:
|
|
|
if conn.http2Parser == nil {
|
|
|
@@ -165,14 +165,14 @@ func (c *Container) onL7RequestApm(pid uint32, fd uint64, timestamp uint64, r *l
|
|
|
trace.Http2Request(req.Method, req.Path, req.Scheme, req.Status, req.Duration)
|
|
|
}
|
|
|
case l7.ProtocolPostgres:
|
|
|
- if r.Method != l7.MethodStatementClose {
|
|
|
- stats.observe(r.Status.String(), "", r.Duration)
|
|
|
- }
|
|
|
- if conn.postgresParser == nil {
|
|
|
- conn.postgresParser = l7.NewPostgresParser()
|
|
|
- }
|
|
|
- query := conn.postgresParser.Parse(r.Payload)
|
|
|
- trace.PostgresQuery(query, r.Status.Error(), r.Duration)
|
|
|
+ //if r.Method != l7.MethodStatementClose {
|
|
|
+ // stats.observe(r.Status.String(), "", r.Duration)
|
|
|
+ //}
|
|
|
+ //if conn.postgresParser == nil {
|
|
|
+ // conn.postgresParser = l7.NewPostgresParser()
|
|
|
+ //}
|
|
|
+ //query := conn.postgresParser.Parse(r.Payload)
|
|
|
+ //trace.PostgresQuery(query, r.Status.Error(), r.Duration)
|
|
|
case l7.ProtocolMysql:
|
|
|
//fmt.Println("mysql mysql")
|
|
|
//fmt.Println(conn)
|
|
|
@@ -185,39 +185,41 @@ func (c *Container) onL7RequestApm(pid uint32, fd uint64, timestamp uint64, r *l
|
|
|
query := conn.mysqlParser.Parse(r.Payload, r.StatementId)
|
|
|
//trace.MysqlQuery(query, r.Status.Error(), r.Duration)
|
|
|
|
|
|
- apmTrace, ok := c.getTrace(r.TraceId)
|
|
|
+ //apmTrace, ok := c.getTrace(r.TraceId)
|
|
|
+ apmTrace, err := c.getOrInitTrace(r.TraceId)
|
|
|
//fmt.Println("mysql r.TraceId:", r.TraceId)
|
|
|
//fmt.Println("ok:", ok)
|
|
|
//fmt.Println("traceMap:", len(c.traceMap))
|
|
|
- if ok {
|
|
|
- apmTrace.MysqlTraceQuery(query, r.Status.Error(), r.Duration, conn.ActualDest)
|
|
|
+ if err == nil {
|
|
|
+ //apmTrace.MysqlTraceQuery(query, r.Status.Error(), r.Duration, conn.ActualDest)
|
|
|
+ apmTrace.MysqlTraceQueryEvent(query, r, conn.ActualDest)
|
|
|
+ c.SendEvent(apmTrace, r.TraceId)
|
|
|
}
|
|
|
case l7.ProtocolMemcached:
|
|
|
- stats.observe(r.Status.String(), "", r.Duration)
|
|
|
- cmd, items := l7.ParseMemcached(r.Payload)
|
|
|
- trace.MemcachedQuery(cmd, items, r.Status.Error(), r.Duration)
|
|
|
+ //stats.observe(r.Status.String(), "", r.Duration)
|
|
|
+ //cmd, items := l7.ParseMemcached(r.Payload)
|
|
|
+ //trace.MemcachedQuery(cmd, items, r.Status.Error(), r.Duration)
|
|
|
case l7.ProtocolRedis:
|
|
|
- fmt.Println("redis redis")
|
|
|
stats.observe(r.Status.String(), "", r.Duration)
|
|
|
cmd, args := l7.ParseRedis(r.Payload)
|
|
|
fmt.Println("cmd", cmd)
|
|
|
fmt.Println("args", args)
|
|
|
- apmTrace, ok := c.getTrace(r.TraceId)
|
|
|
- fmt.Println("redis r.TraceId:", r.TraceId)
|
|
|
- fmt.Println("ok:", ok)
|
|
|
- fmt.Println("traceMap:", len(c.traceMap))
|
|
|
- if ok {
|
|
|
- apmTrace.RedisTraceQuery(cmd, args, r.Status.Error(), r.Duration)
|
|
|
+ //apmTrace, ok := c.getTrace(r.TraceId)
|
|
|
+ apmTrace, err := c.getOrInitTrace(r.TraceId)
|
|
|
+ if err == nil {
|
|
|
+ //apmTrace.RedisTraceQuery(cmd, args, r.Status.Error(), r.Duration)
|
|
|
+ apmTrace.RedisTraceQueryEvent(cmd, args, r)
|
|
|
+ c.SendEvent(apmTrace, r.TraceId)
|
|
|
}
|
|
|
//trace.RedisQuery(cmd, args, r.Status.Error(), r.Duration)
|
|
|
case l7.ProtocolMongo:
|
|
|
- stats.observe(r.Status.String(), "", r.Duration)
|
|
|
- query := l7.ParseMongo(r.Payload)
|
|
|
- trace.MongoQuery(query, r.Status.Error(), r.Duration)
|
|
|
+ //stats.observe(r.Status.String(), "", r.Duration)
|
|
|
+ //query := l7.ParseMongo(r.Payload)
|
|
|
+ //trace.MongoQuery(query, r.Status.Error(), r.Duration)
|
|
|
case l7.ProtocolKafka, l7.ProtocolCassandra:
|
|
|
- stats.observe(r.Status.String(), "", r.Duration)
|
|
|
+ //stats.observe(r.Status.String(), "", r.Duration)
|
|
|
case l7.ProtocolRabbitmq, l7.ProtocolNats:
|
|
|
- stats.observe(r.Status.String(), r.Method.String(), 0)
|
|
|
+ //stats.observe(r.Status.String(), r.Method.String(), 0)
|
|
|
}
|
|
|
return nil
|
|
|
}
|