From f978029fd5d38e2e2835a2518ff45d8992cfc238 Mon Sep 17 00:00:00 2001 From: Travis Ralston <travpc@gmail.com> Date: Mon, 21 Aug 2023 21:21:10 -0600 Subject: [PATCH] Update metrics for thumbnail generation Fixes https://github.com/turt2live/matrix-media-repo/issues/443 --- pipelines/_steps/thumbnails/generate.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pipelines/_steps/thumbnails/generate.go b/pipelines/_steps/thumbnails/generate.go index a2ffc216..1eca4026 100644 --- a/pipelines/_steps/thumbnails/generate.go +++ b/pipelines/_steps/thumbnails/generate.go @@ -1,12 +1,16 @@ package thumbnails import ( + "errors" "io" + "strconv" + "github.com/prometheus/client_golang/prometheus" "github.com/turt2live/matrix-media-repo/common" "github.com/turt2live/matrix-media-repo/common/rcontext" "github.com/turt2live/matrix-media-repo/database" "github.com/turt2live/matrix-media-repo/datastores" + "github.com/turt2live/matrix-media-repo/metrics" "github.com/turt2live/matrix-media-repo/pipelines/_steps/datastore_op" "github.com/turt2live/matrix-media-repo/pipelines/_steps/download" "github.com/turt2live/matrix-media-repo/pool" @@ -24,6 +28,14 @@ func Generate(ctx rcontext.RequestContext, mediaRecord *database.DbMedia, width ch := make(chan generateResult) defer close(ch) fn := func() { + metric := metrics.ThumbnailsGenerated.With(prometheus.Labels{ + "width": strconv.Itoa(width), + "height": strconv.Itoa(height), + "method": method, + "animated": strconv.FormatBool(animated), + "origin": mediaRecord.Origin, + }) + mediaStream, err := download.OpenStream(ctx, mediaRecord.Locatable, -1, -1) if err != nil { ch <- generateResult{err: err} @@ -33,10 +45,14 @@ func Generate(ctx rcontext.RequestContext, mediaRecord *database.DbMedia, width i, err := thumbnailing.GenerateThumbnail(mediaStream, fixedContentType, width, height, method, animated, ctx) if err != nil { + if errors.Is(err, common.ErrMediaDimensionsTooSmall) { + metric.Inc() + } ch <- generateResult{err: err} return } + metric.Inc() ch <- generateResult{i: i} } -- GitLab