Skip to content

Commit c4becf4

Browse files
committed
feat: support sync mode for tracemap
1 parent daf0908 commit c4becf4

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

server/querier/app/distributed_tracing/model/model.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,6 @@ type TraceMap struct {
2929
}
3030

3131
type FlowMap struct {
32-
QueryCondition string `json:"query_condition"`
33-
TimeStart int `json:"time_start" binding:"required"`
34-
TimeEnd int `json:"time_end" binding:"required"`
35-
Debug bool `json:"debug"`
36-
Regions map[string]string `json:"regions" binding:"required"`
37-
TopoFrame TopoFrame `json:"topo_frame,omitempty"`
38-
Context context.Context
39-
OrgID string
32+
TraceMap
33+
TopoFrame TopoFrame `json:"topo_frame,omitempty"`
4034
}

server/querier/app/distributed_tracing/router/tracemap.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,12 @@ import (
3131
var log = logging.MustGetLogger("tracemap")
3232

3333
func TraceMapRouter(e *gin.Engine, cfg *config.QuerierConfig, generator *tracemap.TraceMapGenerator) {
34-
e.POST("/v1/trace_map", traceMap(cfg, generator))
34+
e.POST("/v1/trace_map", traceMap(cfg, generator, false))
35+
e.POST("/v1/trace_map/sync", traceMap(cfg, generator, true))
3536
e.POST("/v1/flow_map", flowMap(cfg, generator))
3637
}
3738

38-
func traceMap(cfg *config.QuerierConfig, generator *tracemap.TraceMapGenerator) gin.HandlerFunc {
39+
func traceMap(cfg *config.QuerierConfig, generator *tracemap.TraceMapGenerator, synchronous bool) gin.HandlerFunc {
3940
return gin.HandlerFunc(func(c *gin.Context) {
4041
var args model.TraceMap
4142

@@ -48,10 +49,15 @@ func traceMap(cfg *config.QuerierConfig, generator *tracemap.TraceMapGenerator)
4849
args.Context = c.Request.Context()
4950
args.OrgID = c.Request.Header.Get(common.HEADER_KEY_X_ORG_ID)
5051
c.Header("Content-Type", "application/json")
51-
done := make(chan bool)
52-
defer close(done)
53-
go tracemap.TraceMap(args, cfg, c, done, generator)
54-
<-done
52+
// support synchronous mode default: async
53+
if synchronous {
54+
tracemap.TraceMapSync(args, cfg, c, generator)
55+
} else {
56+
done := make(chan bool)
57+
defer close(done)
58+
go tracemap.TraceMapAsync(args, cfg, c, done, generator)
59+
<-done
60+
}
5561
})
5662
}
5763

server/querier/app/distributed_tracing/service/tracemap/tracemap.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,15 @@ import (
2222
"github.com/deepflowio/deepflow/server/querier/config"
2323
)
2424

25-
func TraceMap(args model.TraceMap, cfg *config.QuerierConfig, c *gin.Context, done chan bool, generator *TraceMapGenerator) {
25+
func TraceMapAsync(args model.TraceMap, cfg *config.QuerierConfig, c *gin.Context, done chan bool, generator *TraceMapGenerator) {
2626
done <- true
2727
return
2828
}
2929

30+
func TraceMapSync(args model.TraceMap, cfg *config.QuerierConfig, c *gin.Context, generator *TraceMapGenerator) {
31+
return
32+
}
33+
3034
func FlowMap(args model.FlowMap, cfg *config.QuerierConfig, c *gin.Context, generator *TraceMapGenerator) {
3135
return
3236
}

0 commit comments

Comments
 (0)