Skip to content

Commit 8a6b372

Browse files
authored
Alyrchikov/healthcheck sh 449 (#1974)
* SH-449 add singleflight to healthcheck queries * rm debug log
1 parent 790211a commit 8a6b372

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

internal/api/handler.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232

3333
"go.uber.org/atomic"
3434
"golang.org/x/sync/semaphore"
35+
"golang.org/x/sync/singleflight"
3536

3637
"github.com/vkcom/statshouse/internal/chutil"
3738

@@ -1436,6 +1437,8 @@ func HandleGetHistory(r *httpRequestHandler) {
14361437
respondJSON(r, resp, defaultCacheTTL, 0, err)
14371438
}
14381439

1440+
var group singleflight.Group
1441+
14391442
func HandleGetHealthcheck(r *httpRequestHandler) {
14401443
now := time.Now()
14411444
req := seriesRequest{
@@ -1444,13 +1447,16 @@ func HandleGetHealthcheck(r *httpRequestHandler) {
14441447
to: now,
14451448
promQL: healthcheckQuery,
14461449
}
1447-
_, cancel, err := r.handleSeriesRequestS(r.Context(), req, make([]seriesResponse, 2))
1450+
_, err, _ := group.Do("healthcheck", func() (interface{}, error) {
1451+
_, cancel, err := r.handleSeriesRequestS(r.Context(), req, make([]seriesResponse, 2))
1452+
cancel()
1453+
return nil, err
1454+
})
14481455
if err != nil {
14491456
log.Printf("[error] healtcheck failed: %v", err)
14501457
respondJSON(r, nil, 0, 0, httpErr(500, err))
14511458
return
14521459
}
1453-
defer cancel()
14541460
respondJSON(r, nil, 0, 0, nil)
14551461
}
14561462

0 commit comments

Comments
 (0)