@@ -14,6 +14,7 @@ import (
14
14
"github.com/jaegertracing/jaeger/model"
15
15
"github.com/jaegertracing/jaeger/storage/dependencystore"
16
16
"github.com/jaegertracing/jaeger/storage/spanstore"
17
+
17
18
"github.com/timescale/promscale/pkg/log"
18
19
"github.com/timescale/promscale/pkg/pgmodel/metrics"
19
20
"github.com/timescale/promscale/pkg/pgxconn"
@@ -44,85 +45,98 @@ func (p *Query) SpanWriter() spanstore.Writer {
44
45
}
45
46
46
47
func (p * Query ) GetTrace (ctx context.Context , traceID model.TraceID ) (* model.Trace , error ) {
47
- metrics . RequestsTotal . With (prometheus. Labels { "subsystem" : "trace" , "handler" : "get_trace" , "code" : "" }). Inc ()
48
+ code := "2xx"
48
49
start := time .Now ()
50
+ defer func () {
51
+ metrics .RequestsTotal .With (prometheus.Labels {"type" : "trace" , "handler" : "Get_Trace" , "code" : code }).Inc ()
52
+ metrics .RequestsDuration .With (prometheus.Labels {"type" : "trace" , "handler" : "Get_Trace" , "code" : code }).Observe (time .Since (start ).Seconds ())
53
+ }()
49
54
res , err := getTrace (ctx , p .conn , traceID )
50
- if err == nil {
51
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_trace" , "code" : "200" }).Inc ()
52
- traceRequestsExec .Add (1 )
53
- metrics .RequestsDuration .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_trace" }).Observe (time .Since (start ).Seconds ())
54
- } else {
55
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_trace" , "code" : "500" }).Inc ()
55
+ if err != nil {
56
+ code = "5xx"
57
+ return nil , logError (err )
56
58
}
57
- return res , logError (err )
59
+ traceRequestsExec .Add (1 )
60
+ return res , nil
58
61
}
59
62
60
63
func (p * Query ) GetServices (ctx context.Context ) ([]string , error ) {
61
- metrics . RequestsTotal . With (prometheus. Labels { "subsystem" : "trace" , "handler" : "get_services" , "code" : "" }). Inc ()
64
+ code := "2xx"
62
65
start := time .Now ()
66
+ defer func () {
67
+ metrics .RequestsTotal .With (prometheus.Labels {"type" : "trace" , "handler" : "Get_Services" , "code" : code }).Inc ()
68
+ metrics .RequestsDuration .With (prometheus.Labels {"type" : "trace" , "handler" : "Get_Services" , "code" : code }).Observe (time .Since (start ).Seconds ())
69
+ }()
63
70
res , err := getServices (ctx , p .conn )
64
- if err == nil {
65
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_services" , "code" : "200" }).Inc ()
66
- metrics .RequestsDuration .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_services" }).Observe (time .Since (start ).Seconds ())
67
- } else {
68
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_services" , "code" : "500" }).Inc ()
71
+ if err != nil {
72
+ code = "5xx"
73
+ return nil , logError (err )
69
74
}
70
- return res , logError ( err )
75
+ return res , nil
71
76
}
72
77
73
78
func (p * Query ) GetOperations (ctx context.Context , query spanstore.OperationQueryParameters ) ([]spanstore.Operation , error ) {
74
- metrics . RequestsTotal . With (prometheus. Labels { "subsystem" : "trace" , "handler" : "get_operations" , "code" : "" }). Inc ()
79
+ code := "2xx"
75
80
start := time .Now ()
81
+ defer func () {
82
+ metrics .RequestsTotal .With (prometheus.Labels {"type" : "trace" , "handler" : "Get_Operations" , "code" : code }).Inc ()
83
+ metrics .RequestsDuration .With (prometheus.Labels {"type" : "trace" , "handler" : "Get_Operations" , "code" : code }).Observe (time .Since (start ).Seconds ())
84
+ }()
76
85
res , err := getOperations (ctx , p .conn , query )
77
- if err == nil {
78
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_operations" , "code" : "200" }).Inc ()
79
- metrics .RequestsDuration .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_operations" }).Observe (time .Since (start ).Seconds ())
80
- } else {
81
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_operations" , "code" : "500" }).Inc ()
86
+ if err != nil {
87
+ code = "5xx"
88
+ return nil , logError (err )
82
89
}
83
- return res , logError ( err )
90
+ return res , nil
84
91
}
85
92
86
93
func (p * Query ) FindTraces (ctx context.Context , query * spanstore.TraceQueryParameters ) ([]* model.Trace , error ) {
87
- metrics . RequestsTotal . With (prometheus. Labels { "subsystem" : "trace" , "handler" : "find_traces" , "code" : "" }). Inc ()
94
+ code := "2xx"
88
95
start := time .Now ()
96
+ defer func () {
97
+ metrics .RequestsTotal .With (prometheus.Labels {"type" : "trace" , "handler" : "Find_Traces" , "code" : code }).Inc ()
98
+ metrics .RequestsDuration .With (prometheus.Labels {"type" : "trace" , "handler" : "Find_Traces" , "code" : code }).Observe (time .Since (start ).Seconds ())
99
+ }()
89
100
res , err := findTraces (ctx , p .conn , query )
90
- if err == nil {
91
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "find_traces" , "code" : "200" }).Inc ()
92
- traceRequestsExec .Add (1 )
93
- metrics .RequestsDuration .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "find_traces" }).Observe (time .Since (start ).Seconds ())
94
- } else {
95
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "find_traces" , "code" : "500" }).Inc ()
101
+ if err != nil {
102
+ code = "5xx"
103
+ return nil , logError (err )
96
104
}
97
- return res , logError (err )
105
+ traceRequestsExec .Add (1 )
106
+ return res , nil
98
107
}
99
108
100
109
func (p * Query ) FindTraceIDs (ctx context.Context , query * spanstore.TraceQueryParameters ) ([]model.TraceID , error ) {
101
- metrics . RequestsTotal . With (prometheus. Labels { "subsystem" : "trace" , "handler" : "find_trace_ids" , "code" : "" }). Inc ()
110
+ code := "2xx"
102
111
start := time .Now ()
112
+ defer func () {
113
+ metrics .RequestsTotal .With (prometheus.Labels {"type" : "trace" , "handler" : "Find_Trace_IDs" , "code" : code }).Inc ()
114
+ metrics .RequestsDuration .With (prometheus.Labels {"type" : "trace" , "handler" : "Find_Trace_IDs" , "code" : code }).Observe (time .Since (start ).Seconds ())
115
+ }()
103
116
res , err := findTraceIDs (ctx , p .conn , query )
104
- if err == nil {
105
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "find_trace_ids" , "code" : "200" }).Inc ()
106
- traceRequestsExec .Add (1 )
107
- metrics .RequestsDuration .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "find_trace_ids" }).Observe (time .Since (start ).Seconds ())
108
- } else {
109
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "find_trace_ids" , "code" : "500" }).Inc ()
117
+ if err != nil {
118
+ code = "5xx"
119
+ return nil , logError (err )
110
120
}
111
- return res , logError (err )
121
+ traceRequestsExec .Add (1 )
122
+ return res , nil
112
123
}
113
124
114
125
func (p * Query ) GetDependencies (ctx context.Context , endTs time.Time , lookback time.Duration ) ([]model.DependencyLink , error ) {
115
- metrics . RequestsTotal . With (prometheus. Labels { "subsystem" : "trace" , "handler" : "get_dependencies" , "code" : "" }). Inc ()
126
+ code := "2xx"
116
127
start := time .Now ()
128
+ defer func () {
129
+ metrics .RequestsTotal .With (prometheus.Labels {"type" : "trace" , "handler" : "Get_Dependencies" , "code" : code }).Inc ()
130
+ metrics .RequestsDuration .With (prometheus.Labels {"type" : "trace" , "handler" : "Get_Dependencies" , "code" : code }).Observe (time .Since (start ).Seconds ())
131
+ }()
132
+
117
133
res , err := getDependencies (ctx , p .conn , endTs , lookback )
118
- if err == nil {
119
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_dependencies" , "code" : "200" }).Inc ()
120
- dependencyRequestsExec .Add (1 )
121
- metrics .RequestsDuration .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_dependencies" }).Observe (time .Since (start ).Seconds ())
122
- } else {
123
- metrics .RequestsTotal .With (prometheus.Labels {"subsystem" : "trace" , "handler" : "get_dependencies" , "code" : "500" }).Inc ()
134
+ if err != nil {
135
+ code = "5xx"
136
+ return nil , logError (err )
124
137
}
125
- return res , logError (err )
138
+ dependencyRequestsExec .Add (1 )
139
+ return res , nil
126
140
}
127
141
128
142
func logError (err error ) error {
0 commit comments