MCPcopy Create free account
hub / github.com/cortexproject/cortex / NewRequestTracker

Function NewRequestTracker

pkg/util/request_tracker/request_tracker.go:126–158  ·  view source on GitHub ↗
(localStoragePath string, fileName string, maxConcurrent int, logger *slog.Logger)

Source from the content-addressed store, hash-verified

124}
125
126func NewRequestTracker(localStoragePath string, fileName string, maxConcurrent int, logger *slog.Logger) *RequestTracker {
127 if localStoragePath == "" {
128 return nil
129 }
130
131 err := os.MkdirAll(localStoragePath, 0o777)
132 if err != nil {
133 logger.Error("Failed to create directory for logging active requests")
134 return nil
135 }
136
137 filename, filesize := filepath.Join(localStoragePath, fileName), 1+maxConcurrent*maxEntrySize
138 logUnfinishedRequests(filename, filesize, logger)
139
140 fileAsBytes, closer, err := getRequestMMappedFile(filename, filesize, logger)
141 if err != nil {
142 logger.Error("Unable to create mmap-ed active request log", "err", err)
143 return nil
144 }
145
146 copy(fileAsBytes, "[")
147 requestTracker := &RequestTracker{
148 mmappedFile: fileAsBytes,
149 closer: closer,
150 getNextIndex: make(chan int, maxConcurrent),
151 logger: logger,
152 maxConcurrent: maxConcurrent,
153 }
154
155 requestTracker.generateIndices(maxConcurrent)
156
157 return requestTracker
158}
159
160func (tracker *RequestTracker) generateIndices(maxConcurrent int) {
161 for i := range maxConcurrent {

Callers 6

NewQuerierHandlerFunction · 0.92
TestAPITrackerFunction · 0.85
TestAPIWrapperFunction · 0.85

Calls 5

generateIndicesMethod · 0.95
logUnfinishedRequestsFunction · 0.85
getRequestMMappedFileFunction · 0.85
JoinMethod · 0.80
ErrorMethod · 0.45

Tested by 5

TestAPITrackerFunction · 0.68
TestAPIWrapperFunction · 0.68