(ctx context.Context, logger log.Logger, tenantID string, durationSeconds float64, req *tempopb.SearchRequest, resp *tempopb.SearchResponse, httpResp *http.Response, err error)
| 175 | } |
| 176 | |
| 177 | func logResult(ctx context.Context, logger log.Logger, tenantID string, durationSeconds float64, req *tempopb.SearchRequest, resp *tempopb.SearchResponse, httpResp *http.Response, err error) { |
| 178 | traceID, _ := tracing.ExtractTraceID(ctx) |
| 179 | |
| 180 | statusCode := -1 |
| 181 | if httpResp != nil { |
| 182 | statusCode = httpResp.StatusCode |
| 183 | } else if st, ok := status.FromError(err); ok { |
| 184 | statusCode = int(st.Code()) |
| 185 | } |
| 186 | |
| 187 | if resp == nil { |
| 188 | level.Info(logger).Log( |
| 189 | "msg", "search response - no resp", |
| 190 | "tenant", tenantID, |
| 191 | "traceID", traceID, |
| 192 | "duration_seconds", durationSeconds, |
| 193 | "status_code", statusCode, |
| 194 | "error", err) |
| 195 | |
| 196 | return |
| 197 | } |
| 198 | |
| 199 | if resp.Metrics == nil { |
| 200 | level.Info(logger).Log( |
| 201 | "msg", "search response - no metrics", |
| 202 | "tenant", tenantID, |
| 203 | "traceID", traceID, |
| 204 | "query", req.Query, |
| 205 | "range_seconds", req.End-req.Start, |
| 206 | "duration_seconds", durationSeconds, |
| 207 | "status_code", statusCode, |
| 208 | "error", err) |
| 209 | return |
| 210 | } |
| 211 | |
| 212 | level.Info(logger).Log( |
| 213 | "msg", "search response", |
| 214 | "tenant", tenantID, |
| 215 | "traceID", traceID, |
| 216 | "query", req.Query, |
| 217 | "range_seconds", req.End-req.Start, |
| 218 | "duration_seconds", durationSeconds, |
| 219 | "request_throughput", float64(resp.Metrics.InspectedBytes)/durationSeconds, |
| 220 | "total_requests", resp.Metrics.TotalJobs, |
| 221 | "total_blockBytes", resp.Metrics.TotalBlockBytes, |
| 222 | "total_blocks", resp.Metrics.TotalBlocks, |
| 223 | "completed_requests", resp.Metrics.CompletedJobs, |
| 224 | "inspected_bytes", resp.Metrics.InspectedBytes, |
| 225 | "inspected_traces", resp.Metrics.InspectedTraces, |
| 226 | "inspected_spans", resp.Metrics.InspectedSpans, |
| 227 | "status_code", statusCode, |
| 228 | "error", err) |
| 229 | } |
| 230 | |
| 231 | func logRequest(logger log.Logger, tenantID string, req *tempopb.SearchRequest) { |
| 232 | level.Info(logger).Log( |
no test coverage detected