Alerting: Use hash of opts in singleflight (#58474) (#58488)

(cherry picked from commit ad9ac85ee0)

Co-authored-by: George Robinson <george.robinson@grafana.com>
This commit is contained in:
Grot (@grafanabot)
2022-11-08 22:52:49 +00:00
committed by GitHub
co-authored by George Robinson
parent 91d4141cf9
commit a54d45fa90
+3 -2
View File
@@ -2,6 +2,7 @@ package image
import (
"context"
"encoding/base64"
"errors"
"fmt"
"time"
@@ -135,8 +136,8 @@ func (s *ScreenshotImageService) NewImage(ctx context.Context, r *models.AlertRu
Timeout: screenshotTimeout,
}
k := fmt.Sprintf("%s-%d-%s", opts.DashboardUID, opts.PanelID, opts.Theme)
result, err, _ := s.singleflight.Do(k, func() (interface{}, error) {
optsHash := base64.StdEncoding.EncodeToString(opts.Hash())
result, err, _ := s.singleflight.Do(optsHash, func() (interface{}, error) {
screenshot, err := s.limiter.Do(ctx, opts, s.screenshots.Take)
if err != nil {
if errors.Is(err, dashboards.ErrDashboardNotFound) {