mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Alerting: Improve debug logs in image service (#58507)
This commit is contained in:
parent
febcaeff3a
commit
b92a0223e3
@ -132,9 +132,13 @@ func (s *ScreenshotImageService) NewImage(ctx context.Context, r *models.AlertRu
|
||||
return nil, ErrNoPanel
|
||||
}
|
||||
|
||||
logger := s.logger.FromContext(ctx).New(
|
||||
"dashboard", *r.DashboardUID,
|
||||
"panel", *r.PanelID)
|
||||
|
||||
// If there is an image is in the cache return it instead of taking another screenshot
|
||||
if image, ok := s.cache.Get(ctx, r.GetKey().String()); ok {
|
||||
s.logger.Debug("Found cached image", "token", image.Token)
|
||||
logger.Debug("Found cached image", "token", image.Token)
|
||||
return &image, nil
|
||||
}
|
||||
|
||||
@ -155,6 +159,8 @@ func (s *ScreenshotImageService) NewImage(ctx context.Context, r *models.AlertRu
|
||||
// To prevent concurrent screenshots of the same dashboard panel we use singleflight,
|
||||
// deduplicated on a base64 hash of the screenshot options.
|
||||
optsHash := base64.StdEncoding.EncodeToString(opts.Hash())
|
||||
logger.Debug("Requesting screenshot")
|
||||
|
||||
result, err, _ := s.singleflight.Do(optsHash, func() (interface{}, error) {
|
||||
// Once deduplicated concurrent screenshots are then rate-limited
|
||||
screenshot, err := s.limiter.Do(ctx, opts, s.screenshots.Take)
|
||||
@ -165,19 +171,23 @@ func (s *ScreenshotImageService) NewImage(ctx context.Context, r *models.AlertRu
|
||||
return nil, err
|
||||
}
|
||||
|
||||
logger.Debug("Took screenshot", "path", screenshot.Path)
|
||||
image := models.Image{Path: screenshot.Path}
|
||||
|
||||
// Uploading images is optional
|
||||
if s.uploads != nil {
|
||||
if image, err = s.uploads.Upload(ctx, image); err != nil {
|
||||
s.logger.Warn("Failed to upload image", "path", image.Path, "error", err)
|
||||
logger.Warn("Failed to upload image", "error", err)
|
||||
} else {
|
||||
logger.Debug("Uploaded image", "url", image.URL)
|
||||
}
|
||||
}
|
||||
|
||||
if err := s.store.SaveImage(ctx, &image); err != nil {
|
||||
return nil, fmt.Errorf("failed to save image: %w", err)
|
||||
}
|
||||
s.logger.Debug("Saved new image", "token", image.Token)
|
||||
logger.Debug("Saved image", "token", image.Token)
|
||||
|
||||
return image, nil
|
||||
})
|
||||
if err != nil {
|
||||
@ -186,7 +196,9 @@ func (s *ScreenshotImageService) NewImage(ctx context.Context, r *models.AlertRu
|
||||
|
||||
image := result.(models.Image)
|
||||
if err = s.cache.Set(ctx, r.GetKey().String(), image); err != nil {
|
||||
s.logger.Warn("Failed to cache image", "token", image.Token, "error", err)
|
||||
s.logger.Warn("Failed to cache image",
|
||||
"token", image.Token,
|
||||
"error", err)
|
||||
}
|
||||
|
||||
return &image, nil
|
||||
|
Loading…
Reference in New Issue
Block a user