Log query in active log. The active log guarantees that we don't run over MaxConcurrent queries.
(ctx context.Context, q *query)
| 766 | // Log query in active log. The active log guarantees that we don't run over |
| 767 | // MaxConcurrent queries. |
| 768 | func (ng *Engine) queueActive(ctx context.Context, q *query) (func(), error) { |
| 769 | if ng.activeQueryTracker == nil { |
| 770 | return func() {}, nil |
| 771 | } |
| 772 | queueSpanTimer, _ := q.stats.GetSpanTimer(ctx, stats.ExecQueueTime, ng.metrics.queryQueueTime, ng.metrics.queryQueueTimeHistogram) |
| 773 | queryIndex, err := ng.activeQueryTracker.Insert(ctx, q.q) |
| 774 | queueSpanTimer.Finish() |
| 775 | return func() { ng.activeQueryTracker.Delete(queryIndex) }, err |
| 776 | } |
| 777 | |
| 778 | func timeMilliseconds(t time.Time) int64 { |
| 779 | return t.UnixNano() / int64(time.Millisecond/time.Nanosecond) |
no test coverage detected